Iptables
tcpdump 沒有接收到由 iptables 重定向的流量
以下 iptables 規則用於將來自 eth1 的所有 Internet 流量重定向到 localhost 的埠 3000(介面 lo 與 ip 127.0.0.1):
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3000
然後設置 tcpdump 來記錄 lo 介面的所有流量:
tcpdump -i lo -w output.dump
但是,在我通過 eth1 發送了一些 Internet 流量(埠 80)後,tcpdump 不會記錄此流量。
我不確定為什麼會這樣。有人可以闡明一下嗎?謝謝。
當您將 IP 數據包目標重寫為本地主機的地址之一時,它不會通過地址所屬的介面(
lo
在您的情況下),而只是由堆棧直接處理。因此,您無法通過偵聽環回介面來擷取它。如果您選擇任何物理存在的介面地址,這將沒有什麼不同。如果您需要擷取對話,我建議使用適當的過濾器表達式。類似的東西
tcpdump -i lo -i eth1 host 127.0.0.1 or port 3000
應該做你想做的。