Linux nc命令用於設置路由器。
執行本指令可設置路由器的相關參數。
nc命令的作用
- 實現任意TCP/UDP端口的偵聽,nc可以作為server以TCP或UDP方式偵聽指定端口
- 端口的掃描,nc可以作為client發起TCP或UDP連接
- 機器之間傳輸文件
- 機器之間網絡測速
nc命令的安裝
[root@chenshifengdeLinuxServer ~] yum -y install nmap-ncat
語法
nc [-hlnruz][-g<網關...>][-G<指向器數目>][-i<延遲秒數>][-o<輸出文件>][-p<通信端口>][-s<來源位址>][-v...][-w<超時秒數>][主機名稱][通信端口...]
參數說明:
- -g<網關> 設置路由器躍程通信網關,最多可設置8個。
- -G<指向器數目> 設置來源路由指向器,其數值為4的倍數。
- -h 在線幫助。
- -i<延遲秒數> 設置時間間隔,以便傳送信息及掃描通信端口。
- -l 使用監聽模式,管控傳入的資料。通常 這樣代表着為一個 服務等待客戶端來鏈接指定的端口。
- -n 直接使用IP地址,而不通過域名服務器。
- -o<輸出文件> 指定文件名稱,把往來傳輸的數據以16進制字碼傾倒成該文件保存。
- -p<通信端口> 設置本地主機使用的通信端口。有可能會關閉
- -k<通信端口>強制 nc 待命鏈接.當客戶端從服務端斷開連接后,過一段時間服務端也會停止監聽。 但通過選項 -k 我們可以強制服務器保持連接並繼續監聽端口。
- -r 亂數指定本地與遠端主機的通信端口。
- -s<來源位址> 設置本地主機送出數據包的IP地址。
- -u 使用UDP傳輸協議。
- -v 顯示指令執行過程。
- -w<超時秒數> 設置等待連線的時間。
- -z 使用0輸入/輸出模式,只在掃描通信端口時使用。
實例
TCP端口掃描
# nc -v -z -w2 192.168.0.3 1-100 192.168.0.3: inverse host lookup failed: Unknown host (UNKNOWN) [192.168.0.3] 80 (http) open (UNKNOWN) [192.168.0.3] 23 (telnet) open (UNKNOWN) [192.168.0.3] 22 (ssh) open
掃描192.168.0.3 的端口 范圍是 1-100
掃描UDP端口
# nc -u -z -w2 192.168.0.1 1-1000 //掃描192.168.0.3 的端口 范圍是 1-1000
掃描指定端口
# nc -nvv 192.168.0.1 80 //掃描 80端口 (UNKNOWN) [192.168.0.1] 80 (?) open y //用戶輸入
常用示例
[root@chenshifengdeLinuxServer ~] nc -l 9999 # 開啟一個本地9999的TCP協議端口,由客戶端主動發起連接,一旦連接必須由服務端發起關閉 [root@chenshifengdeLinuxServer ~] nc -vw 2 192.168.21.248 11111 # 通過nc去訪問192.168.21.248主機的11111端口,確認是否存活;可不加參數 [root@chenshifengdeLinuxServer ~] nc -ul 9999 # 開啟一個本地9999的UDP協議端口,客戶端不需要由服務端主動發起關閉 [root@chenshifengdeLinuxServer ~] nc 192.168.21.248 9999 < test # 通過192.168.21.248的9999TCP端口發送數據文件 [root@chenshifengdeLinuxServer ~] nc -l 9999 > zabbix.file # 開啟一個本地9999的TCP端口,用來接收文件內容 # 測試網速 A機器操作如下: [root@chenshifengdeLinuxServer ~] yum install -y dstat # A機器安裝dstat命令 [root@chenshifengdeLinuxServer ~] nc -l 9999 > /dev/null # B機器開啟數據傳輸 nc 10.0.1.161 9999 </dev/zero # A機器進行網絡監控 [root@chenshifengdeLinuxServer ~] dstat
例1:代理(瀏覽器輸入120.0.0.1,返回百度首頁)
mkfifo /tmp/fifo nc -lk 8080 < /tmp/fifo | sed -l -e 's/^Host.*/Host:www.baidu.com/' | tee -a /tmp/req.log | nc www.baidu.com 80 | tee -a /tmp/res > /tmp/fifo