最近小编租了个香港服务器,用的是WIN2008的系统,由于第一次接触这个系统,遇到不少问题。这次就把serv-u被防火墙阻挡的过程和解决办法写出来分享给有需要的朋友吧。
由于使用了serv-u这个FTP服务器软件,所以就在防火墙的入站规则里面添加了一个21端口的规则,但是再用FlashFXP软件时链接不上,发现FTP要连接一些随机的端口,折腾了许久下终于解决问题。
serv-u 默认配置完成后,其PASV(被动)模式启动的时候,会使用随机端口号(这个可以在serv-u里面设置)
windows的防火墙,开启情况下,只打开了21端口。所以FTP软件在登录服务器的时候,会使用随机端口导致被防火墙终断,终端显示无法建立 socket 链接 ,无法list目录。
解决办法:增加防火墙随机端口通行。
FTP基础知识
FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
Port模式:
ftp server:tcp 21 <------client:dynamic
ftp server:tcp 20 ------>client:dynamic
Pasv模式:
ftp server:tcp 21 <----client:dynamic
ftp server:tcp dynamic <----client:dynamic
===============================
FTP socket错误分析及解决方法
简朴说一下FTP的两种模式:
1、port模式:这种模式的FTP网管人员比较轻松,但兼容性较差,比如假如客户端在局域网内就会无法登录FTP服务器。假如有人无法使用port模式登录FTP的话,作为FTP治理员来说,你无论如何努力都是没有用的。因为这时问题症结在对方客户端的 防火墙或网关。所以对于一个FTP服务器来说,尽量要使用pasv模式。
2、pasv模式:这种模式的FTP兼容性好,但对FTP治理员来说有一定挑战性,而且设置的情况比较复杂,以下举例均以有防火墙的情况来说明:
(1)如果服务器在公网上:
这是最理想的情况。21端口当然要首先开放,然后再作如下设置:serv-u服务器——本地服务器——设置——高级,在"pasv端口端口范围"中填入一段不与其它端口冲突的范围,如61600-61620,然后在防火墙中开放61600-61620的端口。
(2)如果服务器在私网,这时又要分两种情况:
情况一:网关的公网IP地址是固定的:
这种情况下,在serv-u服务器上除了按这段文字:
21端口当然要首先开放,然后再作如下设置:serv-u服务器——本地服务器——设置——高级,在"pasv端口端口范围"中填入一段不与其它端口冲突的范围,如3001-3020,然后在防火墙中开放3001-3020的端口。
作相同设置之外,还要加设如下设置:
serv-u服务器——本地服务器——域——你的域名——设置——高级,将"答应被动模式数据传输,使用IP"前的勾勾上,并在后面填上你的网关的公网IP地址。然后,再到网关上将21端口、3001-3020的端口范围全部映射上serv-u服务器的内网IP地址上。
情况二:网关的IP地址是动态的:
这时必须使用花生壳之类的动态域名。假设你申请的花生壳是myftp.vicp.net,并正常安装了花生壳程序客户端。这时除了按刚才引用过一次的文字中作设置以外,还要作如下设置:
serv-u服务器——本地服务器——域——你的域名,将"启用动态 DNS"前的勾勾上,这时该页会多出一个"动态DNS"的标签,点击进入该标签,在IP名称中填入"myftp.vicp.net",按F5键刷新,这时你网关获取的公网FTP地址会以灰字(表示不可改)出现在"IP地址"栏中。然后再检查这里:
serv-u服务器——本地服务器——域——你的域名——设置——高级,仍旧将"答应被动模式数据传输,使用IP"前的勾勾上,但后面不要填任何IP,让它空闲着。到这一步你在serv-u服务器上的设置全部完成,下面再去网关上将21端口、3001-3020端口全部映射到serv-u服务器的私网IP上。
这时,恭喜,你大功告成,你的FTP可以被地球上任何一个能上互联网的人使用了。
Q&A
Q:我的情况与你所说不一样呀,我不是21端口而是4500端口,怎么办?
A:与上面所说一样。只是将21替换成4500即可。
Q:我需要在诺顿防火墙中开放3001-3020端口吗?
A:需要。我不知道诺顿是否支持FTP的自动识别。最好是手工指定开放这些端口以防万一。
Q:我完全按你所说设置的,为什么还是有人能上有人不能上?
A:让不能上的人使用pasv模式。
Q:为什么我自己不能登录自己的FTP?
A:将出错列表贴出来分析。