nc エヌシー

英語表記nc

日本語表記簡易ソケット接続

別名netcat, ncat

正式名称nc

危険度注意

What does it mean?

TCPやUDPで接続、待受、ポート確認を行います。軽量で便利ですが、実装差が大きい道具です。

Command Quest

nc を今日の道具にする

TCPやUDPで接続、待受、ポート確認を行います。軽量で便利...

$ nc [オプション] ホスト ポート
関連用語14
次のコマンド0
FAQ2
参照1

概要

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分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. -zvで開閉確認の基本を覚えます。

オプション

  • -z
    データ送受信せずポート確認だけ行います。
    nc -zv example.com 443
  • -v
    詳細表示します。
    nc -zv example.com 443
  • -l
    待受モードにします。
    nc -l 12345
  • -u
    UDPを使います。
    nc -u -zv 192.0.2.10 53

実行結果サンプル

  • printf "GET / HTTP/1.0rnHost: example.comrnrn" | nc example.com 80
    HTTP/1.0 200 OK ...

戻り値コード

  • 0 正常終了。接続または待受に成功しました。
  • >0 到達不能、拒否、構文差異などで処理できませんでした。

使用例

  • nc -zv example.com 443
  • nc -l 12345
  • printf "GET / HTTP/1.0rnrn" | nc example.com 80

よくあるエラー

  • 他環境で同じオプションが動かない
    原因: 実装差があります。
    対処: manページでその環境のnc実装を確認します。

導入・互換性情報

実装差が非常に大きく、-l、-p、-qなどの扱いが環境で異なることがあります。

注意点 / セキュリティリスク

危険度は中程度です。待受や転送を安易に使うと意図しない通信経路を作ることがあります。

FAQ

  • Q. curlやtelnetの代わりになりますか。
    A. 簡易確認にはなりますが、用途によっては専用道具のほうが適切です。
  • Q. 安全ですか。
    A. 便利ですが、待受や転送を不用意に使うと問題になり得ます。

関連用語

  • port
  • socket
  • TCP
  • UDP
  • throughput
  • firewall
  • nftables
  • iptables
  • reverse proxy
  • mail server
  • MTA
  • BMC
  • IPMI
  • service mesh

参照リンク

関連記事