我想测试一些网络性能,我需要使用 tcp 客户端连接到同一主机上的 tcp 服务器程序,因此我使用了 localhost(127.0.0.1),但是,当发送 TCP SYN 时,它会收到 RESET
12:04:27.550292 IP localhost.55047 > localhost.54000: Flags [S], seq 1451460422, win 43690, options [mss 65495,sackOK,TS val 2409691925 ecr 0,nop,wscale 7], length 0
12:04:27.550319 IP localhost.54000 > localhost.55047: Flags [R.], seq 0, ack 1451460423, win 0, length 0
我认为问题出在 iptables 规则上。
从iptables-restore
输入,我有
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i em1 -p tcp -m tcp --dport 54000 -j ACCEPT
-A INPUT -i em1 -p tcp -m tcp --dport 51000 -j ACCEPT
-A INPUT -i em1 -p tcp -m tcp --dport 30000 -j ACCEPT
-A INPUT -i em1 -p tcp -m tcp --dport 54001 -j ACCEPT
-A INPUT -i em1 -p tcp -m tcp --dport 30001 -j ACCEPT
-A INPUT -i em1 -p udp -m udp --dport 54000 -j ACCEPT
-A INPUT -i em1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i em1 -p udp -m udp --dport 5000 -j ACCEPT
-A INPUT -j INPUT_direct
-A INPUT -j INPUT_ZONES
相关行是
-A INPUT -i lo -j ACCEPT
来自iptables --list
,我有
in INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:54000
ACCEPT tcp -- anywhere anywhere tcp dpt:51000
ACCEPT tcp -- anywhere anywhere tcp dpt:30000
ACCEPT tcp -- anywhere anywhere tcp dpt:54001
ACCEPT tcp -- anywhere anywhere tcp dpt:pago-services1
ACCEPT udp -- anywhere anywhere udp dpt:54000
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT udp -- anywhere anywhere udp dpt:commplex-main
INPUT_direct all -- anywhere anywhere
没有涉及网络接口(顺便说一句,对于这一行:接受所有 - 任何地方,这是什么意思?它接受所有协议和所有端口?)
那么我可以修改什么来允许任何与环回接口相关的流量lo
?谢谢!
答案1
关于你的第二个问题,尝试这个命令:
iptables -L -v
-L 相当于 --list,-v 为您提供更详细的输出并显示与规则相关的接口。
附言:我知道这是一篇旧帖子,但这个答案在两天前对我有帮助,所以......