首先,安装vsftpd以及使用的内网穿透工具(这里用的是Sakura FRP)就不再赘述了。
进行内网穿透,我们一般都会使用PASV模式(另一个是PORT模式),两个模式的不同在网上大堆答案,这里也不再赘述。
进行FTP内网穿透,我们需要至少映射3个端口(或叫隧道),最主要的是21端口,用于进行服务器与客户端的连接,其次则是数据端口(自己设定,看网上的大佬说一般都是大于1025),我设为了20250,20251,只要是在10万范围内都是可行的(linux的ip配置文件是这样设定的,最高10w)。
上面这些是进行内网穿透最基础的配置,下面最重要的配置来了:
在PASV模式,服务器做了NAT,例如云主机,这时候我们用特定的IP访问机器,其实还转了一层。FTP客户端访问机器可能会没响应。具体情况为登录成功,但是list目录和文件的时候卡住(或者说出错了)。
我们需要做的就是——在 etc/vsftp/vsftpd.conf 这个配置文件末尾添加上以下配置语句
pasv_address=本机ip【就是我们能访问的外网IP】 pasv_addr_resolve=YES具体的可以参考下面的博文:
上面博文最终要的一点是设置了IPV4的21端口
不设置这部分,ftp将会监听IPV6的21端口
设置好以上配置后,基本上就是能够进行正常的FTP内网穿透的访问了