9 是什么
9 号端口是 RFC 863 定义的 discard 服务:收到任何数据都直接丢弃,不返回内容。它本身没有业务价值,用处在于单向发送测试——把数据打进对端黑洞,验证「能不能发出去」并测量吞吐,而不受服务端处理逻辑干扰。
现状与出现场景
主流系统的出厂配置都不开启 discard,只有测试环境或调试用的服务管理程序配置里会出现。因此扫描结果中出现 9 端口开放,通常意味着目标运行着老式服务管理程序,或者存在借该端口做隐蔽通信的组件,值得进一步核实归属。
基本信息
| 服务 | discard(RFC 863) |
|---|---|
| 协议 | TCP 与 UDP |
| 用途 | 单向发送测试、吞吐基准 |
| 现状 | 默认关闭,仅测试环境使用 |
| 安全等级 | 生产环境不应开放 |
典型使用场景
- 验证单向链路:确认数据能从本机发到对端,先排除回程问题
- 做吞吐基准:把大文件送入黑洞,观察发送速率
- 配合回显服务分别验证发送方向与回环方向
- 调试网络设备时确认转发路径是否通畅
- 资产核查中确认 9 端口是否为遗留的测试服务
发送与测试
发送与测试
dd if=/dev/zero bs=1M count=10 | nc -w1 192.0.2.10 9 # 发送 10MB 到黑洞
nc -u 192.0.2.10 9 </dev/null # UDP 方向探测
ss -lunp | grep ':9 ' # 确认本机是否有服务监听清理遗留测试服务
清理遗留测试服务
# 传统发行版经服务管理程序提供 discard,默认关闭
# /etc/xinetd.d/discard 中 disable 字段控制启用与否
grep -rn 'discard' /etc/xinetd.d/ /etc/inetd.conf 2>/dev/null
# 确认无用后关闭并重启服务管理程序早期诊断服务
| 服务 | 端口 | 用途 |
|---|---|---|
| discard | 9 | 丢弃所有输入,用于单向测试 |
| echo | 7 | 原样返回,用于验证回环 |
| daytime | 13 | 返回时间文本,用于验证可达 |
discard 与 echo 配对使用可以分别验证发送与回环两个方向;两者同属早期网络诊断工具集,现代环境做吞吐测试更多使用专门的压测工具。
排查思路:先看监听进程与启动方式,判断它是系统服务管理程序提供还是某个应用自带;再确认近期是否有测试任务遗留。若无人认领,按未知服务流程先限制访问再清理,不要直接删除进程了事。