我在 iptables 中插入了一条规则,用于跟踪某个 IP 地址的输入使用情况。vps 服务器的 IP 是 192.168.1.5,客户操作系统的 IP 是 192.168.1.115。我在客户操作系统中运行“yum update”以获取一些网络流量。然后我iptables -vnL
从虚拟机管理程序中运行。但是,它只向主机显示网络使用情况,而不向客户机显示。
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target source destination
0 0 0.0.0.0/0 0.0.0.0/0 destination IP range 192.168.1.115-192.168.1.115
1853 114K 0.0.0.0/0 0.0.0.0/0 destination IP range 192.168.1.5-192.168.1.5
我运行了tcpdump
,日志显示有数据包发往客户操作系统。
16:17:43.932514 IP mirrordenver.fdcservers.net.http > 192.168.1.115.34471: Flags [.], seq 17694667:17696115, ack 1345, win 113, options [nop,nop,TS val 1060308643 ecr 1958781], length 1448
16:17:43.932559 IP 192.168.1.115.34471 > mirrordenver.fdcservers.net.http: Flags [.], ack 17696115, win 15287, options [nop,nop,TS val 1958869 ecr 1060308643], length 0
为什么无法跟踪客户操作系统的网络使用情况?
iptables -L
将返回如下的 INPUT 链:
Chain INPUT (policy ACCEPT)
target prot opt source destination
all -- anywhere anywhere destination IP range 192.168.1.115-192.168.1.115
all -- anywhere anywhere destination IP range 192.168.1.5-192.168.1.5
all -- anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 all -- * * 0.0.0.0/0 0.0.0.0/0 destination IP range 192.168.1.1-192.168.1.249
答案1
您没有说明如何安排流量从 VPS 服务器的物理网卡传输到 VPS 的虚拟网卡,但这可能是路由事务。如果是这样,那么到 VPS 的流量将不会出现在 VPS 服务器的INPUT
链上,而是出现在FORWARD
链上。