ネットを閲覧するときにポート30000~60000が必要なのはなぜですか

ネットを閲覧するときにポート30000~60000が必要なのはなぜですか

これらの 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 サーバーでもこの現象が発生します。

答え1

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

関連情報