netcat测试UDP端口

nc(nmap-ncat)命令测试UDP端口连通性

https://blog.csdn.net/omaidb/article/details/120028834


Linux安装netcat

nmap-ncatbug: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) 命令参数的中文翻译整理表格:

  1. 常见组合:
    • -uv:UDP 模式+详细输出
    • -zv:快速扫描+详细输出
    • -lvp 1234:监听本机TCP 1234端口并输出日志
  2. 安全特性:
    • -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端口访问正常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值