为什么浏览网络时需要30000到60000端口


6

为什么这些iptables规则阻止我浏览网络?

iptables -A INPUT -i eth0 -p tcp --dport 30000:60000 -m state --state NEW,ESTABLISHED -j DROP
iptables -A OUTPUT -o eth0 -p tcp --sport 30000:60000 -m state --state ESTABLISHED -j DROP

iptables -F 你可以清除iptables规则,以防你在尝试这些规则后无法浏览网页。

我正在使用Ubuntu 12.04,但我也在Debian服务器上看到了这个。


请注意:这些会阻止大多数TCP / IP客户端连接到Internet上的任何位置。 Web浏览器没有什么特别之处,它们被融入TCP / IP。您刚刚注意到因为您使用的是浏览器,而不是说IRC。
Rich Homolka

我实际上在尝试为我的服务器创建iptables规则时注意到这一点,以便我只允许连接到真正需要的端口。我很快注意到我需要打开30000到60000之间的端口,或者Oauth(使用Omniauth)根本不能工作。自从应用iptables规则后,我在日志中看到了随机错误。现在我知道当Oauth尝试使用封闭端口60000到61000时出现了这些错误。
Mika

Answers:


9

Web浏览器需要每个HTTP请求的端口。这些端口(很少)由浏览器选择,但由内核选择。内核不查看ipfilter规则,它只尝试使用自由端口。大多数情况下,使用30000到60000之间的端口。

要查看内核尝试使用的端口范围:

cat /proc/sys/net/ipv4/ip_local_port_range

您可以使用以下命令更改这些值

echo 1234 5678 >/proc/sys/net/ipv4/ip_local_port_range   # for immediate effect

或编辑 /etc/sysctl.conf 文件以在重新启动后保持设置。

编辑:正如@TomWijsman建议的那样,默认值为:

echo 32768 61000 >/proc/sys/net/ipv4/ip_local_port_range

7
(如果有人混淆他们尝试,好的默认值是 32768 61000
Tom Wijsman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.