![管理家庭 LAN 路由的 iptables](https://linux22.com/image/3092/%E7%AE%A1%E7%90%86%E5%AE%B6%E5%BA%AD%20LAN%20%E8%B7%AF%E7%94%B1%E7%9A%84%20iptables.png)
我家里有局域网。
- 一台 Netgear 路由器 - 192.168.0.1 连接到互联网。
- 一台 Macbook - 192.168.0.10(连接到 Netgear 路由器)
- 一台装有 Kali Linux 的 PC - 192.168.0.20(也连接到 Netgear)
我正在尝试通过 PC 路由所有 Macbook 流量。因此,我在 Macbook 代理服务器地址上设置了网络设置 - 192.168.0.20 (PC)。我对此没有任何问题 - 所有数据包都会发送到 PC(当然通过 Netgear 路由器)。没关系。但..
如何管理 Linux 上的 NAT 表以将 Macbook 的流量路由到路由器(从而路由到互联网)?
我尝试做这样的事情,但它不能正常工作:
iptables -t nat -A PREROUTING -s 192.168.0.10 -j DNAT --to-destination 192.168.0.1
iptables -t nat -A POSTROUTING -s 192.168.0.10 -j SNAT --to-source 192.168.0.20
通过此设置,我在 Mac 上的浏览器中出现 BAD REQUEST 400。
答案1
你应该忘记你的DNAT
台词。它在这里没有做任何有用的事情。
另外,您应该使用-j MASQUERADE
而不是-j SNAT --to-source 192.168.0.20
.
您还需要确保 Linux 机器上的 IP 转发已打开。