株式会社レップワン運営サイト
株式会社レップワン
ネットワークインフラに特化したIT技術者の常駐サービスを提供しています。企業情報システムのノンストップ運用を支えています。
Replog!株式会社レップワン代表 福田兼児のブログです
株式会社レップワン代表 福田兼児のブログです。
Replog!株式会社株式会社レップワン マネージャーによるブログです
株式会社レップワン マネージャーによる公式ブログです。
Oneway Good Communication from Osaka Japan.
大阪近郊のおすすめ情報を英語で発信しています。
カテゴリー/Replog!byStaff

最新エントリー/Replog!byStaff

バックナンバー/Replog!byStaff

Feb
28
2009

"netstat" リッスンしているプロセスを調べる @LCD -Linux Command Dictionary- 【山澤】

どうも、山澤です。

今日も技術ネタ、LCDシリーズです。

今回は netstat というネットワーク系コマンドを使って、どのプロセスがどのポートでリッスン(クライアントからの接続を待っている状態)しているかを調べるやり方について。

例えば不要なポートがリッスンされていないか?とか、Webサーバを公開したい場合に Apache のプロセスが 80 とか 443 のポートでリッスンしているか?とかゆー事を調べたりする時に利用します。

**************************************************

■1.リッスンしているプロセスを調べる

使用するオプションは3コ。

-a 接続待ち状態にあるソケットも、接続待ち状態にないソケットも表示する。
-n ホスト・ポート・ユーザーなどの名前を解決せずに、数字のアドレスで表示する。
-p 各ソケットが属しているプログラムの PID と名前が表示される。

その出力結果を "LISTEN " で絞る。LISTEN だと LISTENING と書かれた行まで表示されるので LISTEN の後にスペースも含めます。

# netstat -anp | grep "LISTEN "
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      4190/portmap       
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      4534/cupsd         
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      4559/sendmail: acce
tcp        0      0 0.0.0.0:1019                0.0.0.0:*                   LISTEN      4229/rpc.statd     
tcp        0      0 :::22                       :::*                        LISTEN      4501/sshd

こんな感じ。どのプロセスがそのポートでリッスンしてるかが分かります。

結構色々と動いています。ssh 以外は要らないので止めちゃいます!と言いたいんですけど、それはまた次回。


■2.名前解決について

-n はポートとかの名前解決をせずに数字で表示するオプションなんだけど、じゃあ外すとどうかるか?

# netstat -ap | grep "LISTEN "
tcp        0      0 *:sunrpc                    *:*                         LISTEN      4190/portmap       
tcp        0      0 BlackSun:ipp                *:*                         LISTEN      4534/cupsd         
tcp        0      0 BlackSun:smtp               *:*                         LISTEN      4559/sendmail: acce
tcp        0      0 *:1019                      *:*                         LISTEN      4229/rpc.statd     
tcp        0      0 *:ssh                       *:*                         LISTEN      4501/sshd

こんな感じになる。アンダーラインの部分ね。

ちなみに BlackSun ってのはこの検証機のホスト名。子供の頃によく見てた仮面ライダーの名前です。次に作る時は ShadowMoon かな。

まぁ、それはどうでもいいんだけど。

で、例えば 22 のポートは ssh っていう風に置き換わってるんだけど、1019 はそのままになってる。なんでかって言うと ポートの名前解決のために見に行ってる /etc/services っていうファイルに 1019 ポートの情報がないから。

# cat /etc/services | grep 1019/ (←出力なし)
# cat /etc/services | grep 22/
ssh             22/tcp                          # SSH Remote Login Protocol
ssh             22/udp                          # SSH Remote Login Protocol
 :
 :

なのでこのファイルに、

# cp -ip /etc/services /etc/services.20090228
# echo "rpc.statd 1019/tcp" >> /etc/services


って書いてやると、

# netstat -ap | grep "LISTEN "
tcp        0      0 *:sunrpc                    *:*                         LISTEN      4190/portmap       
tcp        0      0 BlackSun:ipp                *:*                         LISTEN      4534/cupsd         
tcp        0      0 BlackSun:smtp               *:*                         LISTEN      4559/sendmail: acce
tcp        0      0 *:rpc.statd                 *:*                         LISTEN      4229/rpc.statd     
tcp        0      0 *:ssh                       *:*                         LISTEN      4501/sshd  

ちゃんと名前解決してくれます。

rpc.statd っていうプロセスが常に 1019 ポートを使うのかよく分からないので、とりあえず元に戻しときます。

# rm -f /etc/services
# mv /etc/services.20090228 /etc/services
# netstat -ap | grep "LISTEN "

tcp        0      0 *:sunrpc                    *:*                         LISTEN      4190/portmap       
tcp        0      0 BlackSun:ipp                *:*                         LISTEN      4534/cupsd         
tcp        0      0 BlackSun:smtp               *:*                         LISTEN      4559/sendmail: acce
tcp        0      0 *:1019                      *:*                         LISTEN      4229/rpc.statd     
tcp        0      0 *:ssh                       *:*                         LISTEN      4501/sshd

ちなみにアドレスの方は /etc/hosts を見てるはず。


**************************************************

今日で2月も終わりかぁ。LPICレベル2の勉強もしないとなぁ。。。
2009年2月28日 コメント(2)トラックバック(0)
このエントリーのトラックバックURL

▼この記事に対するコメント

This weblog seems to get a great deal of visitors. How do you advertise it? It offers a nice individual spin on things. I guess having something useful or substantial to post about is the most important thing.

|投稿者:Versie Deckert|2010年12月13日 17:28|

Just to let you know your site looks really weird in Opera on my Linux .

|投稿者:Eric Grable|2011年1月19日 20:38|


コメント投稿
は必須項目です。(メールアドレスは公開されません)
名前
メールアドレス
URL
本文
レップワンスタッフブログ RSS登録