自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么 Netcat 是最好的 Linux 故障排除工具之一

系統(tǒng) Linux
在本文中,我們將介紹一個非常簡單的故障排除工具,稱為 Netcat。這個實用程序已經存在了近三十年,雖然表面上很簡陋,但在正確使用時提供了強大的功能和靈活性。

故障排除工具可以簡單,也可以非常復雜。它們可以非常小巧,也可以非常龐大,各種大小都有。是否需要將所有功能集中在一個工具中存在爭議。當您使用適度的工具和實用程序解決問題時,您將對問題有更深入的理解。

通過避免在不必要的中間件層后面混淆基本系統(tǒng),更容易理解系統(tǒng)。這是因為您必須花時間逐個測試和理解每個組件。

在本文中,我們將介紹一個非常簡單的故障排除工具,稱為 Netcat。這個實用程序已經存在了近三十年,雖然表面上很簡陋,但在正確使用時提供了強大的功能和靈活性。

讓我們探索一下 Netcat 的一些多樣性。

它可以作為客戶端

如果您想測試遠程服務器上的一個開放端口,那么沒有比使用 Netcat 更簡單的方法了。您可以通過 TCP 或 UDP 向服務器發(fā)送任意有效負載,發(fā)送到任何您想要的端口。

下面是一個簡單的示例,我們向運行在本地主機上端口 5000 的服務器發(fā)送一些基本的 UDP 字符串數據:

linuxmi@linuxmi ~/www.linuxmi.com
 % echo "hello" | nc -u 127.0.0.1 5000

如果服務器期望接收此類型的數據,它將會做出相應的響應,并且您將在控制臺上看到響應結果的打印輸出。如果服務器期望接收JSON數據塊或其他二進制數據,您也可以以相同的方式將其傳輸到Netcat中。

以下是使用JSON數據的示例:

echo '{"key":"value"}' | nc -u 127.0.0.1 5000

假設遠程服務器有一個集成的JSON解析器,您應該能夠使用這種簡單的方法發(fā)送純JSON數據。只需記住在必要時跟蹤引號并對其進行轉義。

它還可以作為服務器

Netcat也可以作為一個簡單的套接字服務器。假設您想要快速啟動一個服務器,監(jiān)聽特定端口的傳入數據。使用Netcat非常簡單:

nc -l -u -p 5000 127.0.0.1

這個命令將在本地機器上打開5000端口,并監(jiān)聽傳入的UDP流量。如果將此與前面的客戶端命令結合起來,您可以將流量發(fā)送到服務器以進行顯示。這意味著您可以創(chuàng)建一個簡單的消息中繼服務器,并且甚至可以使用Netcat在服務器之間傳輸數據。

這兩個命令也可以在TCP模式下運行。只需刪除 -u 標志,默認情況下Netcat將以TCP模式運行。

它可以發(fā)送不同類型的有效載荷

Netcat不僅功能豐富,可以同時作為客戶端和服務器,還可以發(fā)送各種負載。由于可以將數據通過管道傳輸到Netcat,您可以發(fā)送許多有趣的內容。如果我們想使用Netcat發(fā)出一個HTTP GET請求會怎樣呢?

linuxmi@linuxmi ~/www.linuxmi.com
 % printf 'GET / HTTP/1.1\r\nHost:google.com\r\n\r\n' | nc google.com 80

因為我們手動鍵入了HTTP請求的格式,所以看起來有點凌亂,但它確實有效。這個命令會返回一個301,因為Google只支持通過HTTPS工作。盡管它監(jiān)聽的是端口80,但它會將您重定向到443端口進行安全連接。

將這樣的負載填充到Netcat對于像Google這樣的大型網站來說并沒有太大幫助,但對于小型開發(fā)服務器來說是有用的。如果您想手動修改HTTP負載或發(fā)送錯誤數據,這是一個快速的方法。

當然,還有其他更適合此任務的工具,比如curl,但是通過Netcat,您可以構建原始請求。原始請求操作對于需要對發(fā)送的數據具有更精細控制的低級故障排除非常有用。

它可以查找開放的端口

這種多功能性不僅限于客戶端和服務器應用程序。使用Netcat,您可以掃描基礎架構以查找開放的端口。通過以下命令,您可以檢查服務器上的TCP端口是否開放:

linuxmi@linuxmi ~/www.linuxmi.com
 % nc -zv google.com 80

這顯然會返回成功,因為Google確實開放了用于傳入HTTP請求重定向的端口80。您可以更改為您喜歡的任何主機和端口。您甚至可以通過輸入一個端口范圍來掃描端口,例如:80-443。

如果您想掃描UDP端口,只需在命令中添加 -u 標志。

如果您需要具有廣泛可配置選項的復雜網絡掃描,那么nmap可能是一個更好的選擇。如果您只需要快速檢查一些端口是否開放,為什么要安裝所有額外的復雜功能呢?

它可以傳輸文件

不,這不會是通過網絡發(fā)送文件的最快或最可靠的方式,但在緊急情況下它可以完成任務。如果您想通過Netcat發(fā)送文件,絕對可以做到。以下是如何設置遠程服務器:

linuxmi@linuxmi ~/www.linuxmi.com
 % nc -l -p 5000 > foo.txt

這將打開Netcat并在端口5000上進行監(jiān)聽。傳入的數據將被寫入文件foo.txt。

而在實際發(fā)送文件的本地客戶端上,您可以執(zhí)行以下操作:

nc <host> 5000 < foo.txt

這將將foo.txt的內容發(fā)送到 <host>,其中遠程Netcat服務器在端口5000上進行監(jiān)聽。

這是一種快速而簡單的方法來傳輸少量數據。盡管它可以工作,但我強烈建議不要將Netcat作為主要的文件傳輸方式?,F在有更安全、更可靠的選項可供選擇。

責任編輯:趙寧寧 來源: Linux迷
相關推薦

2022-04-22 11:16:35

Linux工具命令

2020-03-04 14:50:38

Linux硬件故障

2009-10-23 13:24:20

linux Shell

2013-07-25 14:50:03

2020-03-03 10:47:47

LinuxSystemdDocker

2020-02-28 08:21:37

制造業(yè)邊緣計算物聯網

2015-08-11 09:18:44

程序員最好

2009-12-04 09:47:47

LinuxNFS服務器

2013-08-26 14:18:12

SELinux

2021-12-22 10:05:06

Linux網絡配置故障排除

2009-08-27 10:13:52

2013-04-11 10:51:27

2021-07-06 06:12:43

Shell語法變量

2023-09-07 07:20:36

SpaCy自然語言

2012-11-16 14:57:25

2010-02-23 12:03:37

CentOS系統(tǒng)

2017-03-01 12:45:48

Linux網卡操作系統(tǒng)

2023-11-22 10:48:15

Arch Linux藍牙

2020-08-24 21:49:53

網絡故障工具網絡技術

2009-06-22 10:09:18

LinuxADSL撥號
點贊
收藏

51CTO技術棧公眾號