前篇《通过虚拟网络实现远程数据存取实践》文章中,以Tailscale在服务器上的安装步骤为例,讲述如何在远端服务器上进行虚拟局域网的搭建,初步实践虚拟局域网的架构实现。在此基础上,虚拟局域网内的各种设备,如PC机、移动终端、服务器相互之间是可以 ping 通的,是“看得见”的,但这些设备还不具对其它设备(如服务器)进行操作(如读取、写入文件)的能力。
在本地电脑上,我们可以在不同磁盘、目录间进行文件的读取、拷贝、删除等操作。同样,在局域网内、广域网(互联网)上,只要有足够的权限,也可以进行同样的操作。无论是在本地电脑上还是对网络上的其它电脑,这些操作功能的实现,是由操作系统内核的文件管理模块提供。
操作系统内核的主要功能(Windows、Linux、macOS等)
进程管理:内核负责创建、调度和终止进程,管理进程的状态和资源分配。进程调度决定哪个进程获得CPU时间以及它们获得多长时间。进程间通信(IPC)提供机制让不同进程之间可以相互发送消息和共享数据。
内存管理:内核管理系统内存的分配和回收,包括虚拟内存的管理,确保每个进程有其独立的地址空间。地址空间分配为每个进程分配独立的内存空间,虚拟内存机制允许程序使用比物理内存更多的地址空间。
设备管理:内核控制和管理硬件设备(如硬盘、网络接口、打印机等),通过设备驱动程序与硬件进行交互。I/O调度优化输入/输出操作的顺序和执行,提高系统效率,缓冲区管理使用缓冲技术减少磁盘和其他设备的访问次数。
文件系统管理:内核提供文件的创建、删除、读取和写入等操作,管理文件的存储和访问权限。文件存储与管理负责维护文件系统的目录结构,处理文件的路径解析,访问控制确保文件的安全性,实施权限检查和访问控制列表(ACL)。
网络通信:内核处理网络通信,管理网络协议栈,确保数据的发送和接收。网络协议栈实现TCP/IP等网络协议,套接字接口提供应用程序通过网络进行通信的标准接口。
安全管理:内核进行用户认证与授权,验证用户身份并控制其对系统资源的访问权限。审计日志记录系统中重要的安全相关事件。
系统调用接口:内核提供API,向用户空间程序提供一组标准的系统调用接口,用于访问内核服务。
中断和异常处理:内核响应硬件产生的中断和异常情况,进行中断服务例程处理,并在中断和异常发生时保存和恢复CPU的状态。
电源管理:内核优化电源使用,例如通过休眠和待机模式减少能耗。
时钟管理:内核维护系统时间和日期,并提供定时器服务。
这些功能共同确保了操作系统的稳定性、安全性和高效性,为用户和应用程序提供了一个稳定可靠的运行环境。
为实现远程数据的存储操作,尚需在远程服务器上进行一些必要的软件安装和设置。
常用的向服务数据进行传输数据方式大致有以下3种:
1、基于 FTP协议 的传输,需要在服务器上安装 ftp-Server,适合简单使用。
2、基于 SSH协议 的传输,需要在服务器上安装相应的命令包,并适当设置权限。可用命令较多,功能够强大,使用比较复杂。
3、基于 SMB协议 的传输,需要在服务器上安装并设置 smb-server。使用较为简单,图形桌面(Windows、Kde、Gnome、MacOS)下操作很便捷。
本篇以第三种方式进行实践。
SMB(Server Message Block)是一种数据传输的协议,用于在不同计算机、不同操作系统(Win/Linux/Unix/FreeBSD/MacOS/Android...)之间的文件、信息、硬件(如打印机、串口)等的共享。 客户机通过SMB协议工具软件连接服务器。一旦连接成功,客户机就能够访问共享目录,进行打开文件、读写文件、修改文件、删除文件等操作。
以Debian系统电脑存储数据(即服务器)为例,在该电脑上具体实践步骤如下:
1、安装smb服务,在命令行输入安装命令
> sudo apt-get install samba
2、在 /home目录下,新建准备分享的目录并赋予该目录读写权限
> cd ~
> mkdir myshare
> chmod 777 /home/share
3、为使用smb服务传输数据至服务器的远端使用者建立一个用户名及密码,myname为示范用户名。
> smbpasswd -a myname
New SMB password: // 设置密码
Retype new SMB password: // 确认密码
Added user myname. // 添加成功
4、修改smb服务配置文件(smb.conf),该文件在smb服务启动过程中被读取,指示smb服务运行需遵守的一些约定。
> sudo vim /etc/samba/smb.conf
在打开的文件末尾添加以下内容
[myname] //
comment = this is samba home directory //
path = /home/myshare // 需要共享的目录
public = yes //
writable = yes //
guest ok = no //
create mask = 0775 //
directory mask = 0775 //
5、设置smb服务为系统服务,即开机随系统其它服务自动开启,然后启动smb服务
> sudo systemctl enable smbd.service // 设置smb为系统服务
> sudo systemctl start smbd.service // 启动smb服务
6、查看smb服务状态,系统会回显一段字符,若出现 enable、active、running 等字样,表示smb服务正在运行中
> sudo systemctl status smbd.service
以上操作安装设置过程完毕后,已经可以随时接收来自远端的数据存储要求。