存在的问题
客户端在登陆vpn后访问ftp的流量会全部从vpn服务端的网络通过,所以登陆ftp是没有问题的,但如果此时使用主动模式,接下来的数据流量ftp服务端会主动连接客户端,这时网络会出现下面两种可能性:
- 如果ftp直连客户端的ip端口,很大概率无法访问,因为他们彼此没有建立过登陆连接,并且在nat这种场景下,很大可能网络也不通
- 如果ftp直连vpn的ip端口,那么vpn服务端是不知道这个连接要转发到客户端的,此时也无法建立正常的数据链接
所以可以得出结论,客户端在登陆vpn后无法使用主动模式使用ftp
被动模式
基于上面的问题,我们需要通过被动模式来使用ftp,被动模式仍然是客户端主动与服务端建立链接,这样就避免了路由、nat等问题
windows的cmd问题
windows的原生cmd并不支持被动模式,即使使用了 quote pasv
,通过抓包可以证明
可以看到在执行指令切换到被动模式,但是后续仍然没有使用新的端口主动连接服务端
评论