为什么在Linux机器上,除了icmp之外,任何数据包都不会通过,但正确传递窗口

为什么在Linux机器上,除了icmp之外,任何数据包都不会通过,但正确传递窗口,第1张

概述proxmox上有一个集群.在群集中有vm配置的路由器(pfsense).在我们的网络有 Windows和 Linux机器. 有问题: Windows机器可以访问互联网,但Linux机器没有. 所有Linux机器的行为方式都相同,它发送请求并等待响应,但响应没有回来. 我检查了wget,ssh和nslookup到外部服务器(8.8.8.8示例)并ping.除ping之外,一切都不起作用. ICMP proxmox上有一个集群.在群集中有vm配置的路由器(pfsense).在我们的网络有 Windows和 Linux机器.

有问题:
windows机器可以访问互联网,但linux机器没有.

所有linux机器的行为方式都相同,它发送请求并等待响应,但响应没有回来.
我检查了wget,ssh和nslookup到外部服务器(8.8.8.8示例)并Ping.除Ping之外,一切都不起作用.
ICMP数据包正确地去了,因此我冒昧地建议TCP的问题.
但是对于所有的windows机器,一切正常.

我没有为linux或windows创建特殊的过滤规则.

我打破了头,但一直未能解决这个问题.

基线:

Our External IP:    XX.XXX.XX.XXExternal Server IP:   Y.YYY.Y.YYY   (which was used to test)

所以,我花了两个测试:

测试1.来自linux机器的wget:

从路由器捕获数据包:

No.  Time         Source             Destination     Protocol Length Info      1 0.000000  XX.XXX.XX.XX       Y.YYY.Y.YYY        http     174 GET / http/1.1      2 21.798340 XX.XXX.XX.XX       Y.YYY.Y.YYY        TCP       74 49656 > http [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=173036151 TSecr=0 WS=128      3 21.850793 Y.YYY.Y.YYY        XX.XXX.XX.XX       TCP       74 http > 49656 [SYN,ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 SACK_PERM=1 TSval=1304117522 TSecr=173036151 WS=1024      4 21.850849 XX.XXX.XX.XX       Y.YYY.Y.YYY        TCP       66 49656 > http [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSval=173036203 TSecr=1304117522      5 21.850868 XX.XXX.XX.XX       Y.YYY.Y.YYY        http     174 GET / http/1.1      6 22.101939 XX.XXX.XX.XX       Y.YYY.Y.YYY        http     174 [TCP Retransmission] GET / http/1.1      7 22.605999 XX.XXX.XX.XX       Y.YYY.Y.YYY        http     174 [TCP Retransmission] GET / http/1.1      8 23.613997 XX.XXX.XX.XX       Y.YYY.Y.YYY        http     174 [TCP Retransmission] GET / http/1.1      9 25.629983 XX.XXX.XX.XX       Y.YYY.Y.YYY        http     174 [TCP Retransmission] GET / http/1.1     10 28.931894 Y.YYY.Y.YYY        XX.XXX.XX.XX       TCP       78 http > 11956 [FIN,ACK] Seq=1 Ack=1 Win=6 Len=0 TSval=1304124610 TSecr=172983238 SLE=109 SRE=110     11 28.932001 XX.XXX.XX.XX       Y.YYY.Y.YYY        TCP       66 [TCP PrevIoUs segment not captured] 11956 > http [ACK] Seq=110 Ack=2 Win=115 Len=0 TSval=173043285 TSecr=1304124610     12 29.661996 XX.XXX.XX.XX       Y.YYY.Y.YYY        http     174 [TCP Retransmission] GET / http/1.1     13 31.360021 XX.XXX.XX.XX       Y.YYY.Y.YYY        http     174 [TCP Retransmission] GET / http/1.1

从我的外部服务器捕获数据包:

No.  Time         Source             Destination     Protocol Length Info      1 0.000000  XX.XXX.XX.XX       Y.YYY.Y.YYY        TCP       76 49656 > http [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=173036151 TSecr=0 WS=128      2 0.000059  Y.YYY.Y.YYY        XX.XXX.XX.XX       TCP       76 http > 49656 [SYN,ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 SACK_PERM=1 TSval=1304117522 TSecr=173036151 WS=1024      3 0.059242  XX.XXX.XX.XX       Y.YYY.Y.YYY        TCP       68 49656 > http [ACK] Seq=1 Ack=1 Win=14720 Len=0 TSval=173036203 TSecr=1304117522      4 0.059247  XX.XXX.XX.XX       Y.YYY.Y.YYY        http     176 GET / http/1.1      5 0.303398  XX.XXX.XX.XX       Y.YYY.Y.YYY        http     176 [TCP Retransmission] GET / http/1.1      6 0.809767  XX.XXX.XX.XX       Y.YYY.Y.YYY        http     176 [TCP Retransmission] GET / http/1.1      7 1.815634  XX.XXX.XX.XX       Y.YYY.Y.YYY        http     176 [TCP Retransmission] GET / http/1.1      8 3.836576  XX.XXX.XX.XX       Y.YYY.Y.YYY        http     176 [TCP Retransmission] GET / http/1.1      9 7.088059  Y.YYY.Y.YYY        XX.XXX.XX.XX       TCP       80 http > 11956 [FIN,ACK] Seq=1 Ack=1 Win=6 Len=0 TSval=1304124610 TSecr=172983238 SLE=109 SRE=110     10 7.134903  XX.XXX.XX.XX       Y.YYY.Y.YYY        TCP       68 11956 > http [ACK] Seq=110 Ack=2 Win=115 Len=0 TSval=173043285 TSecr=1304124610     11 7.864582  XX.XXX.XX.XX       Y.YYY.Y.YYY        http     176 [TCP Retransmission] GET / http/1.1     12 9.564772  XX.XXX.XX.XX       Y.YYY.Y.YYY        http     176 [TCP Retransmission] GET / http/1.1

从windows机器测试2.wget:

从路由器捕获数据包:

No.  Time         Source             Destination     Protocol Length Info      1 0.000000  XX.XXX.XX.XX       Y.YYY.Y.YYY        TCP       66 ampr-info > http [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1      2 0.053994  Y.YYY.Y.YYY        XX.XXX.XX.XX       TCP       66 http > ampr-info [SYN,ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 SACK_PERM=1 WS=1024      3 0.054129  XX.XXX.XX.XX       Y.YYY.Y.YYY        TCP       54 ampr-info > http [ACK] Seq=1 Ack=1 Win=65536 Len=0      4 0.054450  XX.XXX.XX.XX       Y.YYY.Y.YYY        http     150 GET / http/1.0      5 0.110034  Y.YYY.Y.YYY        XX.XXX.XX.XX       TCP       60 http > ampr-info [ACK] Seq=1 Ack=97 Win=6144 Len=0      6 0.113011  Y.YYY.Y.YYY        XX.XXX.XX.XX       http     931 http/1.1 200 OK  (text/HTML)      7 0.115990  XX.XXX.XX.XX       Y.YYY.Y.YYY        TCP       54 ampr-info > http [RST,ACK] Seq=97 Ack=878 Win=0 Len=0

从我的外部服务器捕获数据包:

No.  Time         Source             Destination     Protocol Length Info      1 0.000000  XX.XXX.XX.XX       Y.YYY.Y.YYY        TCP       66 ampr-info > http [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1      2 0.053994  Y.YYY.Y.YYY        XX.XXX.XX.XX       TCP       66 http > ampr-info [SYN,ACK] Seq=97 Ack=878 Win=0 Len=0

请帮帮我,有什么想法吗?

解决方法 我过去曾见过类似的问题.原来是由于校验和卸载问题.虚拟化客户 *** 作系统将向虚拟化主机卸载检查,虚拟主机应该将其卸载到物理网络接口.

但最终从未计算过校验和,并且数据包是通过网络发送的,没有有效的校验和.在连接的接收端,由于校验和无效,数据包将被丢弃.

在虚拟化主机和来宾上,您可以尝试使用以下任何名称查找选项并尝试将其关闭:

> UDP校验和卸载> TCP校验和卸载> UDP碎片卸载> TCP分段卸载

总结

以上是内存溢出为你收集整理的为什么在Linux机器上,除了icmp之外,任何数据包都不会通过,但正确传递窗口全部内容,希望文章能够帮你解决为什么在Linux机器上,除了icmp之外,任何数据包都不会通过,但正确传递窗口所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1038009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存