![iptables 转发 E3531 的 web 界面](https://linux22.com/image/756179/iptables%20%E8%BD%AC%E5%8F%91%20E3531%20%E7%9A%84%20web%20%E7%95%8C%E9%9D%A2.png)
我有一台 Raspberrypi,带有一个连接到互联网的 E3531 UMTS Stick。由于 Rpi 是无头的,因此我想通过 Rpi 的 IP 来访问 Stick 的 Web 界面。
Stick 构建了一个 192.168.8.0/24 网络,其中接口具有 192.168.8.1,而 Rpi 始终获得 192.168.8.100。通过简单的 http 访问 Web 界面。可以通过 wiregurad vpn(在 stick 上构建)访问 Rpi,其中它具有 10.253.3.4/24,也可以通过其维护 eth0 物理 lan 接口访问,其具有 192.168.13.24/24。理想情况下,Web 界面应该可以通过两种方式访问。
我的第一个方法是局域网接口遵循两个规则:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.8.1:80
iptables -t nat -A POSTROUTING -o enx001e101f0000 -j MASQUERADE
第一条规则将 Rpi 本身的 eth0 的 http 请求转发到 web 界面,第二条规则伪装棒接口的源地址(enx001e101f0000)
不幸的是,它不起作用。如果我在浏览器中访问 Rpi,
http://192.168.13.24
请求将更改为,并显示http://192.168.8.1/html/index.html?url=192.168.13.24
错误。ERR_ADDRESS_UNREACHABLE
我在这里遗漏了什么?这个“url”查询参数来自哪里?
先感谢您
答案1
这是由于棒上的 http 服务器的配置所致,您无法更改它(至少不是永久的,并且不能修改固件)。
一个选项是运行反向代理并重写从棒返回的 URL。
更高层次的问题是,为什么首先需要三个 DHCP 服务器。考虑禁用其中一个以简化设置。