Linuxシステムでlsofコマンドを使用するチュートリアル
lsofはシステム管理/安全なユーバーツールです。私は多くの場合、システムからネットワーク接続に関する情報を得るために使用していますが、それはこの強力で知られていないアプリケーションの最初のステップにすぎません。このツールをlsofと呼ぶのは、「オープンファイル(lists openfiles)のリスト」を指すためです。Unixではすべて(ネットワークソケットインタフェースを含む)がファイルであることを忘れないでください。
興味深いことに、lsofも最も多くのスイッチを持つLinux/Unixコマンドの一つです。多くのスイッチがあり、-と+接頭辞の使用をサポートするオプションがたくさんあります。
コードのコピー[-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+|-M] [-o [o]]
[-p s] [+|-r [t]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]ご覧のようにlsofには驚くべき選択肢の数があります。システム上のデバイスの情報を取得するには、指定したユーザーが指定した場所で何を触っているのか、プロセスがどのファイルやネットワーク接続を使用しているのかを知ることができます。
キーオプション
lsofがどのように働くかについての重要なことを理解することが重要です。最も重要なのは、オプションを渡すと、デフォルトの動作は結果のOR演算です。したがって、-iを使用してポートリストを引き出し、-pを使用してプロセスリストを引き出している場合は、デフォルトでは両方の結果が得られます。
次のことを覚えておく必要があります。 デフォルト:オプションはありません。lsofはアクティブなプロセスのすべてのオープンファイルをリストします。組合せ:-abcなどのオプションを組み合わせることができますが、パラメータが必要なオプションに注意してください。
-a:結果はORではなくAND演算を行います。ネットワーク情報の取得
-iを使用してすべての接続を表示# lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEsshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED)
-i 6を使用してIPv 6トラフィックのみを取得TCP接続のみを表示(同じUDP接続が得られる)
また、-i後に対応するプロトコルを提供することで、TCPまたはUDP接続情報のみを表示することもできます。COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 7703 root 3u IPv6 6499 TCP *:ssh (LISTEN)-i:portを使用して、指定したポートに関するネットワーク情報を表示します。
あるいは、ポートで検索することもできます。これは、別のアプリケーションが指定したポートにバインドされるのを阻止するものを見つけるのに素晴らしいです。COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 7703 root 3u IPv6 6499 TCP *:ssh (LISTEN)@hostを使用して、指定したホストへの接続を表示します。
これは、ネットワークまたはインターネット上の指定したホストへの接続がオープンに接続されているかどうかを確認するのに役立ちます。
コードのコピー # lsof [email protected] sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->172.16.12.5:49901 (ESTABLISHED)リスニングポートの特定
接続待ちのポートを見つけます。このタスクを完了するにはgrep「LISTEN」を使用することもできます。
コードのコピーコードのコピー
# lsof -i -sTCP:ESTABLISHED-u userを使用して、指定したユーザー以外のすべてのユーザーが行ったことを表示します。
コードのコピー