linux端口状态检测方法

经常排查监控服务器到被监控主机的网络连接,一直使用nmap,最近发现ncat工具更好用。

ncat是linux发行版预装的工具,开箱即用。

常用语句

1 检测服务器特定端口是能连接

1
2
3
4
5
6
7
8
ncat -v 192.168.2.x 8080
#显示如下表示连接成功,对方开放了端口。
Ncat: Version 5.51 ( http://nmap.org/ncat )
Ncat: Connected to 192.x.x.x:8080.
#扫描端口列表
nc -vnz -w1 127.0.0.1 1-500
#nmap语句
nmap 192.168.2.x -p 8080

2 开启本机指定端口

1
2
nc -l localhost 5000 #默认使用tcp协议
nc -lu localhost 5000 #开启udp 5000端口

3 传输信息

1
2
3
4
5
6
7
8
9
10
11
#接受端开启端口
nc -lu localhost 5000
#发送端发送信息
echo -n "foo" | nc -u -w1 192.168.1.8 5000
## A——>B传文件
nc -l 5000 >test.txt#Bhost
nc hostB 5000 <test.txt

##A->B传目录
nc -l 5000 |tar xvf - #Bhost
tar cvf - /path/to/dir | nc hostB 5000

4 使用代理服务器连接

1
nc -x10.2.3.4:8080 -Xconnect host.example.com 42

参考
https://blog.gtwang.org/linux/linux-utility-netcat-examples/