![我在 Linux 中遇到了涉及端口 631 的环回流量,但我不知道是什么原因造成的](https://linux22.com/image/742004/%E6%88%91%E5%9C%A8%20Linux%20%E4%B8%AD%E9%81%87%E5%88%B0%E4%BA%86%E6%B6%89%E5%8F%8A%E7%AB%AF%E5%8F%A3%20631%20%E7%9A%84%E7%8E%AF%E5%9B%9E%E6%B5%81%E9%87%8F%EF%BC%8C%E4%BD%86%E6%88%91%E4%B8%8D%E7%9F%A5%E9%81%93%E6%98%AF%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%E9%80%A0%E6%88%90%E7%9A%84.png)
答案1
当流量试图通过环回接口中的端口 631/tcp 流动时,我相信本地进程正在尝试联系 CUPS 守护程序并打印一些内容。不幸的是,我无法从提供的 PCAP 文件中获取有关它的其他信息,因为捕获的所有 TCP 数据包都没有传达有效负载。我只能看到一个进程可能在发生故障后关闭连接套接字并使用新的套接字重试。
不久前,我遇到了类似的问题。为了从频繁尝试与已关闭的本地端口建立连接的进程中收集信息,我使用了以下策略:
蜜罐技术
在终端选项卡中,我启动了一个酶联免疫吸附试验监听 631/tcp 端口连接的进程:
# ncat -l -p 631 -k -vv
然后,在另一个终端选项卡中,我运行了一个动态 Bash 脚本,收集有关连接到端口的进程的信息:
# while sleep 0.1; do ss -tapen state established 'dport = 631' > output.txt ; fgrep -wq 631 output.txt && cat output.txt; done
IPTABLES/NFTABLES 日志记录
我在 OUTPUT 链中创建了一个即时 IPTABLES/NFTABLES 规则,将连接信息记录到 SYSLOG:
# iptables -I OUTPUT -p tcp --syn --dport 631 -j LOG --log-prefix 'WHOIS? ' --log-level warning --log-uid
# nft insert rule ip filter OUTPUT tcp dport 631 tcp flags '&(fin|syn|rst|ack)' == syn counter log prefix '"WHOIS? "' level warn flags skuid
答案2
即从 127.0.0.1 向 127.0.0.1 端口 631 发送 10 个 TCP SYN。所有 SYN 都会立即收到 RST 响应。它们之间的间隔恰好为 3.75 秒,并且每次发送的源端口都会增加 4。
正如您所注意到的,端口 631 已注册为 Internet 打印协议。可能存在与打印相关的问题。
由于 TCP 流中没有数据,而且都是本地主机,因此没有太多识别信息。跟踪尝试 TCP 连接的进程。在最近的 Linux 上,bpf 允许您使用以下脚本查看所有 TCP 连接,例如,tcp连接。这将返回连接的 PID 和 COMM。不是 cups 的东西是不寻常的。