端口身份
431 在 IANA 注册为 utmpcd,与 430 的 utmpsd 配对,属于 utmp 登录状态查询机制的客户端侧端口。utmp 记录的是当前登录到系统中的用户,utmpcd 的职责是向远端查询方返回这些状态,这套机制与 rwho、rusers 同源。集中认证、日志平台与监控体系普及之后,它已经没有实际使用场景。现代 Linux 发行版默认不运行 utmpcd,因此 431 上出现监听进程基本属于非预期行为,需要连同 430 一起核实并留存证据。
基本信息
| 服务名 | utmpcd(UTMP 客户端) |
|---|---|
| 协议 | TCP/UDP |
| 端口号 | 431 |
| IANA 登记说明 | (无名称展开说明) |
| 登记机构 / 注册人 | (注册表未列出) |
| 背景 | utmp 登录状态查询体系 |
| 现状 | 被现代审计体系取代 |
| 默认放行 | 无(没有任何产品默认使用) |
排查与治理场景
- 应急响应研判:先定进程,再定连接方向,最后定业务归属
- 分区与隔离策略核对:确认跨区访问是否真的需要该端口
- 容器与主机网络排查:容器端口映射后以宿主进程形式出现,两层要分别确认
- 软件来源核对:确认监听进程是否来自已知软件包或已知安装位置
- 端口回收:确认无业务依赖后,从策略与配置里彻底移除
定位占用该端口的进程
定位占用该端口的进程
ss -lntup 'sport = :431' # 列出监听中的 TCP/UDP 套接字,sport 按本地端口过滤
sudo lsof -i :431 # 需要 root 才能看到别人的进程,且会一并列出已建立连接
sudo ss -lntp 'sport = :431' # 普通用户看不到进程列时,用 sudo 重跑一次
ss -ntp 'sport = :431' # 去掉 l 参数:只看已建立的连接,排查外联行为
ls -l /proc/<PID>/exe # 由进程号反查可执行文件路径,确认程序来源
cat /proc/<PID>/cmdline # 查看启动参数,判断是常驻服务还是临时脚本
netstat -ano | findstr :431 # Windows 侧等价命令,最后一列是 PID
tasklist /fi "pid eq <PID>" # Windows 侧由 PID 反查进程名与所属服务ss 输出逐列读法
| 列 | 含义 | 正常与异常 |
|---|---|---|
| State | 套接字状态;LISTEN 为监听中,ESTAB 为已建立的连接 | 服务端口上出现非 LISTEN 状态,要结合对端地址一起判断 |
| Recv-Q / Send-Q | 接收队列与发送队列中待处理的字节数 | 监听套接字上长期非 0,说明连接没有被及时 accept |
| Local Address:Port | 本端监听地址与端口;0.0.0.0 表示所有网卡,127.0.0.1 仅本机可用 | 只想本机使用却监听在 0.0.0.0,就是对外暴露 |
| Peer Address:Port | 对端地址与端口;仅监听时显示为 *:* | 出现具体外部对端地址,说明已经建立了连接 |
| Process | users:(("名称",pid=,fd=)) 形式的进程信息 | 非 root 运行时该列可能为空,不代表端口没有所属进程 |
已经发现连接的端口不要急着杀进程:先留存证据(完整套接字输出、对端地址、进程启动参数与启动时间),再走变更流程停用,否则重启后现象很可能无法复现。
排查 430、431 时建议成对处理:两者属于同一套已退役的远程状态查询机制,只出现其中一个也足以说明环境里存在来源不明或历史遗留的进程。
Windows 侧 netstat -ano 的列依次是 Proto、Local Address、Foreign Address、State、PID:LISTENING 为监听、ESTABLISHED 为已建立连接;PID 要用 tasklist /fi "pid eq <PID>" 反查进程名,tasklist /svc 可显示该 PID 归属的服务。