ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

疎通確認に関するTips

サーバーにリモートアクセスできるかを確認するためにまず使われるのがpingというコマンドだと思います。 かつてはそれでも問題なかったのですが、最近はpingを許可しないようにファイアーウォールでブロックしていることもあるようです。

例えばWindows Serverはデフォルトの設定でpingによる通信(ICMP)を許可していません。LinuxでもICMPをブロックしている環境がたまにあったりします。

一方で、リモート管理の観点からWindowsの場合リモートデスクトップ用のポートをを、Linuxの場合SSH通信用のポートを許可している場合があります。こんな時に使えるのがnpingというコマンドです。

pingはICMPプロトコルを使って疎通確認を行うことができるコマンドです。実はSolarisのようにpingでポート指定できるようなOSもあるのですが、一般的にはpingコマンドではポートを指定できません。ところがnpingコマンドではIPアドレスとともにポートを指定することができます。使い勝手はpingコマンドとほとんど一緒です。

次のように使いことができます。 オプションはcオプションで試行回数、eオプションでインターフェイス、pオプションでポートを指定できます。 実行のログはvオプションでより詳細に出すことができますし、qオプションを指定すると結果だけを出力できます。

非常に便利なコマンドですね。利用するにはnmapパッケージをyumやaptなどのコマンドでインストールします。

$ sudo nping -c3 192.168.57.102 -p22 --tcp

Starting Nping 0.7.01 ( https://nmap.org/nping ) at 2017-06-03 14:49 UTC
SENT (0.0032s) TCP 192.168.57.101:54361 > 192.168.57.102:22 S ttl=64 id=15854 iplen=40  seq=1589366271 win=1480
RCVD (0.1975s) TCP 192.168.57.102:22 > 192.168.57.101:54361 SA ttl=64 id=0 iplen=44  seq=3687439332 win=29200 <mss 1460>
SENT (1.0040s) TCP 192.168.57.101:54361 > 192.168.57.102:22 S ttl=64 id=15854 iplen=40  seq=1589366271 win=1480
RCVD (1.1980s) TCP 192.168.57.102:22 > 192.168.57.101:54361 SA ttl=64 id=0 iplen=44  seq=3703078323 win=29200 <mss 1460>
SENT (2.0053s) TCP 192.168.57.101:54361 > 192.168.57.102:22 S ttl=64 id=15854 iplen=40  seq=1589366271 win=1480
RCVD (2.1979s) TCP 192.168.57.102:22 > 192.168.57.101:54361 SA ttl=64 id=0 iplen=44  seq=3718724257 win=29200 <mss 1460>

Max rtt: 194.180ms | Min rtt: 192.381ms | Avg rtt: 193.479ms
Raw packets sent: 3 (120B) | Rcvd: 3 (138B) | Lost: 0 (0.00%)
Nping done: 1 IP address pinged in 2.20 seconds