Linux nc命令使用示例
一、命令簡(jiǎn)介
nc是netcat的簡(jiǎn)寫,是一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)工具,有著網(wǎng)絡(luò)界的瑞士軍刀美譽(yù)。nc命令在linux系統(tǒng)中實(shí)際命令是ncat,nc是軟連接到ncat。nc命令的主要作用如下:
實(shí)現(xiàn)任意TCP/UDP端口的偵聽(tīng),nc可以作為server以TCP或UDP方式偵聽(tīng)指定端口端口的掃描,nc可以作為client發(fā)起TCP或UDP連接機(jī)器之間傳輸文件機(jī)器之間網(wǎng)絡(luò)測(cè)速
nc如果找不到nc命令可以使用yum install -y nc安裝,其中centos6系統(tǒng)安裝的是nc-1.84-24.el6.x86_64,centos7安裝的是nmap-ncat-6.40-19.el7.x86_64。
二、使用示例
1、驗(yàn)證服務(wù)器端口是否通
如下驗(yàn)證172.16.7.78服務(wù)器的80端口通,81端口不通。

2、拷貝文件
首先在文件接收終端test2機(jī)器上激活nc監(jiān)聽(tīng)

然后在文件發(fā)送終端test1機(jī)器上發(fā)送文件

在test2上檢查文件是否已成功接收

3、終端之間通信聊天
test1主機(jī)上啟動(dòng)nc監(jiān)聽(tīng),ctrl+C中斷通信。

test2上連接監(jiān)聽(tīng),ctrl+C中斷通信。

4、端口掃描
端口掃描,通的端口返回succeeded,不通的端口返回refused。此掃描基于nc-1.84-24.el6.x86_64。
[root@test1 /]# nc -v -w 1 172.16.7.78 -z 22-81
Connection to 172.16.7.78 22 port [tcp/ssh] succeeded!
nc: connect to 172.16.7.78 port 23 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 24 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 25 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 26 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 27 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 28 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 29 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 30 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 31 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 32 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 33 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 34 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 35 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 36 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 37 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 38 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 39 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 40 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 41 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 42 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 43 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 44 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 45 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 46 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 47 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 48 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 49 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 50 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 51 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 52 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 53 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 54 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 55 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 56 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 57 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 58 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 59 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 60 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 61 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 62 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 63 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 64 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 65 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 66 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 67 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 68 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 69 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 70 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 71 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 72 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 73 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 74 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 75 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 76 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 77 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 78 (tcp) failed: Connection refused
nc: connect to 172.16.7.78 port 79 (tcp) failed: Connection refused
Connection to 172.16.7.78 80 port [tcp/http] succeeded!
nc: connect to 172.16.7.78 port 81 (tcp) failed: Connection refused
5、驗(yàn)證UDP端口
[root@test1 ~]# nc -uvz 192.168.0.125 111
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.0.125:111.
Ncat: UDP packet sent successfully
Ncat: 1 bytes sent, 0 bytes received in 2.04 seconds.
6、測(cè)速網(wǎng)速
測(cè)速網(wǎng)速需要結(jié)合dstat命令查看。
安裝dstat命令
[root@test1 ~]# yum install -y dstat
[root@test2 ~]# yum install -y dstat
test1主機(jī)上監(jiān)聽(tīng)端口
[root@test1 ~]# nc -l 33333 >/dev/null
test2主機(jī)上發(fā)送數(shù)據(jù),全0數(shù)據(jù)
[root@test2 ~]# nc 192.168.0.124 33333 </dev/zero
查看流量
[root@test1 ~]# dstat
[root@test2 ~]# dstat


三、使用語(yǔ)法及參數(shù)說(shuō)明
1、使用語(yǔ)法
用法:ncat [options] [hostname] [port]
2、參數(shù)說(shuō)明
| 參數(shù) | 參數(shù)說(shuō)明 |
|---|---|
| -4 | Use IPv4 only |
| -6 | Use IPv6 only |
| -U, --unixsock | 僅使用Unix域套接字 |
| -C, --crlf | 將crlf用于EOL序列 |
| -c, --sh-exec <command> | 通過(guò)/bin/sh執(zhí)行給定的命令 |
| -e, --exec <command> | 執(zhí)行給定的命令 |
| –lua-exec <filename> | 執(zhí)行給定的lua腳本 |
| -g hop1[,hop2,…] | 松散源路由躍點(diǎn)(最多8個(gè)) |
| -G <n> | 松散源路由躍點(diǎn)指針(4,8,12,…) |
| -m, --max-conns <n> | 最大同時(shí)連接數(shù) |
| -h, --help | 幫助顯示此幫助屏幕 |
| -d, --delay <time> | 讀/寫之間的延遲 |
| -o, --output <filename> | 將會(huì)話數(shù)據(jù)轉(zhuǎn)儲(chǔ)到文件 |
| -x, --hex-dump <filename> | 將會(huì)話數(shù)據(jù)作為十六進(jìn)制轉(zhuǎn)儲(chǔ)到文件 |
| -i, --idle-timeout <time> | 空閑讀/寫超時(shí) |
| -p, --source-port port | 指定要使用的源端口 |
| -s, --source addr | 指定要使用的源地址(不影響-l) |
| -l, --listen | 綁定并偵聽(tīng)傳入連接 |
| -k, --keep-open | 在偵聽(tīng)模式下接受多個(gè)連接 |
| -n, --nodns | 不通過(guò)DNS解析主機(jī)名 |
| -t, --telnet | 應(yīng)答telnet協(xié)商 |
| -u, --udp | 使用udp而不是默認(rèn)TCP |
| –sctp | 使用sctp而不是默認(rèn)的TCP |
| -v, --verbose | 設(shè)置詳細(xì)級(jí)別(可以多次使用) |
| -w, --wait <time> | 連接超時(shí)時(shí)間,單位秒 |
| -z | 僅報(bào)告連接狀態(tài) |
| –append-output | 追加而不是重?fù)糁付ǖ妮敵鑫募?/td> |
| –send-only | 忽略接收;退出EOF |
| –recv-only | 從不發(fā)送任何東西 |
| –allow | 給定主機(jī)連接到Ncat |
| –allowfile | 允許連接到Ncat的主機(jī)的文件 |
| –deny | 給定主機(jī)連接到Ncat |
| –denyfile | 拒絕連接到Ncat的主機(jī)文件 |
| –broker | 啟用Ncat的連接代理模式 |
| –chat | 開(kāi)始一個(gè)簡(jiǎn)單的Ncat聊天服務(wù)器 |
| –proxy <addr[:port]> | 指定要通過(guò)代理的主機(jī)地址 |
| –proxy-type <type> | 指定代理類型(“http”或“socks4”或“socks5”) |
| –proxy-auth <auth> | 通過(guò)HTTP或SOCKS代理服務(wù)器進(jìn)行身份驗(yàn)證 |
| –ssl | 使用ssl連接或偵聽(tīng) |
| –ssl-cert | 指定用于偵聽(tīng)的ssl證書(shū)文件(PEM) |
| –ssl-key | 指定用于偵聽(tīng)的ssl私鑰(PEM) |
| –ssl-verify | 證書(shū)的信任和域名 |
| –ssl-trustfile | 包含可信ssl證書(shū)的PEM文件 |
| –ssl-ciphers | Cipherlist包含要使用的ssl密碼 |
| –version | 查看命令版本 |
到此這篇關(guān)于Linux nc命令使用示例的文章就介紹到這了,更多相關(guān)Linux nc命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用kernel提供的接口打印進(jìn)程號(hào)(pid)
我們知道linux是模塊化的內(nèi)核。實(shí)現(xiàn)模塊、利用kernel提供的接口,首先了解寫模塊的基本框架。下面的c文件就是最基本的框架,當(dāng)然還有怎樣添加一些符號(hào)變量,利用的module_param,沒(méi)用上2013-11-11
在Linux中實(shí)現(xiàn)scp命令自動(dòng)輸入密碼的方法
本文介紹了在Linux環(huán)境下使用scp命令自動(dòng)輸入密碼的三種方法:SSH密鑰認(rèn)證、sshpass工具和expect腳本,推薦使用SSH密鑰認(rèn)證以確保數(shù)據(jù)傳輸?shù)陌踩?感興趣的朋友一起看看吧2025-03-03
Linux命令之網(wǎng)絡(luò)命令route詳解
route命令是Linux系統(tǒng)中的一個(gè)網(wǎng)絡(luò)管理工具,用于顯示和操作IP路由表,它可以用來(lái)查看當(dāng)前系統(tǒng)的路由表信息,添加、刪除或修改路由表項(xiàng),以及顯示路由表中的詳細(xì)信息,本文給大家介紹Linux命令之網(wǎng)絡(luò)命令route詳解,感興趣的朋友一起看看吧2023-10-10
Shell腳本之進(jìn)制轉(zhuǎn)換器的實(shí)現(xiàn)
本文主要介紹了Shell腳本之進(jìn)制轉(zhuǎn)換器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Shell腳本之文件批量創(chuàng)建與修改的簡(jiǎn)單方法
有時(shí)需要將文件內(nèi)容進(jìn)行修改,如果文件數(shù)量不多可以一個(gè)一個(gè)修改,那么如果文件數(shù)量很多一個(gè)一個(gè)修改很麻煩,這篇文章主要給大家介紹了關(guān)于Shell腳本之文件批量創(chuàng)建與修改的相關(guān)資料,需要的朋友可以參考下2021-06-06

