Linuxで開いているポートの数を見つける方法は?ポートが不足しているかどうかを確認したい。また、OSの制限を確認するにはどうすればよいですか?
最新のLinuxでは、ss(ソケット統計)ユーティリティを使用します。
$ ss -s
Total: 10160 (kernel 10262)
TCP: 10349 (estab 8886, closed 408, orphaned 0, synrecv 0, timewait 393/0), ports 3147
Transport Total IP IPv6
* 10262 - -
RAW 0 0 0
UDP 5 5 0
TCP 9941 9941 0
INET 9946 9946 0
FRAG 0 0 0
netstat -an | grep ESTABLISHED | wc -l
開いているポートの数が表示されます。私の場合は32です。
cat /proc/sys/net/ipv4/ip_local_port_range
次のようなものを返します:
32768 61000
つまり、61000-32768-$ OPENPORTS = AvailablePorts
私の箱では、それ:
61000-32768-32 = 28200の使用可能なポート番号。
他の人が述べたように、netstatは、現在使用されているポートを判別するために使用するツールです。制限については、使用可能なポートの数は16ビットの符号なし整数で、範囲は0〜65535です。アプリケーションがバインドするために使用できるポートは、予約済みの特権/ルートポート(0〜1024)に加えて、一時的なポート範囲でカバーされないものです。
cat /proc/sys/net/ipv4/ip_local_port_range
を実行すると、エフェメラルポートを表示できます。
これを永続的に変更するには、/ etc/sysctl.confファイルに「net.ipv4.ip_local_port_range」を追加/変更するか、sysctl -n net.ipv4.ip_local_port_range="<start_port> <end_port>"
を使用してインタラクティブに行う必要があります。
個人的に私はnmapを好みます。 nmap -P 1-65535 targetを発行すると、すべてのポートの状態を確認できます。ほとんどのディストリビューションでは、パッケージマネージャーからこのパッケージを入手できます。
試す
# lsof -n -i -P
完全を期すために:)
端末で次のコマンドを使用して、すべてのポートを確認します
netstat -lntu
特定のポートのステータスを表示するには、次のコマンドを使用します
netstat -an | grep ':6060'
6060を特定のポート番号に置き換えます。
netstatを使用すると、開いているポートを確認できます。「netstat-」を実行すると、ニーズに最適なポートを確認できます。
'nmap localhost'は、開いているすべてのポートと、それらで実行されているサービスを提供します。
netstat -tulnp
Netstatプログラムの引数を以下に示します。
*
t - Show TCP
*
u - Show UDP
*
l - Show only listening processes (netstat can show both listening and all established connections, i.e. as a client too)
*
n - Do not resolve network IP address names or port numbers
*
p - Show the process name that is listening on the port