原來可能要用程式語言才做得到的,或者需要好幾個工具做不同的事,結果這一個 netcat 就可以搞定。
安裝版本問題
netcat 有 GNU 版及 OpenBSD 版:
$ pacman -Ss netcat
extra/gnu-netcat 0.7.1-4 [installed]
GNU rewrite of netcat, the network piping application
community/openbsd-netcat 1.105_7-6
TCP/IP swiss army knife. OpenBSD variant.
用套件安裝的話,原則上不能兩種都安裝。
兩者的參數使用稍微不同,看到的例子若無法作用時,可能是不同版本的問題,而需要對照一下使用手冊上的參數來調整。
可當檔案傳輸用
在 1.2.3.4 上有個 url.txt 檔案要傳給 5.6.7.8,這樣子執行就有個 port 3000 提供給 client 來傳出去。
$ nc -l 3000 < url.txt
在5.6.7.8 上面下指令接收該檔案:
$ nc -n 1.2.3.4 3000 > url.txt
這種原來要用程式語言花力氣來實作的功能,卻各要一行指令就完成。
參考資料:
神奇的指令:netcat
Linux Netcat command – The swiss army knife of networking