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

Mik*_*ika 6 internet port

为什么这些 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
Run Code Online (Sandbox Code Playgroud)

有了iptables -F你可以的情况下,清除iptables规则试图这些规则后,您不能在网上浏览。

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

Ber*_*ITS 9

Web 浏览器需要为每个 HTTP 请求提供一个端口。这些端口(很少)由浏览器选择,而是由内核选择。内核不查看 ipfilter 规则,它只尝试使用空闲端口。并且大部分时间使用 30000 到 60000 之间的端口。

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

cat /proc/sys/net/ipv4/ip_local_port_range
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式更改这些值:

echo 1234 5678 >/proc/sys/net/ipv4/ip_local_port_range   # for immediate effect
Run Code Online (Sandbox Code Playgroud)

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

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

echo 32768 61000 >/proc/sys/net/ipv4/ip_local_port_range
Run Code Online (Sandbox Code Playgroud)

  • (万一有人把他们搞砸了,好的默认值是 [**`32768 61000`**](http://lkml.indiana.edu/hypermail/linux/kernel/0706.1/0101.html)) (7认同)