希望有人可以帮助我并了解我的设置中出了什么问题。
我在 m TP Link 路由器上安装了 OpenWrt Chaos Calmer 15.05。路由器已连接 WAN,并在 192.168.1.0/24 子网上设有 WiFi 和有线子网。OpenVPN 服务器运行良好,我可以毫无问题地连接 iPhone、Android 等。
我在远程位置使用 Android 作为 WiFi 热点与家人共享互联网。子网 192.168.43.0/24。最近一周,我认为能够通过远程网络从家庭网络访问会很好,因为我有一些想要访问的摄像头。我无法从移动网络供应商处获取公共 IP 地址。我 root 了我的 Android 手机,并在该手机上安装 OpenVPN 客户端应用程序,然后连接到家庭 OpenVPN 服务器。手机能够使用 VPN,能够 ping 家庭网络路由器并通过 VPN 访问互联网,但两个子网中的任何其他设备都无法 ping 或访问彼此。
隧道在网络 10.8.0.0 上设置,远程 Android 获取 IP 地址 10.8.0.10。
我开始在远程子网上尝试通过隧道获取所有设备的访问权限,并能够访问 192.168.1.0/24 网络上的设备。几个小时后,我通过在防火墙和路由器中进行以下更改开始工作。这是在 Android 设备上运行的:
iptables -t filter -F FORWARD
iptables -t nat -F POSTROUTING
iptables -t filter -I FORWARD -j ACCEPT
iptables -t nat -I POSTROUTING -j MASQUERADE
ip rule add from 192.168.43.0/24 lookup 61
ip route add table 61 default dev tun0
ip route add table 61 192.168.43.0/24 dev wlan0
ip route add table 61 broadcast 255.255.255.255 dev wlan0
因此现在 192.168.43.0/24 子网上的所有设备都可以 ping 192.168.1.0/24 上的所有设备,当然所有流量都通过隧道路由到互联网。
我尝试在家中设置类似的路由,以便让网络 192.168.1.0/24 上的设备也能访问远程子网,但没有成功。我猜想防火墙正在阻止,或者这不可能,隧道是否无法“看到”远程子网,而只能看到单个主机?
我尝试通过 10.8.0.10 dev tun0 添加到 192.168.43.0/24 的路由,但超时了。
我的路由器上的路由看起来像这样(我已经屏蔽了我的公共 IP 地址)。
Destination Gateway Genmask Flags Metric Ref Use Iface
default ua-8xxxxx 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 * 255.255.255.255 UH 0 0 0 tun0
85.x.x.0 * 255.255.240.0 U 0 0 0 eth0
85.x.x.1 * 255.255.255.255 UH 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 br-lan
192.168.43.0 10.8.0.10 255.255.255.0 U 0 0 0 tun0
请注意,路由器没有 ip 命令,并且我假设只有一个路由表。
我对 iptables 非常不确定,我使用过这些命令:
iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -d 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD -i tun0 -o eth1 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD -i eth0 -o eth1 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -I POSTROUTING -o eth1 -s 10.8.0.0/24 -j MASQUERADE
iptables -t nat -I POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE
如果这是一个可行的设置,请帮助我解决这个问题。