人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

tcpdumpでネットワーク接続を開始したときに、キャプチャする方法

字数が足らなかったため、全文は、

http://anond.hatelabo.jp/20091127110148

に掲載しました。


OSは、Ubuntu 8.04。シェルは、bashをそれぞれ使用しております。

下記、(1)、(2)の手順で、ネットワーク接続を開始したら、
tcpdumpでパケットをキャプチャするような設定を行いました。

OSを再起動さてみたところ、正常に取得を開始してくれません。

そこで
下記、(3)、(4)の手順で試してみると、それぞれ不可思議な挙動を発見しました。

原因が分からず苦慮しております。ご教示いただけないでしょうか。
何卒、よろしくお願い致します。


●質問者: domodomodomo
●カテゴリ:コンピュータ
✍キーワード:bash OS tcpdump Ubuntu キャプチャ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● makeworld
●100ポイント ベストアンサー

domodomodomoさんが不可思議に感じた挙動は、ubuntu 8.04の/sbin/udevadmのバグが原因のようです。

(OS起動時の、/etc/init.d/udevを起動中に/etc/init.d/networkingを中途半端に起動しているので、その後、本来の/etc/init.d/networkingの起動が失敗しています)

下記の2点を修正することにより、キャプチャできると思います。

1. /etc/capture.shを終了させる。

ダイアリーのトラックバックでも指摘されている通り、/etc/network/interfacesのupで起動したコマンドが終了しないのは良くないので、下記のようにtcpdumpの最後に「&」を付けてバックグラウンド実行します。

# というか、2の対処後は、/etc/capture.shが終了しないと、OSが起動中に停止します... Ctl+Alt+DELで続行できますが。

#!/bin/sh
tcpdump -i eth0 -s 1500 -C 10 -w /var/log/tcpdump/tcpdump`date '+%Y%m%d%H%M%S'`.log &

2. udev起動後に、一旦networkingを停止する。

udevadmが何故かeth0をupしてしまうので、networkingを一旦停止します。

#!/bin/sh
/etc/init.d/networking stop

上記の/etc/init.d/udevfixを作成して、下記のコマンドを実行します。

$ sudo chmod +x /etc/init.d/udevfix
$ sudo ln -s /etc/init.d/udevfix /etc/rcS.d/S39udevfix

これで、再起動すれば、キャプチャが開始していると思います。

◎質問者からの返答

前回に失礼があったにも関わらず、ご回答いただき、本当にありがとうございます。

無事、起動すると、自動的にキャプチャしてくれるようになりました。

「バグの存在」や「upで起動したコマンドが終了する必要性」への指摘など回答の質の高さ、

また、そのわかりやすさに思わず息を飲んでしまいました。

トラックバックでご指摘いただいた方にも、あわせて御礼申し上げたく存じます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ