概要
TCPやUDPで接続、待受、ポート確認を行います。軽量で便利ですが、実装差が大きい道具です。
基本構文
nc [オプション] ホスト ポート詳細解説
ncは、netcatとも呼ばれる軽量なソケット操作コマンドです。指定したホストとポートへ接続したり、待ち受けたり、データを標準入出力へ流したりできます。
実務では、ポートが開いているかの確認、手動でHTTPを打って応答を見る、簡易的な待受テストを行う時に役立ちます。
一方で、OpenBSD版、GNU版、traditional版など実装差が大きく、同じオプションが全環境で同じ意味になるとは限りません。
このコマンドを使う場面
ポート疎通確認、手動プロトコル確認、簡易待受テストに使います。
まず安全に試す方法
1. nc -zv 127.0.0.1 22
2. printf "GET / HTTP/1.0rnrn" | nc example.com 80
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
-zvで開閉確認の基本を覚えます。
実行結果サンプル
-
printf "GET / HTTP/1.0rnHost: example.comrnrn" | nc example.com 80HTTP/1.0 200 OK ...
戻り値コード
- 0 正常終了。接続または待受に成功しました。
- >0 到達不能、拒否、構文差異などで処理できませんでした。
使用例
nc -zv example.com 443nc -l 12345printf "GET / HTTP/1.0rnrn" | nc example.com 80
よくあるエラー
-
他環境で同じオプションが動かない 原因: 実装差があります。対処: manページでその環境のnc実装を確認します。
導入・互換性情報
実装差が非常に大きく、-l、-p、-qなどの扱いが環境で異なることがあります。
注意点 / セキュリティリスク
危険度は中程度です。待受や転送を安易に使うと意図しない通信経路を作ることがあります。
FAQ
-
Q. curlやtelnetの代わりになりますか。 A. 簡易確認にはなりますが、用途によっては専用道具のほうが適切です。
-
Q. 安全ですか。 A. 便利ですが、待受や転送を不用意に使うと問題になり得ます。
関連用語
参照リンク
- カテゴリー: Networking
- レベル: Advanced