溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)中nc命令如何使用

發(fā)布時間:2021-06-23 15:15:24 來源:億速云 閱讀:338 作者:Leah 欄目:系統(tǒng)運維

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Linux系統(tǒng)中nc命令如何使用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。



nc可以提供如下的網(wǎng)絡(luò)功能:

1) 監(jiān)聽特定端口,這時候nc就可以作為一個服務(wù)器,但是我發(fā)現(xiàn)這樣使用nc生成的服務(wù)器僅僅是一個echo服務(wù)器而已,沒有其他更加強大的功能.
2) 連接特定端口,這時候nc就成為了一個客戶端,同樣的,也是一個簡單的客戶端,只能起echo的作用.
3) 掃描端口,這可以作為查詢某個機器上是否開啟了某個端口.

幾個具體的使用例子

例子1:

使用nc打開linux下的特定端口
nc -lp 23 & (即telnet)
netstat -an|grep 23 (查看端口是否正常打開)

例子2:

使用nc進行文件傳輸,命令
ssh root@www.freetstar.com “( nc -l 10003 > destination 2>/dev/null & )” && cat source | nc www.freetstar.com 10003
&& 前邊ssh登錄到遠程主機www.freetstar.com上,用nc命令打開本地的10003端口,成為后臺進程
&&后邊,在本地機器上打開source文件,并將其重定向到www.freetstar.com的10003號端口,也就是讓遠程www.freetstar.com主機10003號端口接收source文件

例子3:

使用nc掃描linux下的特定端口
nc -v -z host.example.com 70-80
掃描端口(70到80),可指定范圍。-v輸出詳細信息。

例子4:

克隆硬盤或分區(qū)
類似于例子2,只需要由dd獲得硬盤或分區(qū)的數(shù)據(jù),然后傳輸即可。
克隆硬盤或分區(qū)的操作,不應(yīng)在已經(jīng)mount的的系統(tǒng)上進行。所以,需要使用安裝光盤引導(dǎo)后,進入拯救模式(或使用Knoppix工 具光盤)啟動系統(tǒng)后
server1上執(zhí)行:# nc -l -p 1234 | dd of=/dev/sda
server1上執(zhí)行1234號端口監(jiān)聽,將得到的文件保存到/dev/sda上
server2上執(zhí)行:# dd if=/dev/sda | nc server1 1234

例子5:

保存Web頁面
while true; do nc -l -p 80 -q 1 < somepage.html; done

例子6:

模擬HTTP Headers
[root@hatest1 ~]# nc www.huanxiangwu.com 80
GET / HTTP/1.1
Host: ispconfig.org
Referrer: mypage.com
User-Agent: my-browser
在nc命令后,輸入紅色部分的內(nèi)容,然后按兩次回車,即可從對方獲得HTTP Headers內(nèi)容。

例子7:

聊天
server1上監(jiān)聽1234端口[root@hatest2 tmp]# nc -lp 1234
server2上向server1的1234端口發(fā)送消息[root@hatest1 ~]# nc server1 1234
這樣,雙方就可以相互交流了。使用Ctrl+D正常退出。
更多的使用,查看man手冊

nc example.host port 打開與example.host主機的port的一個TCP鏈接.如果鏈接失敗,不顯示任何錯誤信息,僅僅退出
nc -p 31337 -w 5 example.host 42 打開與example。host主機的42號端口的一個TCP鏈接。用31337作為源端口,超時鏈接時間為5秒
nc -u example.host 53 指定協(xié)議為udp協(xié)議

語  法: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.監(jiān)聽本地端口

代碼如下:


root@10.1.1.43:~# nc -l -p 1234
root@10.1.1.43:~# netstat -tunlp | grep 1234


tcp        0      0 0.0.0.0:1234            0.0.0.0:*               LISTEN      15543/nc

2.端口掃描

代碼如下:


root@10.1.1.43:~# nc -v -w 10 10.1.1.180 80


(UNKNOWN) [10.1.1.180] 80 (www) open
 

代碼如下:


root@10.1.1.43:~# nc -v -w 10 10.1.1.180 -z 80-30000


(UNKNOWN) [10.1.1.180] 22000 (?) open
(UNKNOWN) [10.1.1.180] 80 (www) open

3.文件傳出

源10.1.1.43 text.txt

目的 10.1.1.180

代碼如下:


root@10:~# nc -l -p 1234 > test.txt                 #開10.1.1.180:1234端口監(jiān)聽,并將socket傳輸過來的數(shù)據(jù)重定向到test.txt文件 test 43 nc
root@10.1.1.43:~#cat test.txt    
root@10.1.1.43:~# nc  10.1.1.180 1234 < test.txt    #連接遠程的10.1.1.180,從test.txt的路徑從定向到socket,從而將文件傳輸?shù)竭h方。
root@10:~# cat test.txt
test 43 nc


4.目錄傳輸

源10.1.1.43 python_program

目的 10.1.1.180

代碼如下:


root@10:~# nc -l -p 1234 | tar xzvf -
root@10.1.1.43:~# tar czvf -  python_program | nc 10.1.1.180 1234


python_program/
python_program/1.py
python_program/4.py
python_program/3.py

5.測試UDP端口

代碼如下:


root@172.16.211.34:web# netstat -tunlp


Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1111/sshd          
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               887/dhclient
 

代碼如下:


root@172.16.211.35:~# nc -vuz  172.16.211.34 68


Connection to 172.16.211.34 68 port [udp/bootpc] succeeded!

上述就是小編為大家分享的Linux系統(tǒng)中nc命令如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI