ECS Windows可以ping通外网,但是无法访问外部的网站或者应用。
一般而言, 该问题原因是Windows动态端口耗尽。可以在CMD中输入如下命令简单测试:
Netstat -ano | findstr 445
该命令会显示445端口在监听在所有网卡上,
注:TCP 445端口是Windows文件共享服务使用端口,默认是监听状态
telnet 127.0.0.1 445
如果无法访问,说明动态端口耗尽。
此时,如果使用netstat -ano命令,可以发现大量连接处于TIME_WAIT状态。
默认Windows 2008 以后,动态端口的数量为16384个 (从49152起始,到65536结束),如果服务器对外有大量连接,而根据TCP默认的Time Wait Delay时间为4分钟,这会导致大量连接在断开后处于Time Wait状态,无法快速释放给其它连接使用,这可能导致端口耗尽。
<1> 增大动态端口数量
请以管理员身份打开CMD,运行如下命令:
netsh int ipv4 set dynamicport tcp start=1025 num=60000
注:该步骤无需重启机器, 立即生效
修改后运行命令检查配置
netsh int ipv4 show dynamicport tcp
关于动态端口说明,可以参考微软KB:
The default dynamic port range for TCP/IP has changed in Windows Vista and in Windows Server 2008
<2> 降低Time Wait时间,最低为30秒
打开注册表,定位到HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新增键值 TcpTimedWaitDelay,类型REG_DWORD , 设置为十进制30
参考资料:
https://technet.microsoft.com/en-us/library/cc938217.aspx?spm=a2c4g.11186623.2.15.870a4c07KazC4m
注:修改后重启生效
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。