読者です 読者をやめる 読者になる 読者になる

エンジニア劣等感の克服記

エンジニアでありながら、エンジニアに劣等感を感じている。それを克服していきたい。

tcpdumpを触ってみた

概要:tcpdumpを触ってみた

tcpdumpを使うとパケットをみれる。 どんな通信が行われているかみれる。

以下をみて少しだけいじった。

なぜtcpdump?動機は?

通信プロトコルの理論とかの話は聞いたことあるし、大学の時に本当に単純なhttpサーバーの実装とかをやった(確か)。けれどなんとなく腑に落ちないというか、納得感がない状態が今。

だからパケットみてどんなリクエスト来てどんなレスポンスが来ているのかとか、見たいし、それを理解できたらいいなと。あとそういうことできたらトラブル、例えばなぜmysqlに繋がらない?、なぜ期待通りのレスポンスが返らない?(リクエストが問題なのか処理が問題なのか)とか切り分けしやすそうだし。

ようするにとりあえず基本的で末長く使えそうだからやりたいという感じ。

具体的に何をやったか

tcpdumpのインストール

インストール必要なのかと思ったら、macにデフォルトで入っていた。

$ which tcpdump
/usr/sbin/tcpdump

googleとの80番portのパケットを見る

sudoでないと実行できないのが注意点

 sudo tcpdump -s0 -A port 80 and host www.google.co.jp

localhostの3000番portとのパケットを見る

sudo tcpdump -i lo0 -s0 -A port 3000

以下のように dst とかつけると、こっちから向こうへのパケット(送信)のみ表示、とかできる。

sudo tcpdump dst  -i lo0 -s0 -A port 3000

向こうからこっちへのパケット(受診)のみは src

感想

flashで作られているサイトとか見ているときにパケット監視して、裏でどんな通信されているのか、とかを見てみてい(みれるようになりたい)。

ngrepとの比較を行いたい。

コマンドいじるのに10分もかかっていないが記事を書くのは20分くらいかかっている?大変。