繁体   English   中英

在客户端建立linux tcp连接,在服务器上不可见

[英]linux tcp connection established on client, invisible on server

在我的一台Linux主机上,一个tcp套接字似乎在一侧可见而在另一侧不可见。 我的意思是,当我在其中一台主机上时,netstat显示此套接字,而在另一台主机上(而不是在Linux上),则显示该套接字:

# netstat -anp|grep 37674
udp        0      0 169.254.192.2:37674         169.254.192.1:8649          ESTABLISHED 22644/xxxxx
# ssh 169.254.192.1
Last login: Mon Jan 13 15:22:54 CET 2014 from xxxxxx on ssh
# netstat -anp|grep 8649
# 

如果我没有正确理解,netstat将从/ proc / net / tcp读取连接。 显然,第二列的/ proc / net / tcp中的本地ip地址和端口为0123ABCD:1234。

37674(10)= 932A(16)

因此,我试图在/ proc / net / tcp中找到932A,忽略大小写,但一无所获。

IP地址没有被截断,因为我的网络上没有其他169.254.192.1xx主机。

三个小时后仍可以看到此连接,因此我认为它与超时无关。

netstat的输出显示为UDP。 (查看/ proc / net / udp)

这意味着169.254.192.2已将connect()调用到169.254.192.1:8649。 UDP是无连接的,因此此信息仅本地记录在169.254.192.2计算机上的套接字上。

在UDP套接字上调用connect()仅使您能够在该套接字上调用send(),而无需使用sendto()/ sendmsg()指定每个数据包的目标地址-两台计算机之间未创建实际连接。

如果169.254.192.1的计算机未在端口8649上侦听/接收数据包,则169.254.192.1的计算机设置可以通过其发送数据包的套接字是没有意义的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM