iptables阻止INPUT端口80

时间:2017-09-24 07:35:29

标签: iptables

我的问题是一般的理解,而不是解决我的问题。

我设法运行iptables -A OUTPUT -p tcp --dport 80 -j REJECT并阻止了http请求。当我跑curl http://b.scorecardresearch.com/beacon.js时,我已经curl: (7) Failed to connect to b.scorecardresearch.com port 80: Connection refused

然后我删除了OUTPUT规则并创建了一个INPUT规则iptables -A INPUT -p tcp --dport 80 -j REJECT。然后,我可以毫无问题地访问curl http://b.scorecardresearch.com/beacon.js

我理解为什么传出请求没有被阻止但是当我发出http请求时,响应是否在同一端口(80)上返回并且应该被端口80的INPUT REJECT阻止?

1 个答案:

答案 0 :(得分:1)

创建TCP连接时,客户端端口是随机的,与目标端口不同(此处为80)。您可以在终端中运行:netstat -pant来查看:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 192.168.1.41:39878      201.15.39.91:80        ESTABLISHED 2270/firefox

这就是为什么阻止目标端口80的传入数据包不会禁止您访问HTTP服务器。但是,如果您有HTTP服务器,则在端口80上将无法再访问它。