2013-01-08 07:34:55 +0000 2013-01-08 07:34:55 +0000
202
202
Advertisement

Linux でオープンポートのリストを取得する

Advertisement

アプリケーションで使用するためのすべてのフリーオープンポートをリストアップする Linux コマンドが必要です

lsof -i TCP| fgrep LISTEN

リストアップされたポートが必ずしもフリーであるとは限りませんので、役に立っているとは思えません。どのように私は使用中でない自由に開いている港をリストするか。

Advertisement
Advertisement

回答 (7)

268
268
268
2013-01-08 11:51:03 +0000
netstat -lntu

は @askmish が回答したように、システム上で tcp と udp ポート上で実行されているサービスのリストを表示します。サービス名を解決しようとしないでください - -l = tcp ポート - -n = udp ポート - -t = プログラム名

どのポートが空いているかを知りたいだけで、どのプログラムが実行されているかを知りたいだけなので、'p’ パラメータは必要ありません。

これはシステム上のどのポートが使い切られたかを表示するだけです。例えば、あなたがNATの後ろにいて、外部からアクセスできるようにしたいサービスがある場合などです。また、ファイアウォールが外部からの訪問者のためにポートをブロックしている場合もあります。そのような場合には、nmapが救助に来る。警告:nmapはあなたの制御下にあるネットワーク上でのみ使用してください。また、nmapのpingをブロックすることができますファイアウォールのルールがありますが、あなたは正しい結果を得るためにオプションで周りをいじくり回す必要があります。

93
93
93
2016-06-08 20:19:05 +0000

net-toolsは非推奨です](https://unix.stackexchange.com/questions/146190/commands-not-found-netstat-nmap-on-centos-7)なので、`ss`がない場合は、`netstat`の代わりに[`netstat`コマンド](http://man7.org/linux/man-pages/man8/ss.8.html)を使用することができます:

ss -lntu

は、組み込みのヘルプによると、

netstat -lntu

と同じように動作するはずです: -n, --numeric don't resolve service names -l, --listening display listening sockets -t, --tcp display only TCP sockets -u, --udp display only UDP sockets

21
Advertisement
21
21
2013-01-08 07:45:50 +0000
Advertisement

このコマンドは、開いているネットワークポートとそれを所有しているプロセスをリストアップします:

netstat -lnptu

あなたの正確な仕様に合わせて結果をフィルタリングすることができます。

5
5
5
2014-11-03 04:33:36 +0000

レスポンストラフィックを含む全オープンポート:

netstat -tuwanp 2>/dev/null | awk '{print $4}' | sort | uniq -c | wc -l
1
Advertisement
1
1
2019-01-16 23:21:34 +0000
Advertisement

元の質問に対する私の見解は、彼は現在サービスに接続されているポートではなく、未使用のポートについて質問しているのではないかということでした。この場合、使用されているポートをリストアップして、他のポートは未使用であると仮定する以外に、それらをリストアップする具体的な方法はありません。

0
0
0
2019-01-16 19:51:05 +0000
sudo netstat -plnt | grep -E '(0.0.0.0:|:::|127.0.0.1:|::1:)' | awk 'NR>2{print $7}' | sort -n | uniq

を試してみて、これを見てください。

0
Advertisement
0
0
2016-04-04 06:29:27 +0000
Advertisement

次のコマンドは、Ubuntu / Debianと同じ形式で出力する任意のUnixで動作します - ローカルアドレスが列4にあり、出力は上部に2行のヘッダーが含まれています。これらの番号のいずれかが異なる場合は、以下のawkコマンドを微調整します。

あなたがIPv4のみをしたい場合:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '0.0.0.0:' | sed 's/.*://' | sort -n | uniq

あなたがIPv6のみをしたい場合:

netstat -lnt | awk 'NR>2{print $4}' | grep -E ':::' | sed 's/.*://' | sort -n | uniq

あなたが一緒に両方をしたい場合:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq

コマンドは、すべてのインターフェイスで聞いているポート番号のリストを出力します。localhost インターフェイスで聞いているすべての港をリストしたい場合は、次のようなものを使用して下さい:

netstat -lnt | awk 'NR>2{print $4}' | grep -E '(127.0.0.1:|::1:)' | sed 's/.*://' | sort -n | uniq
Advertisement

関連する質問

6
10
5
37
9
Advertisement