Linuxネットワークコマンド
Linux LPIC編。(第5章 ネットワーク)
ネットワークの章はネットワークデバイス、あたりから入る。
1番目のイーサネットインターフェース名はeth0で、2番目はeth1とか。
カーネルが認識しているネットワークデバイスはlspci、dmesgで確認できる、とか。
まぁこの辺りは軽く流すとして・・・
では、Linuxで利用するネットワーク系のコマンドから。といってもtcpdumpやnc以外は
基本的なコマンドでレベル1にも登場しているので、ここで詳細を書くまでもない気も
するが、復習もかねて。
ちなみに-nオプションで名前解決を行わない、というのはそれぞれのコマンドで共通
しているので、個別には書かないことにする。
ifconfgコマンドはネットワークインターフェースを設定したり確認したりする。
それにしてもifconfigでインターフェースを設定しても再起動すると元に戻ってしまうので、
結局は設定ファイルに記述することになる。
ifconfig eth0 up/downなんかはNICフェールオーバーのテスト時に利用できる。
それからネットワークインターフェースのエイリアス名を設定するときに、「eth0:1」
みたいに数値で指定することが多いと思われるが、文字列でもいいそうだ。
# ifconfig eth0:name1 192.168.55.20 netmask 255.255.255.128 up
arpコマンドはarpテーブルを操作する。
オプション
-a 指定したホストまたはすべてのエントリを表示
-f ホスト名MACアドレスの対応をファイルから詠み込む(デフォルトは/etc/ethers)
-d 指定したホストのエントリを削除
-i ネットワークインターフェースを指定
-s ホスト名とMACアドレスの対応を指定して追加
ネットワーク接続の監視にはarpwatchというツールが利用できるそうだ。
traceroute , tracepathは指定したホストへのパケット経路を表示する。
pingでもオプションの指定によってはできるらしい。
tcpdumpコマンドは指定したネットワークインターフェースに流れるパケット情報を
キャプチャする。出力結果の見方に要注意?
書式
tcpdump [オプション] [条件式]
※条件式では、portでポート番号を、protoでプロトコルを指定する。
条件式を省いた場合、ネットワーク上のすべてのパケットをダンプする。
オプション
-i 監視するネットワークインターフェースを指定
-s パケットから取り出すバイト数を指定する
-X 16進数とASCII文字列で表示
-N ホストのドメイン名を表示しない
-l 標準出力をバッファリングする
-t 時刻を表示しない
-v 詳細出力
HTTP通信の様子をキャプチャするなら以下例のように。
ポート番号の代わりにプロトコルを指定してもよい。
# tcpdump -nli eth0 port 80
tcpdumpはもっと沢山のオプションや条件式があり、複雑なフィルタリングに対応可。
manなど見るとガッツリいろいろ書いてあるけど、ここでは省略します。
パケットキャプチャのGUI版として、Wiresharkの名前は覚えておこう。
WiresharkはEtherealの主要な開発者が開発を行っているとのこと。
ほほぅ、時代は何気に移り変わっているのだな・・・
次にnetstatコマンドのポイント。
以下3つのコマンドは同じ働きで、ルーティングテーブルを表示する。
netstat -r
route
ip route show
最後の、”ip route show”は出力の表示がわかりにくいかも。。
netstatオプション
-a すべてのソケットを表示
-c 1秒ごとにリアルタイム表示
-i ネットワークインターフェースの状態を表示
-l 接続待ち状態にあるソケットのみ表示
-n アドレスやポートを数値で表示
-p PIDとプロセスを表示
-r カーネルのルーティングテーブルを表示
ncコマンドはtelnetと同じようにホストのポートに接続できる。また、-vzオプションで
ポートスキャンを実行できる。
指定したホストのポートに接続
# nc [ホスト名/IPアドレス] [ポート番号]
ポートスキャンを実施
# nc -vz [ホスト名/IPアドレス] [スキャンする範囲]
例:1-1000
開いているポートの確認にはlsofコマンドも利用できるが、lsofには別の使い方も。
「lsof -i:ポート番号」で、そのポートが使用しているプロセスを特定できる。
(netstat -apやfuserでも可)
最後に、routeコマンドを使ったルーティングの設定。
(レベル1でもやったけどね)
書式がちょっと、くせ者かも。ネットワークアドレスを指定する際には”-net”とハイフンが
必要で、netmask、gwはいらない。hostも”-host”と、ハイフンがいる。
以下はaddでテーブルに追加しているが、削除ならdel。
例
# route add -net 192.168.100.0 netmask 255.255.255.0 gw 172.16.0.1
オプション
-F カーネルのルーティングテーブルを表示
-C カーネルのルーティングキャッシュを表示
ルーティングテーブルの項目の見方はさすがに省略。。しようと思ったが、気になるところだけ。
宛先のネットマスクを示すGenmaskが、255.255.255.255だったらホスト、0.0.0.0.は
デフォルトゲートウェイを表す。Flagsは経路の状態を表し、Uは経路が有効。!だと無効で、
Hは宛先はホスト、となる。
次回はネットワーク設定ファイル全般について。
出典
Linux教科書LPICレベル2(翔泳社)
Linux記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index