0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リモートからssh経由でtcpdumpを取得するシェルスクリプト

Last updated at Posted at 2023-12-26

1. はじめに

通信テストなどのために、リモートのサーバーでtcpdumpを取得したい場合があると思います。sshで直接ログインしてtcpdumpを実行すれば取得可能ですが、複数のサーバーで同時に取得したい場合や何度も繰り返してテストしたい場合などにスクリプトから実行できると便利です。ここでは、シェルスクリプトからsshを実行してリモートサーバーでtcpdumpを実行する方法を説明します。また、結果のファイルを取得する方法も説明します。
なお、環境はLinuxを想定しています。
スクリーンショット 2023-12-26 17.13.01.png

2. sshの準備

リモートサーバーにsshでコマンドを発行する際、自動的にコマンドを実行するためにはパスワード入力を避ける必要があります。そのため、以下のリンク等を参考に公開鍵を使用してサーバーAからサーバーBにログインができるように設定してください。

3. sudoの準備

tcpdumpの実行にはコマンドをsudoで実行することが必要となります。sudo実行の際にもパスワード入力が発生することを避けるため、以下のリンク等を参考にパスワード入力無しでsudoが実行できるように設定してください。

4. シェルスクリプト作成

tcpdumpを実行するためには、以下のコマンドを使用します。

$ ssh ユーザー名@サーバーBのアドレス -i 秘密鍵 sudo tcpdump -i インターフェース名 -w 出力先ファイル名 &

*)tcpdumpのオプションについては適宜必要なものを指定してください。


tcpdumpの停止には以下のコマンドを使用します。

$ ssh ユーザー名@サーバーBのアドレス -i 秘密鍵 sudo pkill -x tcpdump

*)サーバーBで実行されているtcpdumpは全てkillされるのでご注意ください。


結果ファイルの転送にはscpを使用します。

$ scp -i 秘密鍵 ユーザー名@サーバーBのアドレス:出力先ファイル ./

上記のコマンドをまとめると、tcpdumpをリモートサーバーで実行して結果ファイルを取得するスクリプトが作成できます。

スクリプト例
192.168.1.211のネットワークインターフェースens33で10秒間tcpdumpを実行し、結果ファイルtest.pcapをカレントディレクトリにコピーするスクリプトです。

#!/bin/bash

ssh -i .ssh/id_rsa test@192.168.1.211 sudo tcpdump -i ens33 -w /tmp/test.pcap &

sleep 10

ssh -i .ssh/id_rsa test@192.168.1.211 sudo pkill -x tcpdump

scp -i .ssh/id_rsa test@192.168.1.211:/tmp/test.pcap ./

実行結果
$ ./remotetcpdump.sh
tcpdump: listening on ens33, link-type EN10MB (Ethernet), snapshot length 262144 bytes
37 packets captured
70 packets received by filter
0 packets dropped by kernel
test.pcap                                     100% 9562     3.7MB/s   00:00
$

結果ファイルtest.pcapのコピーもできています。
$ ls -ltr
total 223164
〜省略〜
-rwxrw-r--  1 test    test          223 Dec 26 08:47 remotetcpdump.sh
-rw-r--r--  1 test    test         9562 Dec 26 08:49 test.pcap
$
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?