环境介绍:
现有3台机器,
A客户端 (192.168.1.X),需要访问FTP服务(windows)
B宿主机 (192.168.1.X, 192.168.43.X),提供端口FTP转发
C是B中的虚拟机 (192.168.43.X),NAT网络模式,网段不同。
因为A与B是同一个网段,B与C是同一个网段(B双网卡),所以A不能直接访问C,需要B在中间做端口转发
但是FTP建立连接后数据端口不固定,导致建立连接成功,但无法返回数据,为解决这个问题,需要以下几步:
1.C机器中FTP服务使用被动模式
2.指定IP,并在B中转发所有数据端口。(C这里的FTP服务使用的是VSFTPD)
1.修改配置
需要修改以下内容:
vim /etc/vsftpd/vsftpd.conf
1.通讯端口
listen_port=21
2.打开被动模式
pasv_enable=YES
3.被动模式最小端口
pasv_min_port=19006
4.被动模式最大端口
pasv_max_port=19010
5.被动模式所暴露机器IP(即宿主机IP,也就是这里面的B)
pasv_address=192.168.1.X
6.打开地址控制
pasv_addr_resolve=YES
2.重启VSFTPD服务
systemctl restart vsftpd
3.配置端口转发(B)
上述一共需要在B中将C的21,19006-19010端口转发
21为FTP通信端口,19006-19010为FTP数据端口
Windows端口转发(B->C):
netsh interface portproxy add v4tov listenport=19010 listenaddress=192.168.1.X connectport=19010 connectaddress=192.168.43.X