由于权限被拒绝,无法绑定某些端口

90
在过去的3个月左右,我会出现随机错误,无法绑定特定端口,在我的本地开发工作站上运行我们的身份识别服务器。起初我以为是我的机器出了问题,所以我重置了一切,这种情况有点修复了2个月,现在又回来了。
与此同时,其他开发人员也遇到了同样的问题。所有经历这个问题的人都在使用Windows 10,但并非每个使用Windows 10的人都会遇到这个问题。
通过使用“shutdown / s / f / t 0”命令关闭windows后重新启动是打开端口的唯一可靠解决方案。当我正常重启后(由于Windows更新或类似情况),问题再次出现,我需要使用该命令关闭Windows。
我编写了一个小的F#脚本来测试哪些端口受到影响。我收到的确切错误消息是
“尝试访问被其访问权限禁止的套接字”
当我寻找解决方法时,建议的解决方法是重新启动计算机,但这更像是一个权宜之计,而不是真正的解决方法。我还发现 https://dev59.com/qGkv5IYBdhLWcg3wpCMz#10461978 - 但是 netstat -o没有列出端口,TCPView工具也没有列出。我们所有人都非常确定该端口没有被任何东西占用。我还尝试在管理员控制台中运行 netstat 和Windows Bash中的类似命令,但找不到任何内容。我甚至无法通过telnet连接端口,它称没有任何内容正在侦听该端口。
这些受影响的端口例如:
  • 49670 - 49689
  • 49710 - 49749
  • 49760 - 49779
  • 49811 - 49830
  • 49843 - 49882
  • 50197 - 50216

我们中没有人修改了Windows防火墙,也没有安装除Windows 10默认工具以外的其他杀毒工具。因此,一切都应该是默认值。在第一次出现问题之前,它也正常运行了约10个月,并且在接下来的两个月内也是如此。在这两种情况下,都安装了一些Windows更新。最后一次是由于BIOS更新(可能是由于熔断/幽灵漏洞问题?)。

此外,尝试在防火墙上明确打开端口也没有帮助。

根据https://stackoverflow.com/a/23982901/621366的答案,TCPView和netstat不应该错过任何被占用的端口,但即使我启用了在TCPView中显示未连接的终点,我也看不到任何我尝试绑定时被拒绝许可的端口。这里是一个占用端口的屏幕截图(我标记了边界占用端口,这些端口紧随被拒绝许可的端口组之前或之后)

enter image description here

更新:

我注意到在40,000+范围内,总是有160或180(确切数字)个端口被拒绝许可。这对我来说似乎很奇怪,所以显然有些东西是故意占用端口的,但是是什么呢?我似乎在Windows事件日志中找不到任何信息(尽管我不知道要查找什么),而且我的防火墙规则中没有任何一个端口显示出现。此外,关闭Docker for Windows也没有任何区别,当同事提到他们只需重新启动Docker for Windows(在UI中转到Reset->Restart),而现在即使使用关机命令重启也不起作用。

更新2:

从管理员PowerShell运行netstat -ano的输出:

Proto  Local Address          Foreign Address        State           PID
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1152
TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
TCP    0.0.0.0:2179           0.0.0.0:0              LISTENING       4696
TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING       6616
TCP    0.0.0.0:5357           0.0.0.0:0              LISTENING       4
TCP    0.0.0.0:5432           0.0.0.0:0              LISTENING       11100
TCP    0.0.0.0:7680           0.0.0.0:0              LISTENING       7056
TCP    0.0.0.0:17500          0.0.0.0:0              LISTENING       9668
TCP    0.0.0.0:49664          0.0.0.0:0              LISTENING       784
TCP    0.0.0.0:49665          0.0.0.0:0              LISTENING       1628
TCP    0.0.0.0:49666          0.0.0.0:0              LISTENING       2028
TCP    0.0.0.0:49667          0.0.0.0:0              LISTENING       3560
TCP    0.0.0.0:49800          0.0.0.0:0              LISTENING       856
TCP    0.0.0.0:49821          0.0.0.0:0              LISTENING       892
TCP    0.0.0.0:50000          0.0.0.0:0              LISTENING       11100
TCP    0.0.0.0:50001          0.0.0.0:0              LISTENING       11100
TCP    0.0.0.0:51000          0.0.0.0:0              LISTENING       11100
TCP    10.0.75.1:139          0.0.0.0:0              LISTENING       4
TCP    10.0.75.1:445          10.0.75.2:44848        ESTABLISHED     4
TCP    127.0.0.1:843          0.0.0.0:0              LISTENING       9668
TCP    127.0.0.1:944          0.0.0.0:0              LISTENING       688
TCP    127.0.0.1:944          127.0.0.1:50968        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:50970        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:50973        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:50977        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:50981        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:50990        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:50992        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:50996        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:51005        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:51007        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:51009        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:51015        TIME_WAIT       0
TCP    127.0.0.1:944          127.0.0.1:51017        ESTABLISHED     688
TCP    127.0.0.1:4380         0.0.0.0:0              LISTENING       11024
TCP    127.0.0.1:6942         0.0.0.0:0              LISTENING       9296
TCP    127.0.0.1:17600        0.0.0.0:0              LISTENING       9668
TCP    127.0.0.1:49668        127.0.0.1:49669        ESTABLISHED     688
TCP    127.0.0.1:49669        127.0.0.1:49668        ESTABLISHED     688
TCP    127.0.0.1:50076        127.0.0.1:50077        ESTABLISHED     8828
TCP    127.0.0.1:50077        127.0.0.1:50076        ESTABLISHED     8828
TCP    127.0.0.1:50173        127.0.0.1:50174        ESTABLISHED     9668
TCP    127.0.0.1:50174        127.0.0.1:50173        ESTABLISHED     9668
TCP    127.0.0.1:50175        127.0.0.1:50176        ESTABLISHED     9668
TCP    127.0.0.1:50176        127.0.0.1:50175        ESTABLISHED     9668
TCP    127.0.0.1:50197        127.0.0.1:50198        ESTABLISHED     9668
TCP    127.0.0.1:50198        127.0.0.1:50197        ESTABLISHED     9668
TCP    127.0.0.1:50335        127.0.0.1:50336        ESTABLISHED     6424
TCP    127.0.0.1:50336        127.0.0.1:50335        ESTABLISHED     6424
TCP    127.0.0.1:50346        127.0.0.1:50347        ESTABLISHED     11100
TCP    127.0.0.1:50347        127.0.0.1:50346        ESTABLISHED     11100
TCP    127.0.0.1:51011        127.0.0.1:51012        ESTABLISHED     9296
TCP    127.0.0.1:51012        127.0.0.1:51011        ESTABLISHED     9296
TCP    127.0.0.1:51013        127.0.0.1:51014        ESTABLISHED     9296
TCP    127.0.0.1:51014        127.0.0.1:51013        ESTABLISHED     9296
TCP    127.0.0.1:51016        0.0.0.0:0              LISTENING       9296
TCP    127.0.0.1:51017        127.0.0.1:944          ESTABLISHED     8828
TCP    127.0.0.1:63342        0.0.0.0:0              LISTENING       9296
TCP    127.94.0.1:946         0.0.0.0:0              LISTENING       688
TCP    127.94.0.2:946         0.0.0.0:0              LISTENING       688
TCP    127.94.0.3:946         0.0.0.0:0              LISTENING       688
TCP    127.94.0.4:946         0.0.0.0:0              LISTENING       688
TCP    169.254.105.83:139     0.0.0.0:0              LISTENING       4
TCP    192.168.0.107:139      0.0.0.0:0              LISTENING       4
TCP    192.168.0.107:49415    111.221.29.134:443     ESTABLISHED     4316
TCP    192.168.0.107:49417    111.221.29.127:443     ESTABLISHED     4316
TCP    192.168.0.107:50185    162.125.66.3:443       CLOSE_WAIT      9668
TCP    192.168.0.107:50246    52.70.31.26:443        CLOSE_WAIT      9668
TCP    192.168.0.107:50253    35.177.204.73:443      ESTABLISHED     2804
TCP    192.168.0.107:50254    35.177.204.73:443      ESTABLISHED     2804
TCP    192.168.0.107:50256    35.177.204.73:443      ESTABLISHED     2804
TCP    192.168.0.107:50257    158.85.224.175:443     ESTABLISHED     10836
TCP    192.168.0.107:50258    13.69.14.160:443       ESTABLISHED     8620
TCP    192.168.0.107:50310    66.102.1.188:443       ESTABLISHED     11184
TCP    192.168.0.107:50329    157.240.20.15:443      ESTABLISHED     10836
TCP    192.168.0.107:50331    111.221.29.74:443      ESTABLISHED     10072
TCP    192.168.0.107:50332    162.125.18.133:443     ESTABLISHED     9668
TCP    192.168.0.107:50351    40.77.226.194:443      ESTABLISHED     8620
TCP    192.168.0.107:50460    66.102.1.189:443       ESTABLISHED     10836
TCP    192.168.0.107:50470    66.102.1.189:443       ESTABLISHED     10836
TCP    192.168.0.107:50501    192.30.253.125:443     ESTABLISHED     11184
TCP    192.168.0.107:50513    40.77.226.194:443      ESTABLISHED     8620
TCP    192.168.0.107:50529    87.98.218.198:443      ESTABLISHED     12540
TCP    192.168.0.107:50530    172.217.21.46:443      ESTABLISHED     10836
TCP    192.168.0.107:50616    172.217.21.46:443      ESTABLISHED     10836
TCP    192.168.0.107:50630    162.125.18.133:443     ESTABLISHED     9668
TCP    192.168.0.107:50641    172.217.21.37:443      ESTABLISHED     10836
TCP    192.168.0.107:50645    162.125.66.4:443       CLOSE_WAIT      9668
TCP    192.168.0.107:50668    87.98.218.198:443      ESTABLISHED     12540
TCP    192.168.0.107:50703    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50709    192.30.253.125:443     ESTABLISHED     11184
TCP    192.168.0.107:50744    87.98.218.198:443      ESTABLISHED     12540
TCP    192.168.0.107:50828    162.125.66.3:443       CLOSE_WAIT      9668
TCP    192.168.0.107:50830    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50831    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50832    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50834    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50835    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50836    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50837    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50839    192.30.253.125:443     ESTABLISHED     11184
TCP    192.168.0.107:50844    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50847    192.30.253.124:443     ESTABLISHED     11184
TCP    192.168.0.107:50857    192.30.253.124:443     ESTABLISHED     11184
TCP    192.168.0.107:50863    162.125.34.137:443     CLOSE_WAIT      9668
TCP    192.168.0.107:50865    172.217.21.46:443      TIME_WAIT       0
TCP    192.168.0.107:50866    172.217.21.46:443      ESTABLISHED     10836
TCP    192.168.0.107:50910    35.186.213.138:443     TIME_WAIT       0
TCP    192.168.0.107:50923    172.217.21.46:443      ESTABLISHED     10836
TCP    192.168.0.107:50925    40.117.190.72:443      ESTABLISHED     4040
TCP    192.168.0.107:50927    172.217.21.42:443      ESTABLISHED     11184
TCP    192.168.0.107:50949    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50950    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50951    151.101.0.133:443      ESTABLISHED     11184
TCP    192.168.0.107:50954    192.30.253.124:443     ESTABLISHED     11184
TCP    192.168.0.107:50959    40.117.190.72:443      TIME_WAIT       0
TCP    192.168.0.107:50969    192.30.253.113:22      TIME_WAIT       0
TCP    192.168.0.107:50978    87.98.218.198:443      ESTABLISHED     12540
TCP    192.168.0.107:50984    151.101.1.69:443       ESTABLISHED     11184
TCP    192.168.0.107:50985    192.0.73.2:443         ESTABLISHED     11184
TCP    192.168.0.107:50986    104.16.112.18:443      ESTABLISHED     11184
TCP    192.168.0.107:50991    198.252.206.25:443     ESTABLISHED     11184
TCP    192.168.0.107:50993    192.168.0.10:3910      TIME_WAIT       0
TCP    192.168.0.107:50994    192.168.0.10:3910      TIME_WAIT       0
TCP    192.168.0.107:50997    23.210.254.37:443      ESTABLISHED     912
TCP    192.168.0.107:50998    23.210.254.37:443      ESTABLISHED     912
TCP    192.168.0.107:50999    23.210.254.37:443      ESTABLISHED     912
TCP    192.168.0.107:51001    23.210.254.37:443      ESTABLISHED     912
TCP    192.168.0.107:51006    40.117.190.72:443      ESTABLISHED     11992
TCP    192.168.0.107:51008    40.69.218.62:443       ESTABLISHED     7056
TCP    192.168.0.107:51010    172.217.21.46:443      ESTABLISHED     11184
TCP    [::]:135               [::]:0                 LISTENING       1152
TCP    [::]:445               [::]:0                 LISTENING       4
TCP    [::]:2179              [::]:0                 LISTENING       4696
TCP    [::]:5357              [::]:0                 LISTENING       4
TCP    [::]:7680              [::]:0                 LISTENING       7056
TCP    [::]:17500             [::]:0                 LISTENING       9668
TCP    [::]:49664             [::]:0                 LISTENING       784
TCP    [::]:49665             [::]:0                 LISTENING       1628
TCP    [::]:49666             [::]:0                 LISTENING       2028
TCP    [::]:49667             [::]:0                 LISTENING       3560
TCP    [::]:49800             [::]:0                 LISTENING       856
TCP    [::]:49821             [::]:0                 LISTENING       892
TCP    [::1]:5432             [::]:0                 LISTENING       11100
TCP    [::1]:50000            [::]:0                 LISTENING       11100
TCP    [::1]:50001            [::]:0                 LISTENING       11100
TCP    [::1]:51000            [::]:0                 LISTENING       11100
UDP    0.0.0.0:53             *:*                                    5620
UDP    0.0.0.0:3702           *:*                                    2084
UDP    0.0.0.0:3702           *:*                                    2084
UDP    0.0.0.0:5050           *:*                                    6616
UDP    0.0.0.0:5353           *:*                                    11184
UDP    0.0.0.0:5353           *:*                                    11184
UDP    0.0.0.0:5353           *:*                                    11184
UDP    0.0.0.0:5353           *:*                                    3080
UDP    0.0.0.0:5353           *:*                                    11184
UDP    0.0.0.0:5353           *:*                                    11184
UDP    0.0.0.0:5353           *:*                                    11184
UDP    0.0.0.0:5353           *:*                                    11184
UDP    0.0.0.0:5355           *:*                                    3080
UDP    0.0.0.0:17500          *:*                                    9668
UDP    0.0.0.0:49670          *:*                                    2084
UDP    0.0.0.0:57329          *:*                                    5620
UDP    0.0.0.0:57330          *:*                                    5620
UDP    0.0.0.0:59529          *:*                                    8620
UDP    0.0.0.0:60605          *:*                                    11184
UDP    10.0.75.1:137          *:*                                    4
UDP    10.0.75.1:138          *:*                                    4
UDP    10.0.75.1:1900         *:*                                    2620
UDP    10.0.75.1:61326        *:*                                    2620
UDP    127.0.0.1:1900         *:*                                    2620
UDP    127.0.0.1:60816        *:*                                    4616
UDP    127.0.0.1:61328        *:*                                    2620
UDP    169.254.105.83:137     *:*                                    4
UDP    169.254.105.83:138     *:*                                    4
UDP    169.254.105.83:1900    *:*                                    2620
UDP    169.254.105.83:61330   *:*                                    2620
UDP    172.30.146.241:67      *:*                                    5620
UDP    172.30.146.241:68      *:*                                    5620
UDP    172.30.146.241:1900    *:*                                    2620
UDP    172.30.146.241:61329   *:*                                    2620
UDP    192.168.0.107:137      *:*                                    4
UDP    192.168.0.107:138      *:*                                    4
UDP    192.168.0.107:1900     *:*                                    2620
UDP    192.168.0.107:61327    *:*                                    2620
UDP    [::]:3702              *:*                                    2084
UDP    [::]:3702              *:*                                    2084
UDP    [::]:5353              *:*                                    11184
UDP    [::]:5353              *:*                                    11184
UDP    [::]:5353              *:*                                    3080
UDP    [::]:5353              *:*                                    11184
UDP    [::]:5355              *:*                                    3080
UDP    [::]:49671             *:*                                    2084
UDP    [::]:57331             *:*                                    5620
UDP    [::]:59529             *:*                                    8620
UDP    [::1]:1900             *:*                                    2620
UDP    [::1]:61323            *:*                                    2620
UDP    [fe80::30eb:ad8f:f94a:b774%26]:1900  *:*                                    2620
UDP    [fe80::30eb:ad8f:f94a:b774%26]:61324  *:*                                    2620
UDP    [fe80::718c:22bb:fd97:c06c%23]:1900  *:*                                    2620
UDP    [fe80::718c:22bb:fd97:c06c%23]:61322  *:*                                    2620
UDP    [fe80::85d0:3b5c:7746:6953%5]:1900  *:*                                    2620
UDP    [fe80::85d0:3b5c:7746:6953%5]:61325  *:*                                    2620

我用来测试开放端口的f#代码:

open System.Net
open System.Net.Sockets

let ipAddress = IPAddress([| (byte)0; (byte)0; (byte)0; (byte)0 |])

let ipEndpoint portNumber = (IPEndPoint(ipAddress, portNumber), portNumber)

let getPorts = seq { for i in 1 .. 65535 -> i }

let checkIfPortAvailable (endpoint, portNumber) =
    use listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
    try
        listener.Bind(endpoint)
        (portNumber, true, null)
    with
        | ex -> (portNumber, false, ex)

[<EntryPoint>]
let main argv =
    getPorts
    |> Seq.map ipEndpoint
    |> Seq.map checkIfPortAvailable
    |> Seq.where (fun (_, works, _) -> not works)
    |> Seq.where (fun (_, _, ex) -> ex.Message.Contains("An attempt was made to access a socket in a way forbidden by its access permissions"))
    |> Seq.iteri (fun index (port, _, _) -> printfn "%5d: %d" index port)

    0

执行应用程序后的输出(在执行netstat命令后立即执行):

0: 445
1: 5357
2: 7680
3: 49670
4: 49671
5: 49672
6: 49673
7: 49674
8: 49675
9: 49676
10: 49677
11: 49678
12: 49679
13: 49680
14: 49681
15: 49682
16: 49683
17: 49684
18: 49685
19: 49686
20: 49687
21: 49688
22: 49689
23: 49710
24: 49711
25: 49712
26: 49713
27: 49714
28: 49715
29: 49716
30: 49717
31: 49718
32: 49719
33: 49720
34: 49721
35: 49722
36: 49723
37: 49724
38: 49725
39: 49726
40: 49727
41: 49728
42: 49729
43: 49730
44: 49731
45: 49732
46: 49733
47: 49734
48: 49735
49: 49736
50: 49737
51: 49738
52: 49739
53: 49740
54: 49741
55: 49742
56: 49743
57: 49744
58: 49745
59: 49746
60: 49747
61: 49748
62: 49749
63: 49750
64: 49751
65: 49752
66: 49753
67: 49754
68: 49755
69: 49756
70: 49757
71: 49758
72: 49759
73: 49770
74: 49771
75: 49772
76: 49773
77: 49774
78: 49775
79: 49776
80: 49777
81: 49778
82: 49779
83: 49780
84: 49781
85: 49782
86: 49783
87: 49784
88: 49785
89: 49786
90: 49787
91: 49788
92: 49789
93: 49790
94: 49791
95: 49792
96: 49793
97: 49794
98: 49795
99: 49796
100: 49797
101: 49798
102: 49799
103: 49825
104: 49826
105: 49827
106: 49828
107: 49829
108: 49830
109: 49831
110: 49832
111: 49833
112: 49834
113: 49835
114: 49836
115: 49837
116: 49838
117: 49839
118: 49840
119: 49841
120: 49842
121: 49843
122: 49844
123: 49845
124: 49846
125: 49847
126: 49848
127: 49849
128: 49850
129: 49851
130: 49852
131: 49853
132: 49854
133: 49855
134: 49856
135: 49857
136: 49858
137: 49859
138: 49860
139: 49861
140: 49862
141: 49863
142: 49864
143: 49866
144: 49867
145: 49868
146: 49869
147: 49870
148: 49871
149: 49872
150: 49873
151: 49874
152: 49875
153: 49876
154: 49877
155: 49878
156: 49879
157: 49880
158: 49881
159: 49882
160: 49883
161: 49884
162: 49885
163: 50274
164: 50275
165: 50276
166: 50277
167: 50278
168: 50279
169: 50280
170: 50281
171: 50282
172: 50283
173: 50284
174: 50285
175: 50286
176: 50287
177: 50288
178: 50289
179: 50290
180: 50291
181: 50292
182: 50293

我实际想打开的端口是49786,但我的小型测试算法报告了被拒绝许可的端口数量,但在检查netstat时未分配,这令我感到困惑。
更新3:
现在,简单运行shutdown /s /f /t 0不再起作用,我已经找到了另一个解决方法,在https://social.technet.microsoft.com/Forums/windows/en-US/e0cc1b3e-2c63-451a-abc8-8e1e66a23287/an-attempt-was-made-to-access-a-socket-in-a-way-forbidden-by-its-access-permissions?forum=w7itpronetworking中似乎可以可靠地工作——netsh int ip reset并重新启动计算机(普通的Windows 10重启就足够了),目前该端口始终可用(但只尝试了3次)。
更新4:
评论摘要:
  • 将SO_REUSEADDR设置为small f#脚本只会使情况更糟
  • 尝试关闭Skype、VPN应用程序、Dropbox等没有任何效果(是的,我确信进程已经终止)

1
@SylvanLEDEUNFF - 哪个应用程序正在打开哪些端口?您已经看到,所涉及的端口在netstat中未被提及,据我所知,任务管理器不提供有关打开端口和netstat进程ID的信息,我发表的netstat进程ID是几天前的,因此它们在任务管理器中会有所不同,所以抱歉,您能否详细说明如何从任务管理器截取屏幕截图会对您有所帮助? - peter
1
@SylvanLEDEUNFF,你提出的观点很有道理。不幸的是,我不知道如何从任务管理器中导出进程列表。但我尝试了一个实验,在关闭大部分进程后,只剩下70-80个正在运行的进程,我注意到在关闭一些服务后,实际上更多的端口被标记为拒绝访问,这让我想 - 也许不是正在运行的进程,而是已经终止但没有释放端口的进程,如果可能的话。此外,在安全模式下(显然)没有任何端口被标记为拒绝访问。 - peter
1
是的,我认为这应该是一个忘记关闭端口的服务。 - Sylvan LE DEUNFF
2
@SylvanLEDEUNFF 如果一个服务忘记永久关闭端口,那么为什么端口会被关闭?这不应该在netstat或TCPView中显示吗?有没有办法强制释放资源? - binki
7
我也曾在1809版本上遇到同样的问题(尝试使用TCPView和netstat都没有成功)。发现这篇文章表明安装KB4074588会阻止一些端口。netsh interface ipv4 show excludedportrange protocol=tcp会给您列出保留端口的列表,这恰好是我遇到问题的原因。不确定这些端口是否永久保留或以后是否会有变化。 - max23_
显示剩余22条评论
8个回答

71

我之前也遇到了Hyper-v/WSL的问题,但是找到了一个更简单的解决方案:

在执行以下命令之前,我已经停止了Docker,不确定是否必需。

以管理员身份运行:

net stop winnat
net start winnat

1
这个回答并没有得到足够的关注,因为它很琐碎,并且每次都对我起作用。 - Krum
1
我也使用过这种方法 - 问题是你需要在每次重启后都要这样做。 - dermoritz
1
@dermoritz 对我来说,它不是在每次重启后都发生.. 但它偶尔还是会出现。 - AlexDev
我和原帖作者一样,突然遇到了同样的问题。之前WSL一直正常工作,但是这个答案解决了这个问题。 - Alexey Larionov
在反复运行使用大量端口的测试并在其中一个测试未能正确退出时将计算机置于睡眠状态时,遇到了这个问题。这解决了问题,谢谢! - Michael Hobbs
1
这个问题对我来说很少发生,但是这种方法每次都有效。谢谢 :) - bramhaag

56
原因是Hyper-V接管了这些端口,为了防止这种情况发生,请按以下步骤操作:
  1. dism.exe /Online /Disable-Feature:Microsoft-Hyper-V(需要重新启动)
  2. netsh int ipv4 add excludedportrange protocol=tcp startport=<your port> numberofports=1
  3. dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
原始解决方案在这里
如果此后仍无法绑定端口,请执行以下操作:
  • 对于IPv4,运行命令netsh http add iplisten 0.0.0.0
  • 对于IPv6,运行命令netsh http add iplisten ::
更多信息请参见这里

38
尽管这个解决方案对我不起作用,但它引导我走向正确的方向。我发现了这个链接,其中提到了一个Windows 10更新1809后出现的问题,在这种情况下,Windows将保留包括端口50,000在内的一系列端口。那就是我的问题所在。要显示是否已保留端口,请运行命令:netsh int ipv4 show excludedportrange protocol=tcp 要禁用保留端口,请运行命令:reg add HKLM\SYSTEM\CurrentControlSet\Services\hns\State /v EnableExcludedPortRange /d 0 /f - Gilberto Treviño
8
我认为你应该将你的评论作为答案添加。 - Cloud
这解决了一个神秘的套接字绑定错误,而这个问题已经存在很长时间了。谢谢! - Serve Laurijssen

26

5
请注意,需要重新启动才能更新排除的端口范围并释放您的端口。 - cdalxndr
这似乎是解决我在使用Wampserver时无法通过PHPMyAdmin访问MySQL的问题的答案。我会试一试。 - Eric Hepperle - CodeSlayer2010

11
如果你在Win10 2004上遇到了这个问题,那是由于该更新中存在问题,执行以下操作如下

netsh int ipv[46] set dynamic tcp start=49152 num=16384

reg add HKLM\SYSTEM\CurrentControlSet\Services\hns\State /v EnableExcludedPortRange /d 0 /f

我在打开Jetbrains IDE和使用套接字的许多其他程序时都遇到了这个问题。


1
在我的情况下,只需要运行 netsh 命令(然后重新启动计算机);因此,如果 netsh 命令不起作用,我建议只运行更改注册表的命令。 - Venryx

11
我目前(2021年8月)遇到了类似的问题,这个 GitHub 问题提供了一些关于该问题的见解。看起来...
net stop winnat
net start winnat

可能需要在重新启动winnat之前启动您的应用程序以解决问题。


这对我也起作用了。在重新启动winnat后,之前被排除的端口不再被阻止,我能够运行IISExpress。 - Mike WP
这个解决方案帮助我解决了运行Syncthing应用程序时遇到的问题。我在下面评论了错误,以供将来搜索的人参考:启动API/GUI:监听tcp 127.0.0.1:8384:绑定:尝试访问被其访问权限禁止的套接字。 - undefined

8
如果有人因为更新到包含WSL2的2020年5月更新后遇到类似问题而来到这里,请注意:在我这种情况下,我在切换docker到WSL2之后,开始遇到一些容器的类似问题。
注:在powershell(以管理员身份运行)中运行以下命令:
  1. 禁用Hyper-V。

    dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

  2. 删除所有与hyper-v相关的网络适配器。

    Get-HNSNetwork | Remove-HNSNetwork

  3. 重新启动。


1
这解决了我很多问题,谢谢! - Ruben Rutten
1
请注意,如果您删除HNSNetwork,它也会删除vEthernet适配器,该适配器负责为WSL内部的VM提供网络连接,这将破坏您的系统,并需要进行恢复。这不是解决方案,不应在不知道其后果的情况下尝试。 - Maulik Parmar
@MaulikParmar 不会的。这是微软建议的步骤,用于在卸载 Docker 时清理 Docker 组件。看看这个。这是在尝试并成功无害后发布的建议。 - shubhamr
我还在摸索中,系统还原无法恢复网络适配器,现在我的WSL也坏了。我也没有安装Docker,但需要释放53端口用于DNS服务器,并按照此操作。有趣的是,它也删除了vEthernet。 - Maulik Parmar
2
我在过去几个月中一直在与这个问题斗争。当我运行了那两个命令时,我的vEthernet适配器消失了,但是在我重新启动后,它们又回来了。一切似乎都正常工作,到目前为止,它似乎已经为我解决了问题(幸运的是,现在我们有了WSL2,我不再需要Hyper-V)。 - lethek
1
这个更新后也发生在我身上了。由于我目前不使用Docker,对我来说快速解决方法不仅是退出Docket作为桌面应用程序并且不启动启动时启动。我还必须停止Docker服务并将其切换到手动启动。 然后重新启动后就不会再创建预留了。 - LadislavBohm

4

对所选答案的进一步扩展:如果您启用了Hyper-V,可以在启动期间使用bcdedit暂时禁用它:

bcdedit /Set {current} hypervisorlaunchtype off

然后通过以下方式排除必要端口:

netsh int ipv4 add excludedportrange protocol=tcp startport=<your port> numberofports=1

最后重新启用Hyper-V并重启:

bcdedit /Set {current} hypervisorlaunchtype auto

这样可以避免完全删除和重新添加Hyper-V功能,这需要多次重启。


0

查找时,解释如下:

尝试访问一种被其访问权限禁止的套接字。一个例子是在没有使用setsockopt(SO_BROADCAST)设置广播权限的情况下使用广播地址进行sendto操作。

WSAEACCES错误的另一个可能原因是,在调用bind函数时(在Windows NT 4.0及其后续版本中),另一个应用程序、服务或内核模式驱动程序已经绑定到具有独占访问权限的相同地址。这种独占访问权限是Windows NT 4.0及其后续版本的新功能,并通过使用SO_EXCLUSIVEADDRUSE选项实现。


4
是的,那似乎是正确的,但我看不到应用程序与这些端口绑定 - 就像我说的,多人(目前有4个)使用不同的Windows 10计算机/笔记本电脑出现了相同的不确定性问题,有时重新启动某些服务或窗口后问题会消失,有时多次重启也无法解决。 - peter
我已经在问题中添加了更多的数据,也许这有所帮助? - peter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接