GNU/Linux >> Linux の 問題 >  >> Linux

例でNetcatコマンドを使用する方法

Netcat(nc)コマンドは、ネットワーク接続の分析、開いているポートのスキャン、データの転送などを行うための強力なツールです。TCPまたはUDPプロトコルを使用してネットワーク接続の読み取りと書き込みを行うためのネットワークユーティリティです。

netcatのインストール方法

これはクロスプラットフォームツールであり、Linux、macOS、Windows、およびBSDで使用できます。 apt installを使用してUbuntu18.04マシンにnetcatをインストールします またはソースコードからコンパイルします。

aptを使用したインストールは非常に簡単で、ターミナルに次のコマンドを入力するだけです。

sudo apt install netcat

CentOS8の場合

ncatは、nmapパッケージとともにRHEL 8 /CentOS8にインストールできます。以下のようにdnfコマンドを使用します

sudo dnf install nmap

ソースコードからnetcatをインストールする方法

ソースコードからnetcatをコンパイルするのは、apt installを介してインストールするほど簡単ではありません。 、ただし、以下の手順に従うと、簡単にインストールできます。

次のコマンドを使用して、netcatWebサイトからソースコードをダウンロードします

wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz

新しくダウンロードしたアーカイブを抽出します。これを行うには、次のコマンドを実行できます:

tar -xzvf netcat-0.7.1.tar.gz

cd パッケージのソースコードを含むディレクトリに移動し、./configureと入力します システムのパッケージを構成します。

cd netcat-0.7.1
./configure

./configureコマンドの実行時に「$PATHに受け入れ可能なCコンパイラが見つかりません」というエラーメッセージが表示される場合は、gccコンパイラがインストールされていることを確認してください。インストールするには、次のコマンドを入力します。

apt-get install build-essential

configureを実行しています しばらく時間がかかります。

構成が正常に完了したら、実行:

sudo make

および

sudo make install

make cleanと入力すると、ソースコードディレクトリからプログラムバイナリとオブジェクトファイルを削除できます。 。 configureするファイルも削除します 作成し、make distcleanを実行します コマンド。

Netcatの例

いくつかのnetcatコマンドの調査を開始する前に、ncを使用して既知のポート(0-1023)にバインドしている場合は、root権限が必要であることを知っておくことが重要です。それ以外の場合は、通常のユーザーとしてncを実行できます。

1)リモートホストの特定のTCPポートが開いているかどうかをテストします

nc -vn 192.168.40.146 2424

リモートサーバーの2424ポートが閉じている場合に出力

nc: connect to 192.168.40.146 port 2424 (tcp) failed: Connection refused

リモートサーバーのポートが開いている場合に出力します(例:22ポート)

Connection to 192.168.40.146 22 port [tcp/*] succeeded!
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4

2)リモートホストに対してTCPポートスキャンを実行します

以下のコマンドは、リモートホストの20から25までのポートをチェックし、結果を出力します。

nc -vnz -w 1 192.168.40.146 20-25

出力は次のようになります

nc: connect to 192.168.40.146 port 20 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 21 (tcp) failed: Connection refused
Connection to 192.168.40.146 22 port [tcp/*] succeeded!
nc: connect to 192.168.40.146 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 24 (tcp) failed: Connection refused
nc: connect to 192.168.40.146 port 25 (tcp) failed: Connection refused

3)リモートホストに対してUDPポートスキャンを実行します

nc -vnzu 192.168.40.146 1-65535

出力には、UDP接続を許可するポートのみが表示されます。

Connection to 192.168.40.146 2424 port [udp/*] succeeded!
Connection to 192.168.40.146 12354 port [udp/*] succeeded!

4)テストUDPパケットをリモートホストに送信します

echo -n "udp test" | nc -u -w1 192.168.40.146 2424

上記のコマンドは、1秒のタイムアウトでテストUDPパケットをポート2424のリモートホストに送信します

5)あるホストから別のホストにファイル(test.txtなど)をコピーします

レシーバーホスト(私の場合は192.168.40.146)で次を実行します:

nc -lp 2424 > test.txt

送信側ホスト(192.168.40.144)で、次のコマンドを実行します。

nc 192.168.40.146 2424 < test.txt

これにより、test.txtファイルが2424ポートを介して送信者ホストから受信者ホストにコピーされます。受信者ホストの2424ポートでの着信接続を許可してください。

6)ディレクトリ全体(そのコンテンツを含む)をあるホストから別のホストに転送します

レシーバーホストで実行:

nc -l 2424 | tar xvf -

送信側ホストで、次のコマンドを実行します。

tar cvf - /path/to/dir | nc 192.168.40.146 2424

7)リモートホスト上にハードドライブ(例:/ dev / sdc)の圧縮バックアップを作成します

リモートホストで実行:

nc -lp 2424 | sudo dd of=/path/to/image.img.gz

ローカルホストで次のコマンドを実行します:

dd if=/dev/sdc | gzip -c | nc 192.168.40.146 2424

8)リモートホストに保存されている圧縮ディスクイメージからハードドライブ(例:/ dev / sdc)を復元します

ローカルホストで実行:

nc -lp 2424 | gunzip -c | sudo dd of=/dev/sdc

リモートホストで次のコマンドを実行します:

cat /path/to/image.img.gz | nc 192.168.40.144 2424

9)2人のホスト間で安全でないオンラインチャットを実行する

1つのホスト(例:192.168.40.144)で、次のコマンドを実行します:

nc -lp 2424

別のホスト(例:192.168.40.146)で次のコマンドを実行します:

nc 192.168.40.144 2424

これらのコマンドを実行すると、両方の端末で入力されたものが両方のホストマシンに表示されます。

10)静的なWebページでWebサーバーを実行します

ローカルホスト(例:192.168.40.144)で以下のコマンドを実行して、ポート80でtest.htmlを提供するWebサーバーを起動します。80は既知のポート(1-1023)の範囲内にあるため、sudo権限で実行する必要があることに注意してください。

while true; do sudo nc -lp 80 < test.html; done

次に、http://192.168.40.144/test.htmlを開きます。 別のホストからアクセスします。

11)IPv6アドレスを使用してTCPポートでリッスンします

次のコマンドを使用して、TCPポートでリッスンするときにncがIPv6アドレスを使用できるようにすることができます。

nc -6 -l 2424

以下のコマンドで動作するかどうかを確認してください

sudo netstat -nap | grep 2424

出力は次のようになります

tcp6 0 0 :::2424 :::* LISTEN 15665/nc

12)クライアントがビデオプレーヤー(mplayerなど)を使用してストリーミングされたビデオを視聴できるように、サーバーからビデオファイルをストリーミングします

ビデオサーバー(192.168.40.144)の場合:

cat sample_video.avi | nc -l 2424

クライアントホスト(192.168.40.146)の場合:

nc 192.168.40.144 2424 | mplayer -vo x11 -cache 3000-

関連項目:

  • LinuxNetcatコマンドをポートスキャナーとして使用する方法
  • Linuxでnetcatを使用して簡単なチャットを作成する方法

ご覧のとおり、netcatはTCP / IPネットワーキングに最適なツールであり、ネットワーキング関連のトラブルシューティングと実験を行う場合、システム管理者の最もお気に入りのツールの1つです。そのため、多くのLinuxディストリビューションがpreinstallednetcatで提供されています。


Linux
  1. Linuxでの例で「cat」および「tac」コマンドを使用する方法

  2. 例でethtoolコマンドを使用する方法

  3. 22以外のポートへのSSH:それを行う方法(例付き)

  1. 実用的な例でLinuxHexdumpコマンドを使用する方法

  2. LinuxでのSCPコマンド:使用方法と例

  3. 例を使用してLinuxでRmmodコマンドを使用する方法

  1. 例を使用してLinuxでIPコマンドを使用する方法

  2. Linux Catコマンドの使用方法(例付き)

  3. 例を使用してLinuxsleepコマンドを使用する方法