我打开两个并排的 bash 窗口,一个用:netstat -anutpc | grep ESTABLISHED | grep kde
另一个用netstat -anutpc | grep -e SYN_SENT -e SYN_RECV
,然后我开始konqueror
并访问 youtube。
我获得了我的计算机发送的两个 IP SYN_SENT
(没有SYN_RECV
),但是我在ESTABLISHED
监控窗口中获得了一些在其他 bash 中没有对应 IP。
我只是想了解整个过程是如何工作的,您能解释一下为什么 ESTABLISHED 连接中有一些数据包从未被发起吗?我认为关闭 konqueror 超过 2 分钟应该会关闭与该软件相关的所有连接,因此如果我在 2 分钟后重新打开它,它应该会重新发送所有 SYN 数据包。
答案1
我猜握手只是发生太快以便您的监控注意到。该-c
选项不真的连续;它所做的就是重复输出每一秒,事实上大多数 TCP 握手都比这快得多。
如果你真的想要一个居住进给,使用下列之一:
Linux连接跟踪事件——显示防火墙发现的新连接和被破坏的连接:
conntrack -E -p tcp
用于
-p tcp
仅过滤 TCP;否则也会显示 UDP。尽管 UDP 本身是无连接的,但会保留状态以用于防火墙或 NAT 目的。原始 TCP/IP 数据包 — 显示带有 SYN、FIN 或 RST 标志的 TCP 数据包:
tcpdump -n -i eth0 "tcp[tcpflags] & (tcp-syn|tcp-fin|tcp-rst) != 0" tshark -n -i eth0 "tcp[tcpflags] & (tcp-syn|tcp-fin|tcp-rst) != 0"
(您也可以只过滤
"tcp"
或完全删除过滤器。)