BashでTCP/UDP通信を行う
Pocket

時折、ポートなどの疎通確認のため、相手先のポートがちゃんと開いているかを確認したい時がある。
そんな時は、基本的にポートの疎通確認用のコマンドを利用するのだが、地味にBashからでも疎通確認を行うことができる。

exec 3<> /dev/tcp/相手先ホスト名/ポート番号 # TCP通信の場合
exec 3<> /dev/udp/相手先ホスト名/ポート番号 # UDP通信の場合
Sponsored Links

準備ができたら、以下のコマンドで対象のポートに通信を行える。

echo -e "メッセージ" >&3
cat <&3
root@BS-PHY-PROX-01:~# exec 3<> /dev/tcp/orebibou.com/80
root@BS-PHY-PROX-01:~# echo -e "GET $2 HTTP/1.0\n\n" >&3
root@BS-PHY-PROX-01:~# cat <&3
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>

 

以上。
なお、もし”テスト用にポートを開きたい”といった場合は、ncコマンドを利用すると良いだろう。

 

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。