我有一台 Windows 8.1 台式机(规格如下),已经运行一年多了。
在过去的几个月里,大约每周一次,我的网络连接都会停止工作。如果我重新启动 Windows,一切都会重新开始工作,直到下次。网络是具有静态 IP 的物理网络。当发生这种情况时,同一台机器上的无线也会失败。无线或物理电缆上的其他设备继续工作。
当这种情况发生时我看到的是:
- DropBox 系统托盘图标显示没有连接(即没有同步或绿色勾号图标)
- 任何浏览器都无法加载任何网页。我没有收到错误,浏览器只是不执行任何操作,但在地址栏中显示 URL
- RDP/SSH 到其他机器失败。我有一个永久的 RDP 连接打开到另一台本地机器,当其余网络停止时,它继续工作。如果我关闭它,它将不会重新连接。
我检查了事件日志,没有发现任何指向问题的信息。我也试过用 Google 搜索,但一无所获。
记不清如果我尝试在本地或远程 PING 一个 IP 会发生什么。我认为它可以工作,但由于我现在不在那台机器前,所以我不能肯定地说。我稍后会更新。
虽然重启不会花太长时间,但不断这样做会让人很烦。所以我想找到一个解决方案...
机器规格
- Windows 8.1 专业版
- 英特尔酷睿 i7-4770K 3.5GHz
- 华硕 Z87 Deluxe 四核主板
- 16GB RAM(4 x 4GB Crucial 内存)
- 三星 840 128GB SSD 硬盘
答案1
这听起来像是短暂的端口耗尽。
当您启动与另一个网络地址的新 TCP 连接时,它需要有一个源端口号。当建立大量连接时,Windows 会用尽源端口,无法创建新连接。现有的已建立连接仍可正常工作。Ping 仍可工作,因为它使用 ICMP,而不是 TCP - DNS 查找应该仍可工作,因为它们主要使用 UDP 而不是 TCP。
要找出导致所有这些连接的原因,您需要打开提升的命令提示符。运行网络状态监测,并寻找具有大量连接的进程已确立的或者时间的等待状态。您可以通过运行来获取这些的数量netstat -an | 查找/C “TIME_WAIT”。
如果具有最多此类连接的进程是系统(PID 为 4),这意味着连接是由不再运行的进程启动的,因此请留意进程的启动和关闭速度。
希望您能确定哪个进程是/曾经是造成端口耗尽的原因,并修复它(可能是软件的补丁程序?)或删除它。
您也可以稍微调整 Windows - 通过更改可用的临时端口数量。默认情况下,它可以使用端口 49,152 到 65,535 - 总共 16,384。您可以使用以下命令验证此设置netsh int ipv4 显示动态端口 tcp。
如果你想调整它,你可以使用以下命令更改设置netsh int ipv4 设置动态端口 tcp 启动=32767 num=32768,它告诉 Windows 它可以使用 32,768 个端口,从端口号 32,767 开始(最高可达 65,535)。更改默认端口范围并不是一劳永逸的解决办法。最好先找出问题的原因,然后解决它。它可能是某种恶意软件,例如僵尸网络感染导致您的计算机每分钟发送数千封垃圾邮件,或者可能被用作 DDoS 攻击的一部分。或者它可能只是某些合法软件中的一个错误。