将流量从 OpenVPN 服务器重定向到同一设备中运行的 OpenVPN 客户端

将流量从 OpenVPN 服务器重定向到同一设备中运行的 OpenVPN 客户端

我有一个运行 OpenVPN 服务器的树莓派服务器,当我在家庭网络之外时,我用它来连接以使用我的 Pihole 安装。这是没有问题的工作。

                     |          HOME NETWORK/Pihole  |
(Remote client)     --   (Open VPN Server )        ---         Internet

另外,我有一个远程 VPN 服务,可以通过 OpenVPN 客户端从 Pi 设备连接到该服务。我也测试成功了。

                    |          HOME NETWORK/Pihole  |
                           (Open VPN Client )       -            VPN provider

我想将这两种服务结合起来,以便最终安装如下所示

                 |          HOME NETWORK /Pihole           |
(Remote client) -- (Open VPN Server) -- (Open VPN Client) --- Remote VPN service

我尝试过类似问题中描述的解决方案(具有活动 OpenVPN 客户端的 Wireguard 服务器),但结果类似:一旦激活 Open VPN 客户端 (tun1),服务器 (tun0) 就无法访问。

这是两个接口 tun[01] 均启动时路由表的样子

0.0.0.0/1 via 10.50.11.5 dev tun1
default via 192.168.1.1 dev wlan0 src 192.168.1.164 metric 303
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
10.50.11.1 via 10.50.11.5 dev tun1
10.50.11.5 dev tun1 proto kernel scope link src 10.50.11.6
128.0.0.0/1 via 10.50.11.5 dev tun1
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.164 metric 303
199.116.115.135 via 192.168.1.1 dev wlan0

这是我尝试连接时 openvpn 服务器的当前输出。

pi@raspberrypi:/etc/openvpn $ sudo more openvpn-status.log
OpenVPN CLIENT LIST
Updated,Sat Jun 29 23:30:41 2019
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
UNDEF,x.x.x.x:39159,860,442,Sat Jun 29 23:30:02 2019

这就是错误日志的样子

Sat Jun 29 23:34:47 2019 x.x.x.x:28162 TLS Error: incoming packet authentication failed from [AF_INET]172.58.87.22:28162
Sat Jun 29 23:34:48 2019 x.x.x.x:28162 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #1 / time = (1561869285) Sat Jun 29 23:34:45 2019 ] -- see the man page entry for --no-replay and --replay-window for more
info or silence this warning with --mute-replay-warnings
Sat Jun 29 23:34:48 2019 x.x.x.x:28162 TLS Error: incoming packet authentication failed from [AF_INET]x.x.x.x:28162

显然客户端连接已损坏?

我也尝试过解决方案OpenVPN 客户端和服务器在同一台计算机上 - 当客户端连接时服务器不允许连接我在发布这个问题后发现这一点,但无济于事。这似乎与我的问题直接相关,但它仍然不起作用。

答案1

iptables -I POSTROUTING -t nat -s 10.8.0.0/24 -o tun1 -j MASQUERADE

您将需要此规则通过 openvpn 客户端连接 (tun1) 路由来自 openvpn 服务器 (10.8.0.0/24) 的传出流量

要从家庭网络外部访问您的 openvpn 服务器,您必须使用以下规则回答:

ip rule add from 192.168.1.164 lookup 10           # Pi server
ip route add default via 192.168.1.1 table 10    # LAN router

在哪里192.168.1.164是你的 Pi-IP。
仅允许 VPN 流量的替代方法是:

iptables -A PREROUTING -t mangle -p udp --dport 1149 -j MARK --set-mark 1
ip rule add fwmark 1 table 10
ip route add default via 192.168.1.1 dev wlan0 dev table 10

相关内容