《iis 被动端口连不上》
当遇到IIS被动端口连不上的问题时,解决方案主要包括检查防火墙设置、确保正确配置IIS的ftp站点被动端口范围以及查看网络设备限制等。
一、检查防火墙设置
防火墙可能会阻止被动端口的连接。如果是Windows自带防火墙,在控制面板 - 系统和安全 - Windows Defender防火墙中,点击“高级设置”。在“入站规则”里查找是否有阻止相关端口的规则,如果没有允许对应的被动端口范围(例如假设ftp配置的被动端口为5000 - 6000),就需要新建入站规则来允许这些端口。
对于代码示例,可以使用PowerShell命令查看防火墙规则:
powershell
Get-NetFirewallRule | Where -Property DisplayGroup -EQ "File Transfer Protocol (FTP) Service" | Format -Table Name, Enabled, Direction, Action
如果发现规则有问题,可以通过以下命令创建新的允许规则(以允许5000 - 6000端口为例):
powershell
New-NetFirewallRule -DisplayName "Allow FTP Passive Ports" -Direction Inbound -LocalPort 5000 - 6000 -Protocol TCP -Action Allow
二、配置IIS ftp站点被动端口范围
打开IIS管理器,找到对应的ftp站点,右键选择“编辑绑定”,然后进入ftp站点的属性或者配置编辑器中调整被动端口范围。如果是通过修改配置文件的方式,在应用程序主机配置文件(applicationHost.config)中找到对应ftp站点的配置部分,如下所示:
xml
<site name="YourFtpSiteName" id="1">
<ftpServer>
<connections>
<ipSecurity>
<!--其他配置项-->
</ipSecurity>
</connections>
<security>
<ssl allowSslSessionResumption="true" />
<dataChannel>
<passive portRange="5000 - 6000" />
</dataChannel>
</security>
</ftpServer>
</site>
要确保这里的portRange与防火墙开放的端口范围一致。
三、查看网络设备限制
有时候网络中的路由器或者交换机也会对端口有访问限制。登录到网络设备的管理界面,例如一些企业级路由器可以在其安全策略或者访问控制列表(ACL)中查看是否存在对目标服务器被动端口的限制。如果是简单的家用路由器,也要检查是否开启了端口转发等相关功能并且配置正确。如果无法确定是哪台设备的问题,可以尝试从本地局域网内直接连接ftp服务器测试被动端口是否连通,排除外部网络设备干扰后再逐步排查内部设备。