netcat测试UDP端口
nc(nmap-ncat)命令测试UDP端口连通性
https://blog.csdn.net/omaidb/article/details/120028834
Linux安装netcat
nmap-ncat
有bug
:https://bugzilla.redhat.com/show_bug.cgi?id=1744561
Ubuntu安装netcat
# 先检查Ubuntu上的nc是nmap-ncat还是netcat
readlink $(which nc)
# 查看nc版本
nc --version
# 卸载ncat
apt remove -y nat
# 安装netcat-openbsd
apt install -y netcat-openbsd
# 检查Ubuntu上的nc是nmap-ncat还是netcat-openbsd
## netcat-openbsd 的帮助信息如下:
nc -h
Centos7/Rocky8安装netcat
1. 安装epel源
Centos7/Rocky8
要安装netcat
包,要先配置epel
源: https://blog.csdn.net/omaidb/article/details/120393850
2. 卸载nc(nmap-ncat)
!!!
建议先卸载
nc(nmap-ncat)
# 卸载nmap-ncat
yum autoremove -y nmap-ncat
3. yum安装netcat
# 安装netcat
yum install -y netcat
!!注意
: 安装后nc
命令会变成netcat
,不再是nmap-ncat
.
查看nc
符号连接指向的位置
# 查看nc符号连接指向的位置
readlink -f $(which nc)
# 查看netcat版本
yum info netcat
# netcat的帮助信息如下
nc -h
netcat常用参数
参考: https://blog.konghy.cn/2020/04/03/linux-natcat/
以下是 nc(netcat)
命令参数的中文翻译整理表格:
- 常见组合:
-uv
:UDP 模式+详细输出-zv
:快速扫描+详细输出-lvp 1234
:监听本机TCP 1234端口并输出日志
- 安全特性:
-c -C cert.pem -K key.pem
:启用 TLS 加密并指定证书/私钥-X connect -x proxy:3128
:通过 HTTP CONNECT 代理建立隧道
参数 | 释义 | 英文原文 |
---|---|---|
-k | 在当前连接结束后保持继续监听,允许传入连接复用已关闭的套接字 | Keep open |
-l | 用作端口监听,而不是发送数据(等待入站连接) | Listen mode |
-n | 禁止域名和端口解析(仅显示IP) | No DNS resolve |
-N | 在标准输入结束(EOF)后关闭网络套接字 | Shutdown sock |
-P | 指定代理认证的用户名 | Proxy user |
-p | 指定源端口 | Source port |
-u | 使用 UDP 协议传输 | UDP mode |
-v | 输出详细过程信息 | Verbose |
-w | 指定连接超时时间 | Timeout |
-z | 启用零交互模式(用于扫描) | Zero I/O |
使用netcat创建UDP客户端和服务器
# 创建UDP服务器
## -l 监听地址 端口
## -u 使用udp协议
## -v 显示详情
nc -luv 0.0.0.0 8888
# 查看是否8081在UDP上被监听
netstat -anup
# 客户端以UDP协议连接到服务端
## -u 使用udp协议
## -v 显示详情
nc -uv 目的地IP 8888
测试udp端口
# netcat 测试udp端口
## -v 详细信息
## -u udp
nc -vu 1 223.5.5.5 53
## -z 零写入
## -w 超时
nc -vuzw 1 223.5.5.5 53
使用netcat创建TCP客户端和服务器
# 创建TCP服务器--默认是tcp协议
## -l 监听地址 端口
## -v 显示详情
nc -lv 8888
# 客户端以TCP协议连接到服务端
## -v 显示详情
nc -v 127.0.0.1 8080
测试tcp端口
# 测试百度的80端口是否畅通
## -v 详细信息
## -w 指定连接超时时间
nc -vw 2 baidu.com 80
Netcat发送文件到远端
发送端
# 安装pv以显示进度条
apt install -y pv
dnf install -y pv
## -l 监听地址 端口
## -N:连接关闭后立即终止传输(避免因缓冲区残留导致客户端挂起)
## -v 显示详情
pv file1 | nc -lNv 8888
这个命令会将 file 的内容输出到本地的 1234 端口中,然后不论谁连接此端口,file 的内容将会发送到连接过来的 IP。
接收端
:
# 安装pv以显示进度条
apt install -y pv
dnf install -y pv
## -v 显示详情
## -w 5:设置超时时间为 5 秒
nc -vw 5 发送端ip 8888 | pv > file
这条命令将连接发送端的电脑,接受 file 内容保存。
Netcat使用udp端口发送文件到远端
# 发送端
## -l 监听地址 端口
## -u:启用 UDP 协议
## -N:连接关闭后立即终止传输(避免因缓冲区残留导致客户端挂起)
## -v 显示详情
## -w 5 设置超时时间为 5 秒,udp不设置w5,发送完数据不会自动退出
pv 文件名 | nc -lNuvw 5 8888
# 接收端
## -u:启用 UDP 协议
## -v 显示详情
## -w 5 设置超时时间为 5 秒
nc -vuw 5 192.168.50.150 8888 | pv > 文件名
windows使用netcat测试UDP端口—不可用
Choco源中已不供应
netcat.需要手动下载安装包
# 安装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
示例:
# 成功示例(括号中是协议名)
nc -vu 1.1.1.1 5566
如上所示,如果返回结果中,端口号后面的括号中返回的是?号,则说明相应的UDP端口访问失败;
如果返回的是具体的协议类型,则说明相应的UDP端口访问正常。