nc:全稱netcat,能夠打開tcp鏈接,發送udp數據包,監放任意tcp和udp的端口,實現端口掃描和同時處理IPv4和IPv6。node
-4 使用IPv4地址。服務器
-6 使用IPV6地址..ssh
-D 開啓debugging 在 socket.curl
-d 不嘗試從stdin讀取數據.socket
-h 查看幫助信息tcp
-i 指定文本行發送和接收的延時時間. 也能夠製造鏈接到多端口的延時.ide
-I 指定TCP接收緩衝區大小url
-n 任何指定的地址,主機名或端口都不作任何DNS或服務解析.spa
-k 強制nc持續監聽另外一個鏈接直到它的鏈接完成. 沒有 -l 選項是錯誤的. debug
-l 用於指定nc應該監聽一個傳入的鏈接,而不是鏈接到遠程主機. 該選項不能與如下選項聯合使用-p, -s, 或 -z 選項. 此外, 任何用-w選項指定的超時會被忽略.-
-p source_port 指定nc使用的源端口,受到權限和可用性的限制.
-r 指定源和/或目標端口隨機選擇而不是一個範圍序列或系統分配的順序.
-s source 指定源IP的接口用於發送數據包.
-u 使用UDP協議。
-V rtable 設置要使用的路由表. 默認是 0.
-v 使nc給出更詳細的輸出.
-w timeout 沒法創建的或者閒置的鏈接在指定秒數以後超時. .
-z 指定nc只是掃描正在監聽的守護進程,不發送任何數據. 不可和-l選項同時使用。
-q 指定客戶端收到EOF以後退出的時間
1)傳輸文件
使用-l在本地監聽一個端口,並把輸出定向到一個文件,而後從另外一臺設備上往此端口上傳輸文件。
服務器1:nc -l 8899 >123.txt
服務器2:nc 192.168.0.2438899 <test_curl
這樣就把test_curl給傳過來了
或者:
server1:nc -l 8899| tar zxf -
server2:tar zcf- node-v0.12.2.tar.gz | nc 192.168.0.2438899
2)端口掃描或探測
[root@jjjjjjjjjj ~]# nc -v -w 2 192.168.0.243 -z 20-30
nc: connect to 192.168.0.243 port 20 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 21 (tcp)failed: Connection refused
Connection to 192.168.0.243 22 port[tcp/ssh] succeeded!
nc: connect to 192.168.0.243 port 23 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 24 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 25 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 26 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 27 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 28 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 29 (tcp)failed: Connection refused
nc: connect to 192.168.0.243 port 30 (tcp)failed: Connection refused
也可指定單個端口
nc -v -w 2 192.168.0.243 80