![网络:Raspberry Pi 上的命名空间和 VPN](https://linux22.com/image/1557100/%E7%BD%91%E7%BB%9C%EF%BC%9ARaspberry%20Pi%20%E4%B8%8A%E7%9A%84%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4%E5%92%8C%20VPN.png)
我最近在我的 pi 上安装了 openvpn,这样 pihole 和其他一些进程就可以在 VPN 后面运行。虽然到目前为止它运行良好,但它显然破坏了对我的 Plex 服务器的远程访问,该服务器依赖于路由器上的端口转发。因此,经过一番研究,似乎为 Plex 创建命名空间是可行的方法……但我无论如何也做不到。我希望有一些精通网络的人可以帮助我。
以下是我使用 macvlan 设置命名空间的过程(我的 pi 的本地地址是 192.168.1.15,我将命名空间设置在 192.168.1.30 下)。由于我以 pi 身份登录,因此所有这些都使用了 sudo:
ip netns add plexns
启动环回接口
ip netns exec plexns ip addr add 127.0.0.1/8 dev lo
ip netns exec plexns ip link set lo up
创建 macvlan 接口
ip link add int0 link eth0 type macvlan mode bridge
ip link set int0 netns plexns
分配地址
ip netns exec plexns ip addr add 192.168.1.30/24 dev int0
ip netns exec plexns ip link set int0 up
设置我的网关(路由器 IP)
ip netns exec plexns ip route add default via 192.168.1.1
这似乎有效,因为当我跑
ip netns exec plexns curl icanhazip.com
它返回的是我的 ISP 分配的外部 IP,而不是我的 VPN。
接下来,我用
service plexmediaserver stop
停止 plex 运行。我编辑了 /etc/init/plexmediaserver.conf,以便 start-stop-daemon 行显示为:
sudo ip netns exec plexns start-stop-daemon --start -c \
$PLEX_MEDIA_SERVER_USER --exec /usr/sbin/start_pms
最后,
ip netns exec plexns service plexmediaserver start
当然,它不起作用。当我在计算机上登录服务器时,它在本地可见,但在远程不可见。它仍然在本地 IP 192.168.1.15 下工作,使用我的 VPN 的外部 IP 地址。
抱歉,内容比较长,但我完全是网络新手,并不是一名真正的程序员,因此,任何帮助都将非常感谢!