不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。

导航

问题症状

  • 每隔一段时间,浏览器不能访问外网,重启电脑又正常,重置网卡无效
  • 可以ping通外网ip地址,可以ping通外网域名
  • ping不通外网端口端口

查看日志

每次出现不能上网情况时都会有至少两条TCPIP时间,Event ID为4231,一条为4227

 

解决办法

调节tcp/ip可用端口数与time_wait超时时间

一、查看可用端口数

netsh int ipv4 show dynamicportrange tcp

二、netsh命令修改可用端口数

  1. netsh int ipv4 set dynamicport tcp start=2000 num=63537
  2. netsh int ipv4 set dynamicport udp start=2000 num=63537
  3. netsh int ipv6 set dynamicport tcp start=2000 num=63537
  4. netsh int ipv6 set dynamicport udp start=2000 num=63537

三、time_wait超时时间调整

打开注册表   regedit
找到路径   HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
在该路径下修改或新建注册表
类型: DWORD值 名称:MaxUserPort 值(十进制):65534
类型: DWORD值 名称:TcpTimedWaitDelay 值(十进制):30

四、编辑.reg脚本或者bat批处理脚本,使用管理员权限运行

bat批处理脚本

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v TcpTimedWaitDelay /t reg_DWORD /d 30
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v MaxUserPort /t reg_DWORD /d 64560

reg注册表脚本

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpTimedWaitDelay"=dword:0000001e
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"MaxUserPort"=dword:0000fc30