1
我有一个客户端和一个服务器。在同一台机器上运行时,它们工作正常,但是当我尝试从网络外部连接客户端时,我的服务器将不会发送SYN+ACK
数据包来响应SYN
数据包。服务器不发送SYN + ACK
使用Wireshark我可以看到来自客户端的SYN
数据包,但我没有看到SYN+ACK
数据包发送到客户端。
我发现了一些解决方案,说关闭TCP窗口缩放和TCP时间戳,但没有为我工作。此外,与在服务器端的netstat -ln
命令,我可以看到
tcp 0 0 0.0.0.0:55000 0.0.0.0:* LISTEN
这里是在服务器端Wireshark的输出:
这里是我的IP表:
检查您的防火墙配置。 Wireshark可能会在流量进入防火墙之前捕获流量,以便您在Wireshark中看到SYN,但应用程序永远不会获取它。 –
@SteffenUllrich我使用了“sudo ufw allow myport”,如果我使用“sudo ufw status”,则表示允许我的端口。我想这是完成的,对吧?但仍然没有结果 –
考虑到netstat显示监听套接字,并且TCP握手在内核中完成(即没有应用程序故障),我的猜测仍然是防火墙或您已经错误地解释wireshark输出。如果你添加* all * iptables规则和wireshark/tcpdump输出到你的问题,你可以仔细看看。 –