主要サービスポートのみ指定可(22/25/80/443/3306/3389 等)。それ以外と内部・予約IPは不可です(無差別スキャンの踏み台防止のため)。TCPポートのみ対応。
プリセット:
how to read — 結果の読み方
各ポートについて、当サーバーから対象へTCP接続を試み、状態と応答時間を表示します。
- open 開いている
- そのポートでサービスが待ち受けている状態。接続が成立しました。
- closed 閉じている
- 対象まで届いたが、そのポートは閉じている(拒否=RST応答)。ホストは生きているがサービスが無い状態です。
- filtered / timeout 遮断
- 応答が返らずタイムアウト。ファイアウォールで遮断(ドロップ)されているか、ホスト自体が応答しない場合です。
- サービス名 / 応答(ms)
- ポート番号の横に代表的なサービス名、状態の横に接続にかかった時間を表示します。
how it works — しくみと「安全なチェッカー」である理由
ポートチェックは、当サーバーから対象ホストの各ポートへTCP接続(3ウェイハンドシェイク)を試み、成立すれば open、拒否されれば closed、無応答なら filtered と判定します。コマンドの ping(ICMP)とは別物で、サービスが実際に待ち受けているかが分かります。
なぜ主要ポートだけ・内部IP不可なのか。 任意のポートや任意のIPを叩けるようにすると、このツールが無差別ポートスキャンの踏み台に悪用されてしまいます。そこで本ツールは、用途の明確な主要サービスポートに限定し、内部・予約IPへの接続を遮断しています。これは機能の制限ではなく、踏み台にされない安全な設計です。自分のサーバーの代表的なポートの開放確認には十分に役立ちます。
troubleshooting — よくある疑問
- open になるはずのポートが open にならない
- ①対象側のファイアウォール/セキュリティグループで当サーバーのIPが弾かれている、②そもそもサービスが起動していない、③別のIPを見ている(DNSが古い・CDN/ロードバランサ経由)などが典型です。対象でサービスが動いているか、許可リストを確認してください。
- 自宅からは見えるのに、ここからは closed/filtered
- そのサービスが送信元IPを制限している可能性が高いです。SSH(22)やDB系を「自分のIPだけ許可」している場合、当サーバー(別IP)からは届きません。これは正しいセキュリティ設定です。
- closed と filtered は何が違う?
- closed は対象まで届いたうえで「そのポートは閉じている」と明示的に拒否された状態(ホストは応答している)。filtered はファイアウォールがパケットを黙って捨てて応答が返らない状態です。filteredの方が「外から存在を隠している」状態と言えます。
- MySQLやRDPなどが open と出た。問題ある?
- 大いに問題があります。データベース(3306/5432/6379/27017/1433)やリモート管理(3389/5900/23)がインターネットに直接開いているのは非常に危険で、総当たり攻撃や既知の脆弱性で乗っ取られます。ファイアウォールで接続元を絞る/VPNやSSHトンネル経由のみにするなど、すぐに公開を止めてください。
- UDPポートはチェックできないの?
- 当ツールはTCP専用です。UDPは接続を確立する手順(ハンドシェイク)が無いため、外部から「開いているか」を正確に判定するのが仕様上むずかしく(応答が無くても開いている場合がある)、誤判定を避けるために非対応としています。UDP(DNSの53やVPNなど)は、対象サーバー側で ss -lun や netstat -an などローカルに確認するのが確実です。
cli — 手元のコマンドでも確認できます
PS> Test-NetConnection example.com -Port 443
$ nc -vz example.com 443 # mac / Linux
$ nc -vz -w3 example.com 22 80 443 # 複数ポート
$ nc -vz example.com 443 # mac / Linux
$ nc -vz -w3 example.com 22 80 443 # 複数ポート
手元から確認すると「自分の回線からの到達性」が、当ツールだと「当サーバー(第三者の位置)からの到達性」が分かります。送信元IP制限の切り分けに使えます。