我们收到由防火墙路由的请求,数据包具有正确的 IP 和端口,但未被我们的应用程序接收。
以下是来自 iptables 的日志:
Sep 18 15:53:42 frtrans01 kernel: INPUT TCP IN=eth0 OUT= MAC=00:0c:29:13:2a:dc:58:49:3b:00:5c:11:08:00 SRC=109.1.186.112 DST=x.x.x.x LEN=52 TOS=0x00 PREC=0x00 TTL=117 ID=1616 DF PROTO=TCP SPT=3766 DPT=6322 WINDOW=65535 RES=0x00 SYN URGP=0
读取正常的数据包如下:
Oct 6 15:41:50 frtrans01 kernel: INPUT TCP IN=eth0 OUT= MAC=00:0c:29:13:2a:dc:58:49:3b:00:5c:11:08:00 SRC=170.118.98.33 DST=x.x.x.x LEN=60 TOS=0x10 PREC=0x00 TTL=62 ID=45368 DF PROTO=TCP SPT=41638 DPT=6322 WINDOW=5840 RES=0x00 SYN URGP=0
应用程序监听的 lsof 结果如下:
[root@frtrans01 ~]# lsof |grep LISTEN
...
java 2301 root 63u IPv6 3556600 TCP *:emp-server2 (LISTEN)
端口 emp-server2 是端口 6322。
收到的数据包有什么问题?
答案1
看起来您的守护进程只监听 IPv6,但您的数据包却通过 IPv4 传入。这可能是一个问题。
对吗?还是我忽略了什么?如果我错了,请使用 wireshark 或 tcpdump 查看数据包是否确实到达。