AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1057950
Accepted
tseres
tseres
Asked: 2021-03-23 20:58:02 +0800 CST2021-03-23 20:58:02 +0800 CST 2021-03-23 20:58:02 +0800 CST

双VPN不工作

  • 772

我在我的树莓派中设置了 OpenVpn,它工作正常,我可以从我的手机登录我的树莓派。我还为我的树莓派安装了付费 VPN(Windscribe)。当我windscribe connect在我的树莓派中激活我的付费 vpn (windscribe) 时,问题就来了。在那之后,我再也无法用手机接触到我的覆盆子了。

我想要 OpenVPN(PiVPN),这样我就可以访问我的家庭网络,并且我想要 windscribe vpn 也可以激活以安全地浏览互联网。现在我有第一部分。当 Windscribe 不活动时,我可以访问我的家庭网络。

我一直在尝试使用 iptables 并没有成功,为接口、隧道和许多组合制定转发规则,但似乎没有任何效果。最后我重置了一切。

这是我的配置。

sudo iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P POSTROUTING ACCEPT
-P OUTPUT ACCEPT
-A POSTROUTING -s 10.8.0.0/24 -o wlan0 -m comment --comment openvpn-nat-rule -j MASQUERADE
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

pi@raspberrypi:~ $ sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT DROP
-A OUTPUT ! -o tun+ -p tcp -m tcp --dport 53 -j DROP
-A OUTPUT ! -o tun+ -p udp -m udp --dport 53 -j DROP
-A OUTPUT -d 192.168.0.0/16 -j ACCEPT
-A OUTPUT -d 10.0.0.0/8 -j ACCEPT
-A OUTPUT -d 172.16.0.0/12 -j ACCEPT
-A OUTPUT -d 104.20.26.217/32 -j ACCEPT
-A OUTPUT -d 104.20.27.217/32 -j ACCEPT
-A OUTPUT -d 172.67.17.175/32 -j ACCEPT
-A OUTPUT -d 104.21.93.29/32 -j ACCEPT
-A OUTPUT -d 172.67.203.127/32 -j ACCEPT
-A OUTPUT -d 104.21.53.216/32 -j ACCEPT
-A OUTPUT -d 172.67.219.39/32 -j ACCEPT
-A OUTPUT -d 172.67.189.40/32 -j ACCEPT
-A OUTPUT -d 104.21.65.74/32 -j ACCEPT
-A OUTPUT -o tun+ -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -j ACCEPT
-A OUTPUT -d 209.58.129.121/32 -j ACCEPT

pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.111  netmask 255.255.255.0  broadcast 192.168.0.255
        ether b8:27:eb:ec:6a:4b  txqueuelen 1000  (Ethernet)
        RX packets 19989  bytes 21885907 (20.8 MiB)
        RX errors 160  dropped 4  overruns 0  frame 0
        TX packets 11508  bytes 1206589 (1.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 618  bytes 201828 (197.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 618  bytes 201828 (197.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.0.1  netmask 255.255.255.0  destination 10.8.0.1
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.120.138.29  netmask 255.255.254.0  destination 10.120.138.29
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 164  bytes 32755 (31.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 961  bytes 114896 (112.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:b9:3f:1e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

pi@raspberrypi:~ $ ip route list
0.0.0.0/1 via 10.120.138.1 dev tun1
default via 192.168.0.1 dev eth0 src 192.168.0.111 metric 202
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
10.120.138.0/23 dev tun1 proto kernel scope link src 10.120.138.29
128.0.0.0/1 via 10.120.138.1 dev tun1
192.168.0.0/24 dev eth0 proto dhcp scope link src 192.168.0.111 metric 202
209.58.129.121 via 192.168.0.1 dev eth0

pi@raspberrypi:~ $ ip rule list
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

更新:我找到了本教程,它帮助了我很多 comparitech.com/blog/vpn-privacy/raspberry-pi-vpn 。但是我发现当我设置这两条规则时

ip rule add from 192.168.1.2 lookup 101 
ip route add default via 192.168.1.1 table 101 

我可以访问 vpn,但我无法像以前那样使用 192.168.0.111 ping 我的 vpn 服务器,现在我必须使用 10.8.0.1。Any Ideas how to enable ping to 192.168.0.111 – tseres 12 分钟前 删除

vpn routing openvpn iptables forwarding
  • 2 2 个回答
  • 247 Views

2 个回答

  • Voted
  1. Matias V
    2021-03-24T01:41:51+08:002021-03-24T01:41:51+08:00

    您的树莓派是否在专用网络中?就像在家里有一个互联网盒子?然后它就不起作用了,因为你必须在你的私人网络中从你的互联网盒子添加路由到你的树莓派。然后将您的手机连接到您的公共 VPN,尝试访问您的 internetBox 的公共 IP。

    如果您的手机连接到具有公共 IP 的外部 VPN,并且您的 raspeberry PI 在专用网络中,则它们无法访问自己。您要做的第一件事是使您的 rapsberry PI 的 VPN 可以通过公共网络访问。我希望它可以帮助,连接两个不同的VPN非常困难,你为什么要这样做?(没有冒犯我只是想知道)

    一个更简单的解决方案是获取外部 VPN 的公共 IP,然后在本地路由器上允许 ssh 或来自该 IP 的任何协议重定向到您的树莓派。

    • 0
  2. Best Answer
    tseres
    2021-03-26T10:14:58+08:002021-03-26T10:14:58+08:00

    我终于找到了如何让它工作。感谢https://www.raspberrypi.org/forums/viewtopic.php?t=251453&sid=5d7e57949fb3cec559d5319f666f3825#p1638481

    通过替换这些行

    ip rule add from 192.168.1.2 lookup 101 
    ip route add default via 192.168.1.1 table 101 
    

    和

    sudo iptables -A OUTPUT -t mangle -p tcp --sport 1194 -j MARK --set-mark 1
    sudo ip rule add fwmark 1 table 101
    sudo ip route add table 101 default via 192.168.1.1 dev eth0
    

    说明:第一行标记了来自 OpenVPN 服务器的所有数据包的端口 1194 - 如果您正在侦听其他内容,则需要更改此数字。这也阻止了默认路由接管并将 tun-incoming 直接推到 tun-outgoing 并导致不对称路由。第二行是 IP 策略规则,如果数据包被标记为“1”,则查找路由表 101。第三行是路由规则,使数据包从 eth0 路由回宽带路由器,返回到移动设备。

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • 用 D-LINK DFL-CPG310 防火墙替换 Cisco Pix 防火墙

  • 最好的点对点 VPN?

  • WAN 上的 VLAN

  • 通过 VPN 连接什么是远程服务器 IP?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve