我有3台机器:
- 1 台带 LAN 卡的服务器,无需直接访问 Internet
- 1 台 Windows 主机,具有用于互联网的 WiFi 连接和 1 个 LAN 端口
- Windows主机上有1个linux虚拟机
[Server_without_internet]---[Linux_VM]---[Windows_host]
- 服务器_无_互联网:eth0 - > 192.168.1.1
- Linux_VM_WiFi_NAT:wlan0 -> 10.0.2.15
- Linux_VM_LAN_bridge_card:eth0 -> 192.168.1.254
- Windows_LAN:192.168.1.2
- Windows_WiFi:172.16.1.1 / 10.0.2.1(NAT Linux 至 10.0.2.15)
我想使用 iptables 转发来访问 [Server_without_Internet]。
路线:
- Server_without_internet、Linux_VM_LAN_bridge_card、Windows_LAN:192.168.1.0/24 通过 192.168.1.254
- Linux_VM_WiFi_NAT :0.0.0.0 通过 10.0.2.1 (172.16.1.1)
我启用 IPv4 转发:
sysctl -w net.ipv4.ip_forward=1
我将 iptables 配置为 Linux_VM,如下所示:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0-o wlan0 -j ACCEPT
平:
- Ping 正常:192.168.1.1 至 1.2
- Ping 成功:192.168.1.1 至 1.254
- Ping 正常:192.168.1.2 至 1.1
- Ping 成功:192.168.1.2 至 1.254
- Ping 正常:192.168.1.254 至 1.1
- Ping 正常:192.168.1.254 至 1.2
- Ping 正常:10.0.2.15 至 8.8.8.8
- Ping 成功:172.16.1.1 / 10.0.2.1 至 8.8.8.8
- 高平:192.168.1.1 至 8.8.8.8
提醒我尝试从 [Server_without_server] 通过 [Linux_VM] 访问互联网
当我在 Linux_VM 上检查 tcpdump 时:
- tcpdump -i eth0 -vvnn :我看到对 8.8.8.8 的回显请求
- tcpdump -i wlan0 -vvnn :我看到对 8.8.8.8 的回显请求,但没有看到回显回复
所以 eth0 转发到 wlan0 与 iptables 工作,但我没有返回。
有人有主意吗?
谢谢
编辑
我添加了 conntrack iptables cli 和 IP 公共 icmp 测试工作。
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
现在 DNS 解析器不起作用。在服务器 /etc/resolv.conf 中,我有 Google DNS 和 OpenDNS DNS。
一个主意 ?
谢谢