多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] 参考连接:[https://docs.jdcloud.com/cn/virtual-machines/too-many-windows-time-wait-failed-to-access-the-external-network](https://docs.jdcloud.com/cn/virtual-machines/too-many-windows-time-wait-failed-to-access-the-external-network) ## **what** **问题现象:** 服务器内部可以ping通外网,但是无法访问外部的网站或者应用。 **问题原因:** 一般而言, 该问题原因是**Windows动态端口耗尽**。可以在CMD中输入如下命令简单测试: ``` netstat -ano | findstr 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 ``` 该步骤无需重启机器, 立即生效。 2. 降低Time Wait时间,最低为5秒 打开注册表,定位到HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\Tcpip\\Parameters 新增键值 TcpTimedWaitDelay,类型REG\_DWORD , 设置为十进制5,修改后重启生效。 ![tAc5CD.png](https://s1.ax1x.com/2020/05/27/tAc5CD.png)