由于网闸的协议以及设备的协议限制影响,无法直接使用远程桌面进行文件传输,所以利用SMB协议的共享文件夹及ftp协议来传输文件,具体网络路径如下图所示

1、在A主机开启共享文件夹
A主机为windows 电脑
右击要共享的文件夹,选择属性,点击共享,选择要共享的用户,权限设置为读取和写入,点击共享,点击完成
注意:如果用户选择为Administrator,挂载端需要输入用户密码,everyone则为开放权限
点击选择网络和共享中心,选择启用网络发现和文件打印机共享
注意:此功能默认关闭,如果不打开在B主机(windows)的网络一栏不会出现这个主机名称,但实际是可用的仅不能显示出来。





2、在B主机将文件夹挂载为磁盘
2.1 挂载文件夹
主机为windows系统
点击此电脑,空白处右击,选择添加一个网络位置,选择自定义网络位置,填写网络地址,格式为\\server_ip\共享文件夹,创建一个名称,点击完成会创建好该文件夹。
注意:此处如果A主机的用户为administrator而不是everyone,此时会有弹窗出现要求输入账号密码





主机为linux系统
挂载文件夹
# 安装cifs工具,RedHat系用yum命令,Debian系用apt命令
sudo yum install cifs-utils
sudo apt install cifs-utils
# 创建本地挂载点
sudo mkdir -p /mnt/winshare
# 使用以下命令将远程共享挂载到本地(需替换其中的 IP、共享名、用户名和密码):
sudo mount -t cifs //192.168.x.x/sharename /mnt/winshare -o username=windows用户名,password=windows密码,uid=$(id -u),gid=$(id -g),file_mode=0777,dir_mode=0777,iocharset=utf8
# (注:如果 Windows 没有密码或处于公开共享环境,可以使用 -o username=guest,iocharset=utf8)开机自动挂载
创建密码配置文件存放windows密码
sudo nano /etc/win-credentials
# 文件内输入下面内容
username=your_windows_username
password=your_windows_password
# 更换文件读写权限
sudo chmod 600 /etc/win-credentials
创建挂载
#编辑fstab文件
sudo nano /etc/fstab
# 添加下面一行
//10.168.1.205/sharename /mnt/winshare cifs credentials=/etc/win-credentials,iocharset=utf8,uid=$(id -u),gid=$(id -g),file_mode=0777,dir_mode=0777,_netdev,nofail 0 0
# 挂载
sudo mount -a参数说明:
_netdev:等待网络就绪后再挂载nofail:挂载失败不阻塞开机
2.2 安装ftp server
主机为windows系统
使用 filezilla server 软件安装ftp server服务端

主机为linux系统
安装vsftpd
# CentOS/RHEL
yum install -y vsftpd
# Ubuntu/Debian
apt install -y vsftpd配置vsftpd
编辑 /etc/vsftpd/vsftpd.conf(CentOS)或 /etc/vsftpd.conf(Ubuntu):
# ===== 基本设置 =====
listen=YES
listen_ipv6=NO
anonymous_enable=NO
# ===== 允许本地用户登录 =====
local_enable=YES
write_enable=YES
local_umask=022
# ===== 将用户限制在主目录(重要)=====
chroot_local_user=YES
allow_writeable_chroot=YES
# ===== 主动/被动模式 =====
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
# ===== 日志 =====
xferlog_enable=YES
xferlog_std_format=YES
log_ftp_protocol=YES
# ===== 中文文件名支持 =====
utf8_filesystem=YES创建 FTP 用户并绑定到共享目录
创建一个专用 FTP 用户,主目录直接指向挂载点
# 创建用户,主目录设为 /mnt/winshare,禁止 shell 登录
useradd -d /mnt/winshare -s /sbin/nologin ftpuser
echo "ftp123456" | passwd --stdin ftpuser # CentOS
# Ubuntu: echo "ftpuser:ftp123456" | chpasswd
# nologin 用户默认无法登录 FTP,需要在 /etc/shells 中加入 nologin
echo "/sbin/nologin" >> /etc/shells启动服务
systemctl enable --now vsftpd
systemctl status vsftpd防火墙与selinux配置
# 关闭防火墙
systemctl disable --now firewalld
# selinux 设置为disable
vim /etc/selinux/config
# 将 SELINUX=enforcing 改为:
SELINUX=disabled3、在C主机接收ftp文件
主机为windows系统
安装 filezilla client 客户端

顶部快速连接栏填写:
主机:
服务端主机ip用户名:
ftpuser密码:
ftp123456端口:
21
点击「快速连接」
左侧为本地文件,右侧为远程 FTP 目录,直接拖拽即可上传/下载
主机为linux系统
# 安装
yum install -y lftp
#基本操作步骤
# 列出远程目录
ls
# 下载文件(支持续传)
get -c filename.txt
# 上传文件
put localfile.txt
# 整个目录同步到本地
mirror /remote/path /local/path
# 多线程下载大文件
pget -n 5 largefile.iso