我有一个基于 Ubuntu 的虚拟机,它有一个界面ens4
。
我想用它来进行 IP 转发和伪装。
目的是确保如果10.238.232.19:443
在接口上发出请求,则从同一接口ens4
转发该请求。 两个 CIDR 范围都可以从 VM 访问。172.20.0.42:443
ens4
我为此使用的命令是
iptables -t nat -F
iptables -t nat -A POSTROUTING -o ens4 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -d 10.238.232.14 --dport 443 -j DNAT --to-destination 172.20.0.42:443
iptables -t nat -A POSTROUTING -p tcp -d 172.20.0.42 --dport 443 -j SNAT --to-source 10.238.232.14
我已通过运行以下两个命令启用了日志记录
iptables -t nat -I PREROUTING 1 -j LOG
iptables -t nat -I POSTROUTING 1 -j LOG
因此,当我访问时10.238.232.19:443
,我只能通过 Chrome 浏览器进行连接,而我在虚拟机上看到的唯一日志是
Feb 12 00:53:12 <VM> kernel: [10623.966319] IN=ens4 OUT= MAC=42:01:0a:ee:e8:13:42:01:0a:ee:e8:01:08:00 SRC=10.177.75.199 DST=10.238.232.19 LEN=64 TOS=0x00 PREC=0x00 TTL=59 ID=0 DF PROTO=TCP SPT=59341 DPT=443 WINDOW=65535 RES=0x00 SYN URGP=0
我在这里遗漏了什么?