Linux 的 nc 命令是一個功能強大的網(wǎng)絡(luò)工具,全稱是netcat,用于設(shè)置路由器。
語法:
nc [-hlnruz][-g<網(wǎng)關(guān)...>][-G<指向器數(shù)目>][-i<延遲秒數(shù)>][-o<輸出文件>][-p<通信端口>][-s<來源位址>][-v...][-w<超時秒數(shù)>][主機名稱][通信端口...]
參數(shù)說明:
| 命令 | 說明 |
|---|---|
| -g ? ????????? | <網(wǎng)關(guān)> 設(shè)置路由器躍程通信網(wǎng)關(guān),最多可設(shè)置8個。 |
| -G | <指向器數(shù)目> 設(shè)置來源路由指向器,其數(shù)值為4的倍數(shù)。 |
| -h | 在線幫助。 |
| -i | <延遲秒數(shù)> 設(shè)置時間間隔,以便傳送信息及掃描通信端口。 |
| -l | 使用監(jiān)聽模式,管控傳入的資料。 |
| -n | 直接使用IP地址,而不通過域名服務(wù)器。 |
| -o | <輸出文件> 指定文件名稱,把往來傳輸?shù)臄?shù)據(jù)以16進制字碼傾倒成該文件保存。 |
| -p | <通信端口> 設(shè)置本地主機使用的通信端口。 |
| -r | 亂數(shù)指定本地與遠端主機的通信端口。 |
| -s | <來源位址> 設(shè)置本地主機送出數(shù)據(jù)包的IP地址。 |
| -u | 使用UDP傳輸協(xié)議。 |
| -v | 顯示指令執(zhí)行過程。 |
| -w | <超時秒數(shù)> 設(shè)置等待連線的時間。 |
| -z | 使用0輸入/輸出模式,只在掃描通信端口時使用。 |
實例:
1、傳輸文件
首先在接收端192.168.0.2上: nc -l 1234 > test.txt
然后在發(fā)送端192.168.0.1 上: nc 192.168.0.2 1234 < test.txt
2、傳輸目錄
從 192.168.0.1拷貝yaya目錄內(nèi)容到192.168.0.2。
在192.168.0.2上激活監(jiān)聽:# nc -l 1234 | tar xzv-
192.168.0.1上運行:# tar czv- yaya | nc 192.168.0.2 1234
發(fā)送端:
# tar czv- yaya/ | nc 192.168.0.2 1234
yaya/
yaya/logs/
yaya/logs/LoanPrepare-2021-01-07-22.log
yaya/logs/LoanPrepare.log
nc -l 1234 | tar xzv-
yaya/
yaya/logs/
yaya/logs/LoanPrepare-2021-01-07-22.log
yaya/logs/LoanPrepare.log
3、簡單聊天工具
在192.168.0.1上: nc -l 1234
在192.168.0.2上: nc 192.168.0.1 1234
這樣,雙方就可以相互交流了。
使用ctrl+C(或D)退出
注意:先運行接收端,指定一個端口為1234,文件為test.txt;再執(zhí)行發(fā)送端,并且發(fā)送端必須存在同名的文件test.txt。
對于已啟動的端口號,可以通過 lsof -i :port 查詢監(jiān)聽端口的pid,然后通過kill pid關(guān)閉端口