18.04 / OpenVPN / SSH / Docker

18.04 / OpenVPN / SSH / Docker

从搜索来看,这是一个老问题了,但似乎没有答案能帮我解决。我是 VPN 新手,所以这已经耗费了我好几天的研究时间。

我在一台迷你电脑上安装了 Ubuntu 服务器 18.04,运行各种 Docker 容器,主机上运行着 OpenVPN 客户端,我通过从路由器转发到主机的 Web URL 端口访问它,关闭 OpenVPN 后,一切正常。当我启动 VPN 隧道时,所有外部访问都被切断,据我所知这是意料之中的。LAN 访问工作正常(对主机和在 Docker 中运行的容器而言)

所以答案似乎是路由,我发现了这个:

ip rule add from 192.168.1.90 table 128
ip route add table 128 to 192.168.0.0/16 dev enx00ce39caacd3
ip route add table 128 default via 192.168.1.1

这样我就可以在主机上正常访问 ssh,并且从控制台测试外部 IP 可以得到我的 VPN IP,但是所有 docker 容器 URL 都不起作用,当我检查任何容器时,它们都失去了 Internet 访问权限。我怀疑是因为 docker 容器在它们自己的范围内运行,而启动 VPN 会杀死默认路由?所以我一直在想办法让 docker 拥有外部 VPN 访问权限,但允许主机原始公共 IP 上的入站连接?

非常感谢您的指点,这已经耗费了好几天的时间,而且令人恼火的是,当盒子运行预装的 Win10 时,它运行正常 :(

IP address for enx00ce39caacd3: 192.168.1.90
IP address for tun0:            172.21.24.45
IP address for br-d3e342478d7c: 172.18.0.1
IP address for br-55176ee6b772: 172.21.0.1
IP address for docker0:         172.17.0.1

嗒!

相关内容