Linuxで開いているポートの数を見つける方法は?


17

Linuxで開いているポートの数を見つける方法は?ポートが不足しているかどうかを確認したい。また、OSの制限をどのように確認しますか?


2
ポートを使い果たすのが怖いので何をしていますか?
MDMarra

回答:


27

最新の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        

9
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の使用可能なポート番号。


-a46は機能しませんでした。助けがありますか?
erotsppa

実行しているディストリビューションは何ですか?(ubuntuサーバー10.04 LTSで動作します)。もちろん、ipv6をインストールしていない場合は、netstat -aを使用してください。
グリズリー

CentOSボックスでテストしましたが、名前解決を停止するために「-n」を使用しないとハングするようです。(netstat -an | grep ESTABLISHED | wc -l)
グリズリー

下の「ss」を見ただけで、それはすごい、それについて知らなかった。ip_local_port_rangeを使用して、Linuxが許可するように構成されているものを判別しますが、それにより、現在使用しているものがはるかにアクセスしやすい形式で表示されます。
グリズリー

8

他の人が述べたように、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>"


1
nit pickingですが、厳密にはipv4の制限ではありません。これはtcp / udpの制限です。そして、それらはipv4から独立して実行されます。(例:ipv6はトランスポート層に対して何もしません)
ジョエルK

ああ、あなたは正しい。回答からIPV4参照を削除しました。
アレックス

1

個人的に私はnmapを好みます。nmap -P 1-65535 targetを発行すると、すべてのポートの状態を確認できます。ほとんどのディストリビューションでは、パッケージマネージャーを介してこのパッケージを利用できる必要があります。



0

netstatを使用すると、開いているポートを確認できます。「netstat-」を実行して、ニーズに最適なポートを確認してください。


1
netstat --inet最も役立ちます。
ポールトムブリン

私が意味- 文字がありません。
jer.salamon

またはマンページを読む
-MDMarra

また、-inet6(両方の短縮形:-4 -6)を含めて、IPv6ソケットとip-agnosticソケットを取得します(後者はデュアルスタックホストのデフォルトです。rfc3493セクション3.7を参照)。
東武


0

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

0

端末で次のコマンドを使用して、すべてのポートを確認します

netstat -lntu

特定のポートのステータスを表示するには、次のコマンドを使用します

netstat -an | grep ':6060'

6060を特定のポート番号に置き換えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.