至于为什么要搭建公网ftp服务器,就当我心血来潮吧。
ftp开源工具很多,咱用的是filezilla服务器。后来为了方便搭建web服务器,就改成了集成工具xampp。客户端工具也是filezilla client,用浏览器也行。
首先内网用户想搭建公网ftp服务器第一个要解决的问题是如何得到公网ip。经过认真试验仔细研究得到两种方案:
1.设置路由器参数,增加转发规则,外网21端口转发到内网21端口;
2.还是设置路由器,设置dmz主机,把自己的内网ip地址填上去,路由器的公网ip就成了自己电脑的公网ip。
这里要注意的是,设置完路由器后,还要把21端口添加到防火墙的例外中,否则外网的连接被拒绝。我是直接关掉了防火墙。
幸运的话,打开ftp服务器,设置用户名密码和根目录,一个公网ftp服务器就诞生了。查一下路由器自己的公网ip即可从外网访问。
路由器的公网ip也不是一成不变的,为了解决这个问题,咱们下载一个免费的花生壳,注册账号密码登录,就能得到一个域名。用域名代替公网ip,就可以坐享公网ftp服务器了。
其实刚开始咱还是很幸运的,舒舒服服用了两天公网ftp后,突然不能连接了。这个原因排查的过程,真是不堪回首月明中啊。我把上面的过程翻来覆去重复了5遍,已经看透了原理学懂了理论,结果仍是一样的。为了测试公网ip的可用性,特地找远程的朋友用socket工具测试了tcp连接,发现聊天妥妥的顺滑。问题就定位在ftp服务器上了。最具有误导性的现象是,公网ip过来的连接是可以正常登录服务器的,但是无法进入pasv模式,用dir命令列出目录也不能,服务器会断开socket。我就以为是服务器设置的问题,禁用pasv模式,改用port模式也不能够可以。查到一个方案,说是用花生壳做端口映射,但是妹的那是内网映射,收费的。后来发现别人有遇到有时候可用有时候不能用的情况,更换21端口就稳定了。我试了一下,问题解决!原来是ISP把21端口给封了,路由器的公网ip也不是免费的午餐!
最后,ftp端口改成21212,尘埃落定。