netcatコマンドというのを使います。コマンド自体は、「nc」です。
# nc
<使うシチュエーション>
・複数台のサーバーでアプリケーションを構成する場合、
それらの間の、通信の確認だけをまず行いたいという時があると思います。
・プログラムソースレベルの問題なのか、
ネットワーク関連の問題なのかを切り分けるのにも使えます。
<ncコマンドが入っていない時>
# which nc で、インストール状態を確認して、
入っていないようでしたら
# sudo yum install nc nmap
または
# sudo apt-get install netcat
<コマンドの文法>
# nc -v 対象ホスト(IPアドレス等) ポート番号
「-v」により、通信の詳細を表示させます
-----------------------------------------------------------------
<利用例>
■SMTPサーバーとの疎通確認
(例)
SMTPサーバー: mail.sample.com
ポート番号: 25
↓
# nc -v mail.sample.com 25
出力
Connection to mail.sample.com 25 port [tcp/smtp] succeeded!
220 mail.sample.com ESMTP
接続はOKなようです。
Ctrl+C を打つと、もとに戻ります。
逆に、何もレスポンスが帰ってこないようでしたら、
ネットワーク的につながっていないということです。
確認ポイント:
- 相手サーバー名は正しいですか
- ポート番号は正しいですか
- ファイアーウォールなどで閉じていませんか(こっち側)
- ファイアーウォールなどで閉じていませんか(相手側)
- 相手側サーバーから、接続許可は出ていますか
- 相手側サーバーは、動いていますか
■DBサーバーとの疎通確認
(例)
DBサーバー: sql.sample.com
ポート番号: 3306
↓
# nc -v sql.sample.com 3306
出力
Connection to sql.sample.com 3306 port [tcp/ms-sql-s] succeeded!
接続はOKなようです。
何もレスポンスが帰ってこない場合については、前述のとおりです。
Ctrl+C を打つと、もとに戻ります。
■Redis /Elasticache サーバーとの疎通確認
(例)
DBサーバー: hoge.cache.amazonaws.com
ポート番号: 6379
↓
# nc -v hoge.cache.amazonaws.com 6379
出力
Connection to hoge.cache.amazonaws.com 6379 port [tcp/*] succeeded!
入力
set hoge 123 など
接続はOKなようです。
何もレスポンスが帰ってこない場合については、前述のとおりです。
Ctrl+C を打つと、もとに戻ります。
.