实现Windows和Linux之间的文件共享,可根据使用场景选择不同的方案,常见的有Samba服务、scp命令、NFS服务以及rsync工具,以下分别介绍具体的实现方法。

Samba服务实现局域网文件共享
Samba是最常用的跨系统文件共享方案,支持Windows和Linux在局域网内互相访问共享目录,适合需要频繁互传文件的场景。
Linux端配置Samba服务
首先需要在Linux系统中安装Samba服务,以Ubuntu系统为例,执行以下命令安装:
# 更新软件源 sudo apt update # 安装Samba sudo apt install samba -y
安装完成后,创建共享目录并配置权限:
# 创建共享目录 sudo mkdir -p /home/share # 设置目录权限,允许所有用户读写 sudo chmod 777 /home/share
接下来修改Samba配置文件,添加共享配置:
# 备份原配置文件 sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak # 编辑配置文件 sudo vim /etc/samba/smb.conf
在配置文件末尾添加以下内容:
[linux_share] comment = Linux Share Directory path = /home/share browseable = yes writable = yes valid users = root create mask = 0666 directory mask = 0777
然后添加Samba用户并设置密码:
# 添加root用户为Samba用户 sudo smbpasswd -a root # 重启Samba服务使配置生效 sudo systemctl restart smbd
Windows端访问共享目录
打开Windows的文件资源管理器,在地址栏输入\Linux_IPlinux_share,其中Linux_IP是Linux系统的局域网IP地址,输入后按回车,输入刚才设置的Samba用户名和密码即可访问共享目录,还可以将共享目录映射为网络驱动器方便后续使用。
使用scp命令实现单次文件传输
scp是基于SSH协议的文件传输命令,适合单次、小批量的文件传输,不需要额外搭建服务,只要Linux开启了SSH服务即可使用。
从Windows向Linux传输文件
Windows 10及以上系统自带OpenSSH客户端,打开命令提示符执行以下命令:
# 传输单个文件到Linux的/home目录 scp C:test.txt root@192.168.0.100:/home/ # 传输整个文件夹到Linux的/home目录 scp -r C:test_dir root@192.168.0.100:/home/
其中192.168.0.100是Linux的IP地址,root是Linux的用户名,执行命令后输入Linux用户密码即可完成传输。
从Linux向Windows传输文件
在Windows命令提示符中执行以下命令:
# 从Linux下载单个文件到Windows的D盘 scp root@192.168.0.100:/home/test.txt D: # 从Linux下载整个文件夹到Windows的D盘 scp -r root@192.168.0.100:/home/test_dir D:
NFS服务实现Linux向Windows共享文件
NFS是Linux原生的文件共享协议,性能较好,适合Linux作为服务端向Windows共享文件的场景,Windows需要安装NFS客户端支持。
Linux端配置NFS服务
首先安装NFS服务:
sudo apt install nfs-kernel-server -y
创建共享目录并配置导出规则:
# 创建共享目录 sudo mkdir -p /home/nfs_share # 设置权限 sudo chmod 777 /home/nfs_share # 编辑导出配置文件 sudo vim /etc/exports
在配置文件中添加以下内容:
/home/nfs_share 192.168.0.*(rw,sync,no_subtree_check)
重启NFS服务:
sudo systemctl restart nfs-kernel-server
Windows端挂载NFS共享
打开Windows的程序和功能,启用NFS客户端,之后打开命令提示符执行挂载命令:
mount 192.168.0.100:/home/nfs_share Z:
其中Z:是挂载后的盘符,挂载成功后即可在文件资源管理器中访问该盘符下的文件。
使用rsync工具实现文件同步
rsync适合需要定期同步文件的场景,支持增量传输,效率更高,同样基于SSH协议,不需要额外搭建服务。
Linux端安装rsync:
sudo apt install rsync -y
Windows端可以安装cwRsync工具,之后执行同步命令,比如将Windows的D:data目录同步到Linux的/home/data目录:
rsync -avz /cygdrive/d/data/ root@192.168.0.100:/home/data/
如果需要反向同步,将Linux目录同步到Windows,执行以下命令:
rsync -avz root@192.168.0.100:/home/data/ /cygdrive/d/data/
不同方案对比
以下是几种方案的适用场景对比:
| 方案 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| Samba | 局域网内频繁互传文件 | 支持双向访问,操作简单 | 需要配置服务 |
| scp | 单次小批量文件传输 | 无需额外配置,基于SSH安全 | 不适合频繁传输 |
| NFS | Linux向Windows共享文件 | 性能较好,原生支持 | Windows需要安装客户端 |
| rsync | 定期文件同步 | 增量传输,效率高 | Windows需要额外安装工具 |