You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TCP连接因源接口不同无法到达进程的问题排查求助

TCP连接因源接口不同无法到达进程的问题排查求助

我遇到了一个奇怪的问题:TCP连接能否到达监听套接字,居然取决于数据包的源接口。

背景情况

我正在给一台主机(AGENTIP)配置Zabbix Agent,需要Zabbix服务器(SERVERIP)通过TCP连接到AGENTIP的10050端口。

  • 在AGENTIP本机上执行telnet AGENTIP 10050,连接能正常工作,通过strace可以看到Zabbix Agent进程确实接收到了连接请求。
  • 但从Zabbix服务器执行同样的telnet AGENTIP 10050命令时,连接请求根本没到达zabbix-agent2进程,strace完全没相关日志。

抓包对比(tcpdump结果)

我用tcpdump抓包后发现,两种场景的数据包几乎一致,唯一明显的区别就是数据包到达的接口:

正常工作(AGENTIP本机连接自己的10050端口)

12:47:09.368585 lo    In  IP AGENTIP.36870  > AGENTIP.10050: Flags [S], seq 2114873310, win 65495, options [mss 65495,sackOK,TS val 973877732  ecr 0,nop,wscale 7], length 0

对应的strace日志显示进程接受了连接:

[pid 2456233] accept4(9, {sa_family=AF_INET, sin_port=htons(36870), sin_addr=inet_addr("AGENTIP")}, [112 => 16], SOCK_CLOEXEC|SOCK_NONBLOCK) = 11

无法工作(SERVERIP连接AGENTIP的10050端口)

12:48:05.298526 eth0  In  IP SERVERIP.41580 > AGENTIP.10050: Flags [S], seq 2687217389, win 64240, options [mss 1460 ,sackOK,TS val 2072822359 ecr 0,nop,wscale 7], length 0

对应的strace日志完全没有接受连接的记录。

已尝试的排查步骤

  • 已经关闭了AGENTIP上的防火墙(ufw)
  • 尝试让Zabbix Agent监听0.0.0.0和AGENTIP本身两种模式,问题依旧存在

我不太清楚在tcpdump显示数据包到达,到进程通过strace显示接受连接之间,还有什么环节会出问题?有没有我漏掉的排查点?


备注:内容来源于stack exchange,提问作者Daan Meijer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:48:02