
语法:
nc
[-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
参数说明:
-g<网关>
设置路由器跃程通信网关,最丢哦可设置8个。
-G<指向器数目>
设置来源路由指向器,其数值为4的倍数。
-h
在线帮助。
-i<延迟秒数>
设置时间间隔,以便传送信息及扫描通信端口。
-l
使用监听模式,管控传入的资料。
-n
直接使用IP地址,而不通过域名服务器。
-o<输出文件>
指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口>
设置本地主机使用的通信端口。
-r
乱数指定本地与远端主机的通信端口。
-s<来源位址>
设置本地主机送出数据包的IP地址。
-u
使用UDP传输协议。
-v
显示指令执行过程。
-w<超时秒数>
设置等待连线的时间。
-z
使用0输入/输出模式,只在扫描通信端口时使用。
实例:
1、TCP端口扫描
#
nc
-v
-z
-w2
127.0.0.1
1-100
Connection
to
127.0.0.1
22
port
[tcp/ssh]
succeeded!
Connection
to
127.0.0.1
53
port
[tcp/domain]
succeeded!
Connection
to
127.0.0.1
80
port
[tcp/http]
succeeded!
...
nc:
connect
to
127.0.0.1
port
100
(tcp)
failed:
Connection
refused
2、从192.168.1.2拷贝文件到192.168.1.3
首先在接收端192.168.1.3上:
nc
-l
1234
>
test.txt
然后在发送端192.168.1.2上:
nc
192.168.1.3
<
test.txt
注意:先运行接收端,指定一个端口为1234,文件为test.txt,再执行发送端,并且发送端必须存在同名的文件test.txt
3、传输目录
从server1(192.168.16.233)拷贝nginx目录内容到server2(192.168.48.47)上。需要先在server2上,用nc激活监听,
server2上运行:#
nc
-l
1234
|
tar
xzv-
server1上运行:#
tar
czv-
nginx
|
nc
192.168.48.47
1234
4、简单聊天工具
在192.168.1.2上:
nc
-l
1234
在192.168.1.3上:
nc
192.168.1.2
1234
这样,双方就可以相互交流了。使用ctrl+C(或D)退出
我们在检测远程服务是否正常时,经常会用一些工具(命令)来检测端口是否开启,来确定服务是否正常。通常可用于检测的工具有nc、socat、nmap等,基本思想是向远端指定端口发送数据,看其状态。
远端:192.168.0.15
本端:192.168.0.10
单向检测(适用于无法登录远端服务查看的情况)
如果返回succeeded,则说明相应的UDP端口访问正常。
如果无任何返回信息,则说明相应的UDP端口访问失败。
nc -uvz $IP $Port. //UDP
nc -vz $IP $Port //TCP
远端不监听1777端口情况
# nc -uvz 192.168.0.15 1777
#
远端监听1777端口
# nc -ul 1777
XXXXX
# nc -uvz 192.168.0.15 1777
Connection to 192.168.0.15 1777 port [udp/powerguardian] succeeded!
如果succeeded,则无任何返回,如果failed则返回Connection refused。
echo "This socat udp test." | socat - udp-connect:$IP:$Port
远端不监听1777端口,本端发送udp数据至远端指定端口。
# echo "This socat udp test." | socat - udp-connect:192.168.0.15:1777
2017/06/18 14:26:39 socat[22195] E read(3, 0xb48a20, 8192): Connection refused
远端开启监听,本端再次发送。
# nc -ul 1777
This socat udp test.
# echo "This socat udp test." | socat - udp-connect:192.168.0.15:1777
#
用指定协议扫描远端指定端口
nmap -sU -p $Port $IP
# nmap -sU -p 1777 192.168.0.15
Starting Nmap 5.51 ( http://nmap.org ) at 2017-06-18 14:35 CST
Nmap scan report for host-192-168-0-15 (192.168.0.15)
Host is up (0.00098s latency).
PORT STATE SERVICE
1777/udp closed unknown
MAC Address: FA:16:3E:1A:54:30 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
可以通过传输文本及文件来测试UDP端口是否正常(先开监听,再发送)
远端:nc -ul $Port
本端: nc -u $IP $Port
在本端键入任意字符,看远端是否可以收到。
远端:nc -l $Port >$Filename
本端:nc $IP $Port <$Filename
可以执行md5sum看两端的文件md5是否相同
注:如果是检测tcp协议端口,上述nc命令中,去掉参数-u即可。另外,也可以使用telnet $IP $Port来完成
$ nc -vzw 2 180.76.148.122 22-81 //显示详细信息,包含失败的
$ nc -zw 2 180.76.148.122 22-81 //不显示详细信息,只包含成功的,如果检测udp端口,可用"vzw"参数,"z"参数表示连接成功后立即关闭连接
Connection to 180.76.148.122 port 22 [tcp/ssh] succeeded!
Connection to 180.76.148.122 port 80 [tcp/http] succeeded!
附全面的ncat使用方法: https://linux.cn/article-9190-1.html
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)