netstat コマンド

ネットワークの状況を調べるコマンド。

LISTENしているポートは、netstat -an を実行して、出力の上の方の LISTEN と書いてあるレコードが該当する。そのレコードの Local Address の欄が 127.0.0.1 と書かれていると、そのポートは localhost からしか接続できない。 0.0.0.0 と書かれていると、 (iptablesなどでブロックされていなければ)外部からでもアクセスできる。

ポートをLISTENしているプロセスを調べるには

sudo netstat -anp | grep LISTEN

PIDの欄がプロセスIDである。一般ユーザ権限だとプロセスIDが表示されないものがあるので、知りたいプロセスが表示されていなかったら、root権限になるとよい。

特定のポートが開いているかどうかを確認するには

シェルスクリプトの中で簡単に確認する例

if nc -z -w 1 localhost $port; then
    # 開いている場合
else
    # 閉じている場合
fi

nc のオプション

詳細不明のSSHトンネルと思しきLISTENしているポートを強制的に閉じるには

例えばポート番号9999を強制的異閉じたい場合は

sudo netstat -anp | grep LISTEN | grep 9999

とでもしてプロセスIDを調べて、殺しても問題なさそうであれば、

killl <プロセスID>

でkillしてしまえばよい。killの際に動作しているユーザ権限が違っていれば、root権限が必要。

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。