8 個實用的Linux netcat 命令樣本

來源:互聯網
上載者:User

原文連結

這裡我們將通過一些執行個體來學習 netcat 命令。

1. 在伺服器-用戶端架構上使用 Netcat

netcat 工具可運行於伺服器模式,偵聽指定連接埠

$ nc -l 2389

然後你可以使用用戶端模式來串連到 2389 連接埠:

$ nc localhost 2389

現在如果你輸入一些文本,它將被發送到伺服器端:

$ nc localhost 2389

HI, oschina

在伺服器的終端視窗將會顯示下面內容:

$ nc -l 2389

HI, oschina

2. 使用 Netcat 來傳輸檔案

netcat 工具還可用來傳輸檔案,在用戶端,假設我們有一個 testfile 檔案:

cat testfile

hello oschina

而在伺服器端有一個空檔案名稱為 test

然後我們使用如下命令來啟用伺服器端:

$ nc -l 2389 > test

緊接著運行用戶端:

cat testfile | nc localhost 2389

然後你停止伺服器端,你可以查看 test 內容就是剛才用戶端傳過來的 testfile 檔案的內容:

cat test

hello oschina

3. Netcat 支援逾時控制

多數情況我們不希望串連一直保持,那麼我們可以使用 -w 參數來指定串連的空閑逾時時間,該參數緊接一個數值,代表秒數,如果串連超過指定時間則串連會被終止。

伺服器:

nc -l 2389

用戶端:

$ nc -w 10 localhost 2389

該串連將在 10 秒後中斷。

注意: 不要在伺服器端同時使用 -w 和 -l 參數,因為 -w 參數將在伺服器端無效果。

4. Netcat 支援 IPv6

netcat 的 -4 和 -6 參數用來指定 IP 位址類型,分別是 IPv4 和 IPv6:

伺服器端:

$ nc -4 -l 2389

用戶端:

$ nc -4 localhost 2389

然後我們可以使用 netstat 命令來查看網路的情況:

netstat grep 2389

tcp        0      0 localhost:2389          localhost:50851         ESTABLISHED

tcp        0      0 localhost:50851         localhost:2389          ESTABLISHED

接下來我們看看IPv6 的情況:

伺服器端:

$ nc -6 -l 2389

用戶端:

$ nc -6 localhost 2389

再次運行 netstat 命令:

netstat grep 2389

tcp6       0      0 localhost:2389          localhost:33234         ESTABLISHED

tcp6       0      0 localhost:33234         localhost:2389          ESTABLISHED

首碼是 tcp6 表示使用的是 IPv6 的地址。

5. 在 Netcat 中禁止從標準輸入中讀取資料

該功能使用 -d 參數,請看下面例子:

伺服器端:

$ nc -l 2389

用戶端:

$ nc -d localhost 2389

Hi

你輸入的 Hi 文本並不會送到伺服器端。

6. 強制 Netcat 伺服器端保持啟動狀態

如果串連到伺服器的用戶端中斷連線,那麼伺服器端也會跟著退出。

伺服器端:

$ nc -l 2389

用戶端:

$ nc localhost 2389

^C

伺服器端:

$ nc -l 2389

$

上述例子中,但用戶端斷開時伺服器端也立即退出。

我們可以通過 -k 參數來控制讓伺服器不會因為用戶端的中斷連線而退出。

伺服器端:

$ nc -k -l 2389

用戶端:

$ nc localhost 2389

^C

伺服器端:

$ nc -k -l 2389

7. 配置 Netcat 用戶端不會因為 EOF 而退出

Netcat 用戶端可以通過 -q 參數來控制接收到 EOF 後隔多長時間才退出,該參數的單位是秒:

用戶端使用如下方式啟動:

nc  -q 5  localhost 2389

現在如果用戶端接收到 EOF ,它將等待 5 秒後退出。

8. 使用 Netcat 來處理 UDP 協議

netcat 預設是使用 TCP 協議,但也支援 UDP,可使用 -u 參數來啟用 UDP 協議通訊。

伺服器端:

$ nc -4 -u -l 2389

用戶端:

$ nc -4 -u localhost 2389

這樣用戶端和伺服器端都使用了 UDP 協議,可通過 netstat 命令來查看:

netstat grep 2389

udp        0      0 localhost:42634         localhost:2389          ESTABLISHED

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.