Windows 自带的防火墙没有增加端口范围的功能,这让一些常见的配置变得非常麻烦(比如FTP被动模式下,就需要在防火墙上开启端口范围,如5000-6000,7100-7200这类),经过查询资料,使用以下cmd批处理内容,即可增加端口范围(用Windows 脚本编辑应该也能达到如下效果):
echo off
cls
set var=5000
:continue
set /a var+=1
echo add port %var%
netsh firewall add portopening TCP %var% ftp_data_%var%
if %var% lss 5100 goto continue
echo complete
pause
将以上内容,保存为后缀名为cmd或bat的文件,执行即可将5000-5100范围的端口增加到防火墙配置中。
另外,如果使用linux lftp批处理模式,为了开启lftp客户端的被动转输,需要编辑文件~/.lftprc, 并增加以下配置:
set ftp:passive-mode on
PS:以上程序的执行需要管理员权限
====================================================================================、
1、改默认端口
在IIS6管理器中,展开FTP站点,用鼠标右键单击选择“属性”命令,然后在属性对话框中修改TCP端口(默认是21)。
改默认端口后,如果启用了TCP/IP筛选,则必须使用PASV模式访问FTP,为了安全需要手动指定PASV的端口范围。
在防火墙里开放以上端口。
2、修改IIS6下FTP服务器的PASV端口范围
IIS6的FTP里的PASV模式下默认端口范围1024 - 65535,连接时会从中随机选择到响应。这样的超大范围就给服务器安全带来的隐患,虽然可以通过一些方法减少端口范围,但范围都不能缩小到理想的范围内,正常情况下PASV的端口最多会使用到10个吧,就算是专门的FTP下载服务器最多20个也就够了。下面说说使用IIS管理实用程序Adsutil.vbs(C:\Inetpub\AdminScripts这个文件夹下面)修改FTP服务器的PASV端口的范围:
Adsutil.vbs,如下图的1和2:
使用命令行根据顺序执行
cd c:\Inetpub\AdminScripts
adsutil.vbs set /MSFTPSVC/PassivePortRange "10000-10009"
有可能有的服务器已经进行过安全配置,这样直接执行会提示失败信息,就需要使用cscript了,使用管理员用户登陆,继续命令行根据顺序执行以下命令
cd c:\Inetpub\AdminScripts
cscript adsutil.vbs set /MSFTPSVC/PassivePortRange "10000-10009"
本例开放指定的10个端口10000到10009
执行完毕后重新启动 FTP 服务,如果启动了防火墙,在防火墙中加这几个端口的例外。