readlink -f $(which nc)

![在这里插入图片描述]()


要安装`netcat`包,先配置`epel`源: <;

安装netcat

yum install netcat -y

`!!注意`: 安装后`nc`命令会变成`netcat`,不再是`nmap-ncat`.  
 建议`卸载`nmap-ncat

卸载nmap-ncat

yum autoremove nmap-ncat -y

查看`nc`符号连接指向的位置

查看nc符号连接指向的位置

readlink -f $(which nc)

![在这里插入图片描述]()


  

## netcat常用参数


参考: <https://blog.konghy.cn/2020/04/03/linux-natcat/>




| 参数 | 释义 |
| --- | --- |
| -k | 在当前连接结束后保持继续监听 |
| -l | 用作端口监听,而不是发送数据 |
| -n | 不使用 DNS 解析 |
| -N | 在遇到 EOF 时关闭网络连接 |
| -p | 指定源端口 |
| -u | 使用 UDP 协议传输 |
| -v | (Verbose)显示更多的详细信息 |
| -w | 指定连接超时时间 |
| -z | 不发送数据 |


  

### 使用netcat创建TCP客户端和服务器

创建TCP服务器

-l 监听地址 端口

nc -l 127.0.0.1 8080

客户端以TCP协议连接到服务端

nc 127.0.0.1 8080

### 测试tcp端口

测试百度的80端口是否畅通

-v 详细信息

-w 指定连接超时时间

nc -v -w 2 baidu.com 80

![在这里插入图片描述]()


  

### 使用netcat创建UDP客户端和服务器

创建UDP服务器

-l 监听地址 端口

-u 使用udp协议

-v 显示详情

nc -luv 0.0.0.0 8081

查看是否8081在UDP上被监听

netstat -antup

客户端以UDP协议连接到服务端

-u 使用udp协议

-v 显示详情

nc -uv 目的地IP 8080

![在这里插入图片描述]()


  

### 测试udp端口

netcat 测试udp端口

-v 详细信息

-u udp

nc -vu 114.114.114.114 53

![在这里插入图片描述]()


  

## windows使用netcat测试UDP端口

安装netcat工具

$ choco install netcat -y

参考: <https://cloud.tencent.com/developer/article/1619766>  
 Windows版nc不要使用`-z`参数,`-z`误导人

失败示例(括号中是?号)

-v 显示详情

-u 使用udp协议连接

C:>nc -vu 1.1.1.1 5555

示例:

成功示例(括号中是协议名)

C:\windows\system32>nc -vu 1.1.1.1 5566

如上所示,如果返回结果中,端口号后面的括号中返回的是?号,则说明相应的UDP端口访问失败;  
 如果返回的是具体的协议类型,则说明相应的UDP端口访问正常。


  

## Linux使用nmap测试udp端口


  

### Centos7使用nmap扫描udp端口


`使用前`请安装最新版并`更新特征库` <;

使用nmap测试udp端口

nmap -sU 1.1.1.1 -p 5555 -Pn

`STATE`为`open`是正常打开的状态  
 `STATE`为`filtered`是被阻断或者没有打开的状态