【问题标题】:Socket connection to LAN computer fails?套接字连接到局域网计算机失败?
【发布时间】:2011-08-28 10:12:52
【问题描述】:

PC1 和 PC2 用一个开关连接。

PC1--<-->--SWITCH--<-->--PC2

两者都安装了 Windows 7。
PC1 已开启防火墙。
PC2 的防火墙已关闭。
他们可以共享文件。
他们可以互相远程桌面。

PC2 的 80 端口上有一个 HttpListener,但无法从 PC1 连接到 PC2 的 80 端口。
可能是什么问题呢?

PC1 网络信息:

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::5948:69a8:d29e:6bfe%11
   Autoconfiguration IPv4 Address. . : 169.254.107.254
   Subnet Mask . . . . . . . . . . . : 255.255.0.0
   Default Gateway . . . . . . . . . :

PC2 网络信息:

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::5cd8:ed4e:8848:569%11
   Autoconfiguration IPv4 Address. . : 169.254.5.105
   Subnet Mask . . . . . . . . . . . : 255.255.0.0
   Default Gateway . . . . . . . . . :

telnet pc2 80,来自 PC1 说:
无法在端口 80 上打开与主机的连接:连接失败。

PC2 上的“netstat -anb”:

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:554            0.0.0.0:0              LISTENING
 [wmpnetwk.exe]
  TCP    0.0.0.0:2869           0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:5357           0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:10243          0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:49152          0.0.0.0:0              LISTENING
 [wininit.exe]
  TCP    0.0.0.0:49153          0.0.0.0:0              LISTENING
  eventlog
 [svchost.exe]
  TCP    0.0.0.0:49154          0.0.0.0:0              LISTENING
  Schedule
 [svchost.exe]
  TCP    0.0.0.0:49155          0.0.0.0:0              LISTENING
 [services.exe]
  TCP    0.0.0.0:49156          0.0.0.0:0              LISTENING
 [lsass.exe]
  TCP    169.254.5.105:139      0.0.0.0:0              LISTENING
 Can not obtain ownership information
  TCP    [::]:80                [::]:0                 LISTENING
 Can not obtain ownership information
  TCP    [::]:135               [::]:0                 LISTENING
  RpcSs
 [svchost.exe]
  TCP    [::]:445               [::]:0                 LISTENING
 Can not obtain ownership information
  TCP    [::]:554               [::]:0                 LISTENING
 [wmpnetwk.exe]
  TCP    [::]:2869              [::]:0                 LISTENING
 Can not obtain ownership information
  TCP    [::]:3587              [::]:0                 LISTENING
  p2pimsvc
 [svchost.exe]
  TCP    [::]:5357              [::]:0                 LISTENING
 Can not obtain ownership information
  TCP    [::]:10243             [::]:0                 LISTENING
 Can not obtain ownership information
  TCP    [::]:49152             [::]:0                 LISTENING
 [wininit.exe]
  TCP    [::]:49153             [::]:0                 LISTENING
  eventlog
 [svchost.exe]
  TCP    [::]:49154             [::]:0                 LISTENING
  Schedule
 [svchost.exe]
  TCP    [::]:49155             [::]:0                 LISTENING
 [services.exe]
  TCP    [::]:49156             [::]:0                 LISTENING
 [lsass.exe]
  TCP    [fe80::5cd8:ed4e:8848:569%11]:445  [fe80::5948:69a8:d29e:6bfe%11]:49569  ESTABLISHED
 Can not obtain ownership information
  UDP    0.0.0.0:68             *:*                    
  Dhcp
 [svchost.exe]
  UDP    0.0.0.0:123            *:*                    
  W32Time
 [svchost.exe]
  UDP    0.0.0.0:3702           *:*                    
  EventSystem
 [svchost.exe]
  UDP    0.0.0.0:3702           *:*                    
  FDResPub
 [svchost.exe]
  UDP    0.0.0.0:3702           *:*                    
  FDResPub
 [svchost.exe]
  UDP    0.0.0.0:3702           *:*                    
  EventSystem
 [svchost.exe]
  UDP    0.0.0.0:5004           *:*                    
 [wmpnetwk.exe]
  UDP    0.0.0.0:5005           *:*                    
 [wmpnetwk.exe]
  UDP    0.0.0.0:5355           *:*                    
  Dnscache
 [svchost.exe]
  UDP    0.0.0.0:56904          *:*                    
  FDResPub
 [svchost.exe]
  UDP    0.0.0.0:56906          *:*                    
  EventSystem
 [svchost.exe]
  UDP    0.0.0.0:65438          *:*                    
  EventSystem
 [svchost.exe]
  UDP    127.0.0.1:1900         *:*                    
  SSDPSRV
 [svchost.exe]
  UDP    127.0.0.1:56903        *:*                    
  SSDPSRV
 [svchost.exe]
  UDP    169.254.5.105:137      *:*                    
 Can not obtain ownership information
  UDP    169.254.5.105:138      *:*                    
 Can not obtain ownership information
  UDP    169.254.5.105:1900     *:*                    
  SSDPSRV
 [svchost.exe]
  UDP    169.254.5.105:56902    *:*                    
  SSDPSRV
 [svchost.exe]
  UDP    [::]:123               *:*                    
  W32Time
 [svchost.exe]
  UDP    [::]:3540              *:*                    
  p2pimsvc
 [svchost.exe]
  UDP    [::]:3702              *:*                    
  FDResPub
 [svchost.exe]
  UDP    [::]:3702              *:*                    
  EventSystem
 [svchost.exe]
  UDP    [::]:3702              *:*                    
  FDResPub
 [svchost.exe]
  UDP    [::]:3702              *:*                    
  EventSystem
 [svchost.exe]
  UDP    [::]:5004              *:*                    
 [wmpnetwk.exe]
  UDP    [::]:5005              *:*                    
 [wmpnetwk.exe]
  UDP    [::]:5355              *:*                    
  Dnscache
 [svchost.exe]
  UDP    [::]:56905             *:*                    
  FDResPub
 [svchost.exe]
  UDP    [::]:56907             *:*                    
  EventSystem
 [svchost.exe]
  UDP    [::]:65439             *:*                    
  EventSystem
 [svchost.exe]
  UDP    [::1]:1900             *:*                    
  SSDPSRV
 [svchost.exe]
  UDP    [::1]:56901            *:*                    
  SSDPSRV
 [svchost.exe]
  UDP    [fe80::5cd8:ed4e:8848:569%11]:546  *:*                    
  Dhcp
 [svchost.exe]
  UDP    [fe80::5cd8:ed4e:8848:569%11]:1900  *:*                    
  SSDPSRV
 [svchost.exe]
  UDP    [fe80::5cd8:ed4e:8848:569%11]:56900  *:*                    
  SSDPSRV
 [svchost.exe]

EDIT1 - 一些 Wireshark 报告(telnet pc2 80):

62  28.544466   169.254.5.105   169.254.107.254 NBSS    126 Session request, to PC1<20> from PC2<00>
63  28.544538   169.254.107.254 169.254.5.105   NBSS    58  Positive session response
64  28.544761   169.254.5.105   169.254.107.254 SMB 213 Negotiate Protocol Request
65  28.545154   169.254.107.254 169.254.5.105   SMB2    228 NegotiateProtocol Response
66  28.545359   169.254.5.105   169.254.107.254 SMB2    162 NegotiateProtocol Request
67  28.545527   169.254.107.254 169.254.5.105   SMB2    228 NegotiateProtocol Response
68  28.546260   169.254.5.105   169.254.107.254 SMB2    220 SessionSetup Request, NTLMSSP_NEGOTIATE
69  28.546416   169.254.107.254 169.254.5.105   SMB2    339 SessionSetup Response, Error: STATUS_MORE_PROCESSING_REQUIRED, NTLMSSP_CHALLENGE
70  28.546836   169.254.5.105   169.254.107.254 SMB2    294 SessionSetup Request, NTLMSSP_AUTH, User: \, Unknown message type
71  28.547306   169.254.107.254 169.254.5.105   SMB2    159 SessionSetup Response, Unknown message type
72  28.547646   169.254.5.105   169.254.107.254 SMB2    162 TreeConnect Request Tree: \\PC1\IPC$
73  28.547723   169.254.107.254 169.254.5.105   SMB2    138 TreeConnect Response

EDIT2 - Wireshark,跟随 TCP 流:

12  2.197774    fe80::5948:69a8:d29e:6bfe   fe80::5cd8:ed4e:8848:569    TCP 86  50243 > http [SYN] Seq=0 Win=8192 Len=0 MSS=1440 WS=256 SACK_PERM=1
14  5.197056    fe80::5948:69a8:d29e:6bfe   fe80::5cd8:ed4e:8848:569    TCP 86  50243 > http [SYN] Seq=0 Win=8192 Len=0 MSS=1440 WS=256 SACK_PERM=1
19  11.197398   fe80::5948:69a8:d29e:6bfe   fe80::5cd8:ed4e:8848:569    TCP 82  50243 > http [SYN] Seq=0 Win=8192 Len=0 MSS=1440 SACK_PERM=1

SORRY GUYS:防火墙没有完全禁用专用网络只有公共网络,我再次检查并发现..现在一切正常。谢谢。

【问题讨论】:

  • 你能在 pc2 上telnet localhost 80,你能在 pc1 上ping pc2 吗?看来这对我来说一定是防火墙问题......是的,我知道你说它已经关闭,但仍然......
  • telnet localhost 80 没有问题,ping pc2,来自 pc1 结果:Pinging PC1 [fe80::5cd8:ed4e:8848:569%11] with 32 bytes of data: Reply from fe80::5cd8:ed4e:8848:569%11: time&lt;1ms Reply from fe80::5cd8:ed4e:8848:569%11: time&lt;1ms Reply from fe80::5cd8:ed4e:8848:569%11: time&lt;1ms Reply from fe80::5cd8:ed4e:8848:569%11: time&lt;1ms Ping statistics for fe80::5cd8:ed4e:8848:569%11: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
  • 这可能是 IPv4 与 IPv6 的问题,尝试通过 IPv4 地址而不是通过 NetBIOS 名称显式连接:telnet 169.254.5.105 80
  • 我想值得一试,但如果指定 IPv4 地址仍然不起作用,则不太可能有所作为。我认为这是某处的防火墙问题-也许值得重新启动 HTTPListener 以使其重新绑定,然后再试一次?另外,如果这不起作用,如果您绑定到特定地址(即您的 IPv4 169... 地址),它是否有效?
  • Windows 7 再次来袭... 最好将其保持开启并明确允许您的应用程序通过它以防止此类问题(并提高安全性)。

标签: c# sockets networking connection httplistener


【解决方案1】:

这是一个防火墙问题,请尝试将包括您的交换机在内的所有防火墙都设置为打开状态。

如果解决了,这不再是堆栈溢出问题...

【讨论】:

  • 我在 PC2 上执行了“netstat -anb”,显示了上述结果。它显示端口 80 正在被监听。这是我的HttpListener。在运行 HttpListener net stat 之前没有提供任何关于端口 80 的信息。
  • @DaveRandom:不,这是一个实际的实现,并非毫无意义。检查 SonicWall Pro 1260,鉴于存在这样的防火墙开关,我们不能忽略该开关。我宁愿认为你的评论毫无意义......
  • @Samet:好的。 Wireshark 或类似工具揭示了什么?
  • @Samet 只是因为你等待响应的时间很长并且连接没有被重置,并不意味着你没有被防火墙,许多防火墙会默默地丢弃不允许的数据包,而不是主动拒绝他们。但是 Tom 在询问 Wireshark 时非常热情,没有它我从不开发原始套接字应用程序......
  • @Samet,wireshark 数据不包含我们在这里讨论的流。如果您在端口 80 上运行,我们感兴趣的流量将在第 5 列中显示为“HTTP”。当你找到一些时,右键单击它并单击“Follow TCP Stream”,然后在此处发布该流...
猜你喜欢
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多