我有这样的设置:
- 树莓派通过网线连接到路由器
- 在 eth0 和 wlan0 之间创建桥接连接
- 用于
hostapd
Wi-Fi 热点 - 配置了与我的一台在线服务器的 l2tp/ipsec 连接
我遇到的问题和目标:
- 目标是让这个 Raspberry Pi 作为 Wi-Fi 路由器,通过我的 VPN 路由所有通过 Wi-Fi 传入的流量
- 我遇到的问题问题是,当我执行curl 操作时,Raspberry Pi 正在使用VPN 隧道,但所有连接的Wi-Fi 访客都无法获取VPN IP。
界面示例:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether b8:27:eb:21:2b:9a brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether b8:27:eb:21:2b:9a brd ff:ff:ff:ff:ff:ff
inet 192.168.1.7/24 brd 192.168.1.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::ba27:ebff:fe21:2b9a/64 scope link
valid_lft forever preferred_lft forever
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether b8:27:eb:74:7e:cf brd ff:ff:ff:ff:ff:ff
6: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc pfifo_fast state UNKNOWN group default qlen 3
link/ppp
inet 192.168.42.11 peer 192.168.42.1/32 scope global ppp0
valid_lft forever preferred_lft forever
路由表:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 br0
45.36.81.212 192.168.1.1 255.255.255.255 UGH 0 0 0 br0
63.126.53.74 192.168.1.1 255.255.255.255 UGH 0 0 0 br0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.42.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
45.36.81.212 是我的 VPN
63.126.53.74 是我自己的本地公共 IP
(由于显而易见的原因,ips 已略有更改)。
操作系统: 树莓派
将 wlan0 转发到 ppp0 可以解决问题,还是我需要篡改 br0?
答案1
我有一个类似的设置,其中一些客户端使用作为 VPN 隧道设备的网关,而其他客户端则使用常规的旧 ISP 提供的互联网连接到家里。
我没有在 VPN 网关上桥接 wifi 和以太网。相反,该机器运行 VPN 客户端。这迫使 VPN 网关检查路由表来处理网桥将绕过的流量。
在 VPN 网关上我有三个 IP:
- eth0:192.168.1.254
basically just a client on my main network
- 以太网1:192.168.2.1
the gateway for the alternate network
- tun0:10.2.3.5
this is a VPN tunnel, and the IP is different every time the tunnel comes up
我还在 VPN 网关上维护 3 条静态路由:
- 默认路由器 -> 192.168.1.1
- 0.0.0.0/1 -> 10.2.3.5
- 128.0.0.0/1 -> 10.2.3.5
VPN 的一条重要动态路由: - 10.2.3.5 -> 10.2.3.6
到我的 ISP 网关 (192.168.1.1) 的默认路由可确保 VPN 网关始终能够找到互联网。
另外两条路由是两条“更具体”的路由,恰好涵盖了所有 IPv4 地址空间。因此,任何到任何地方(除了任何直接连接的网络之外)的流量都会传递到 VPN 隧道接口,并且 VPN 隧道的特定动态路由10.2.3.5 -> 10.2.3.6
会传递穿过隧道的所有流量。
通过这种方式,所有通过 VPN 网关访问 Wifi 的客户端都会被路由出 VPN 隧道,并且我仍然可以让客户端访问我的 ISP 网络 (wifi),以便在需要或需要时获得常规互联网访问。