明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

神奇的指令:netcat

[摘要]netcat 就像 cat 指令一樣, 只是將簡單的 cat 功能完全「網(wǎng)路化」, 好用與靈活的程度可說是很驚人, 而在 Top 100 Network Security Tools 排行榜中還排行...

netcat 就像 cat 指令一樣, 只是將簡單的 cat 功能完全「網(wǎng)路化」, 好用與靈活的程度可說是很驚人, 而在 Top 100 Network Security Tools 排行榜中還排行第四名呢!

netcat 除了可以當(dāng) TCP Client 工具以外, 還可以當(dāng) TCP Server 的工具, 以下我用幾個(gè)簡單的例子說明:

示範(fàn) netcat 如何當(dāng) TCP Client 工具

底下這段指令代表你要將 /etc 目錄整個(gè)打包並壓縮起來, 並將資料傳送到 10.0.0.99 主機(jī)的 Port 3456, 並指定若超過 30 秒沒有連上目的地或 30 秒沒有回應(yīng)的話自動(dòng) Timeout。

# tar -zcf - /etc   netcat -w 30 10.0.0.99 3456

示範(fàn) netcat 如何當(dāng) TCP Server 工具

如果拿以上的例子, 你可能會(huì)想說那你還要自己寫一個(gè) Server 接受這些封包!答案是:「只要用 netcat 就可以拿來當(dāng) Server 用了, 一行程式也不用寫」, 底下這段指令是假設(shè)從 10.0.0.99 主機(jī)執(zhí)行的。

# netcat -l -p 3456 > /backup/my_etc_backup.tar.gz

-l 參數(shù)代表進(jìn)入 Listen mode

-p 代表 Listen 的 Port 為 3456

之後的 > my_etc_backup.tar.gz 代表你要將從 TCP 傳入的所有資料都導(dǎo)入到 /backup/my_etc_backup.tar.gz 檔案中。

用以上兩個(gè)非常簡單的例子就可以知道, 原來在網(wǎng)路之間傳輸資料可以如此的簡單。 若知道 rsync 工具的人可能會(huì)笑說:「用 netcat 太麻煩了吧, 用 rsync 同步或備份檔案才更好用吧」。 是的, 如果要「同步檔案」的話, 當(dāng)然用 rsync 比較好用, 不過 netcat 還可以做的更多!

因?yàn)?netcat 可以模擬任何所有 TCP Protocol 的動(dòng)作, 就如同我們常用 telnet 測(cè)試 HTTP、POP3、或 SMTP 協(xié)定的時(shí)候一樣, 只是使用 netcat 可以讓我們更自動(dòng)化的做些測(cè)試, 舉幾個(gè)例子如下:

1. 測(cè)試 HTTP 運(yùn)作是否正常

首先, 必須先建立要下的 HTTP 指令檔, 假設(shè)叫 GET_tw.yahoo.com.txt, 內(nèi)容如下:

GET / HTTP/1.0Host: tw.yahoo.com

注意:在指令的最後面必須要有兩個(gè)「斷行」符號(hào), 所以你可以在文字檔後面加上兩行空白行。

然後就可以用以下指令取得 Yahoo! 奇摩 的首頁 HTML:

# cat GET_tw.yahoo.com.txt   nc tw.yahoo.com 80

再透過一些指令或程式就可以將測(cè)試網(wǎng)頁是否還活著的偵測(cè)程式完成且自動(dòng)化了。

2. 測(cè)試 SMTP 運(yùn)作是否正常

測(cè)試 SMTP 的方式也跟 HTTP 一樣, 就是先把指令都給先寫好, 假設(shè)檔名是 SMTP_test.txt, 內(nèi)容如下:

HELO localhostMAIL FROM:<will@test.com>RCPT TO:<will@test.com>DATATo: Will <will@test.com>Subject: This is a testThis is first line.QUIT

然後就可以用以下指令將 SMTP Command 送到 smtp.test.com 了:

# cat SMTP_test.txt   nc smtp.test.com 25

執(zhí)行的結(jié)果如下:

# cat SMTP_test.txt   nc smtp.test.com 25220 smtp.test.com ESMTP Service ready Fri, 11 Jul 2008 19:13:17 +0800 (CST)250 smtp.test.com250 Sender <doggy@test.com> OK250 Recipient <doggy@test.com> OK354 Enter mail, end <CRLF>.<CRLF>250 Message accepted for delivery221 smtp.test.com

如何上述幾個(gè)簡單的範(fàn)例之外, 當(dāng)然也可以測(cè)試包括 FTP, POP3, ... 等任何 TCP-based 的服務(wù)都可以。

netcat 幾乎在每一個(gè) Linux distribution 中都有預(yù)設(shè)安裝, 算是一個(gè)非常普及的工具。 如果你要在 Windows 上使用 netcat 工具的話, 可以到這裡下載


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。




標(biāo)簽:神奇的指令:netcat