2021-03-07 分類: 網站建設
1. nc命令簡介
NetCat,在網絡工具中有“瑞士軍刀”美譽,其有Windows和Linux的版本。因為它短小精悍、功能實用,被設計為一個簡單、可靠的網絡工具,可通過TCP或UDP協議傳輸讀寫數據。同時,它還是一個網絡應用Debug分析器,因為它可以根據需要創建各種不同類型的網絡連接。
netcat簡介
以CentOS7.5最小安裝版為例,默認情況下系統并沒有集成nc工具集,需要手動安裝它:
- [root@zcwyou?~]#?yum?install?-y?nmap-ncat?
2. 測試192.168.1.1的TCP80端口是否可以正常連接
- [root@zcwyou?~]#?nc?-v?-w?1?192.168.1.1?-z?80?
linux使用netcat命令檢測TCP80端口是否可以正常連接
試試連接81端口
- [root@zcwyou?~]#?nc?-v?-w?1?192.168.1.1?-z?81?
3. 使用nc傳輸文件
大部分時間中,我們都在試圖通過網絡或者其他工具傳輸文件。有很多種方法,比如FTP,SCP,SMB等等,但是當你只是需要臨時或者一次傳輸文件,真的值得浪費時間來安裝配置一個軟件到你的機器上嘛。假設,你想要傳一個文件zcwyou.txt 從A到B。A或者B都可以作為服務器或者客戶端,以下,讓A作為服務器,B為客戶端。
Server端配置
- [root@zcwyou?~]#?nc?-l?1567?
?zcwyou.txt?<>
Client
- [root@zcwyou?~]#?nc?-n?172.31.100.7?1567?>?zcwyou.txt?
原理:Server端把zcwyou.txt輸入到nc,由nc發送,Client端通過nc接收消息,把它保存到zcwyou.txt。
4. 克隆硬盤或分區
server2上進行類似的監聽動作,即把接收的數據重定向給dd:
- [root@zcwyou?~]#?nc?-l?-p?1234?|?dd?of=/dev/sda?
server1上把dd后的數據重定向給nc,即發送數據
- [root@zcwyou?~]#?dd?if=/dev/sda?|?nc?192.168.200.27?1234?
注意:克隆硬盤或分區的操作,不應在已經mount的的系統上進行。
5. 指定源端口
假設你的防火墻過濾除25端口外其它所有端口,你需要使用-p選項指定源端口。
服務器端打開監聽:
- [root@zcwyou?~]#?nc?-l?1567?
客戶端發送數據,目標端口1567,源端口25
- [root@zcwyou?~]#?nc?172.31.100.7?1567?-p?25?
使用1024以內的端口需要root權限。
該命令將在客戶端開啟25端口用于通訊,否則將使用隨機端口。
6. 指定源地址
使用-s選項指定源ip地址。
服務器端打開監聽,把zcwyou.txt重定向給nc。
- [root@zcwyou?~]#?nc?-u?-l?1567?
?zcwyou.txt?<>
客戶端
- [root@zcwyou?~]#?nc?-u?192.168.100.1?1567?-s?192.168.88.20?>?file.txt?
當服務器有多個IP時,指定使用192.168.88.20作為源IP。
7. 目錄傳輸
發送一個文件很簡單,但是如果我們想要發送多個文件,或者整個目錄,一樣很簡單,只需要使用壓縮工具tar,壓縮后發送壓縮包。
如果你想要通過網絡傳輸一個目錄從A到B。
Server端,打包abc目錄,并重定向到nc
- [root@zcwyou?~]#?tar?-cvf?-?abc?|?nc?-l?1567?
Client端,通過nc接收數據并由tar解包
- [root@zcwyou?~]#?nc?-n?172.31.100.7?1567?|?tar?-xvf?-?
如果想要節省帶寬傳輸壓縮包,我們可以使用bzip2或者其他工具壓縮。
Server端通過bzip2壓縮目錄abc并重定向到nc,監聽端口1567
- [root@zcwyou?~]#?tar?-cvf?-?abc?|?bzip2?-z?|?nc?-l?1567?
Client端把接收到的數據通過交給bzip2和tar處理
- [root@zcwyou?~]#?nc?-n?172.16.26.88?1567?|?bzip2?-d?|tar?-xvf?-?
8. 加密你通過網絡發送的數據
如果你擔心你在網絡上發送數據的安全,你可以在發送你的數據之前用如mcrypt的工具加密。
服務端,使用mcrypt工具加密數據。
- [root@zcwyou?~]#?nc?localhost?1567?|?mcrypt?–flush?–bare?-F?-q?-d?-m?ecb?>?zcwyou.txt?
客戶端,使用mcrypt工具解密數據。
- mcrypt?-flush?-bare?-F?-q?-m?ecb?
?zcwyou.txt?|?nc?-l?1567?<>
以上兩個命令會提示需要密碼,確保兩端使用相同的密碼。
這里我們是使用mcrypt用來加密,使用其它任意加密工具都可以。
9. 傳輸流視頻
雖然不是生成流視頻的最好方法,但如果服務器上沒有特定的工具,使用netcat,我們仍然有希望做成這件事。
服務端讀取一個視頻文件重定向輸出到netcat客戶端
- [root@zcwyou?~]#?cat?video.avi?|?nc?-l?1567?
客戶端通過nc讀取內容交給mplayer播放器
- [root@zcwyou?~]#?nc?172.31.100.7?1567?|?mplayer?-vo?x11?-cache?3000?-?
10. 使用UDP協議
默認情況下,nc創建連接時只會連接TCP端口。 不過我們可以使用-u選項來連接到 UDP 端口
- [root@zcwyou?~]#?ncat?-l?-u?8888?
udp 8888端口已經打開,然后用netstat驗證一下端口是否打開。
- [root@zcwyou?~]#?netstat?-tunlp?|?grep?1234?
udp 0 0 0.0.0.0:1234 0.0.0.0:* 17341/nc
udp6 0 0 :::1234 :::* 17341/nc
測試某服務器的UDP端口,比如檢查本地是否可以使用阿里DNS服務器223.5.5.5
- [root@zcwyou?~]#?nc?-v?-u?223.5.5.5?53?
Ncat: Version 7.50
Ncat: Connected to 223.5.5.5:53.
顯示Connected即表明成功連接到遠程DNS端口,DNS工作正常。
linux使用netcat測試服務器的UDP端口
11. 其它用途
使用-t選項模擬Telnet客戶端:
HTTP客戶端用于下載文件
連接到郵件服務器,使用SMTP協議檢查郵件
使用ffmpeg截取屏幕并通過流式傳輸分享,等等。其它更多用途。
簡單來說,只要你了解協議就可以使用netcat作為網絡通訊媒介,實現各種客戶端。
分享文章:Linux里有類似Windows系統里的Tcping端口連接檢測工具嗎
當前地址:http://m.newbst.com/news15/104765.html
成都網站建設公司_創新互聯,為您提供域名注冊、手機網站建設、全網營銷推廣、網站制作、網站設計公司、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容