![多个 openvpn 守护进程的公共服务器 ip 地址](https://linux22.com/image/614363/%E5%A4%9A%E4%B8%AA%20openvpn%20%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E7%9A%84%E5%85%AC%E5%85%B1%E6%9C%8D%E5%8A%A1%E5%99%A8%20ip%20%E5%9C%B0%E5%9D%80.png)
我不确定我的解决方案是否在于 openvpn 路由或 iptables,但如果我解释我想要做什么,也许有人可以提供帮助。
我有两个在不同端口上运行的开放 vpn 守护进程。一个在 1194 上,服务器 ip 为 10.8.0.1,另一个在 1195 上,ip 地址为 10.9.0.1。我使用两个,这样我就可以使用 iptables 根据接口(tun0 和 tun1)锁定服务器端口访问。这一切都运行良好,第一个实例为受信任的用户提供服务,另一个实例锁定到端口 80 供不太受信任的用户使用。我在 nginx 上运行 GitLab,我需要为这两组人提供服务。
现在问题出在 gitlab 内部,我已将其配置为将所有 git 链接显示为 git://10.8.0.1 等。对于连接到第二个 vpn 守护进程(服务器为 10.9.0.1)的人来说,这些没有意义。
那么,服务器配置中是否有巧妙的路由使用方法,允许 10.9.0.1 子网以 10.8.0.1 的身份与服务器通信。或者我可以为服务器创建一个两个都可以使用的不同公共 IP 地址吗?或者我完全处于错误的区域,我应该考虑一些 iptables 路由/伪装?
有任何想法吗?
答案1
您应该“创建”另一个网络,例如 192.168. 0.0/24,并将您的服务器放在此网络中。如果需要,请启用 ip_forward。
答案2
这比我想象的要容易。
我补充道
推“路由 10.8.0.0 255.255.255.0”
因此,从第二个 vpn 守护进程开始,我可以使用 10.9.0.1 或 10.8.0.1 作为服务器地址,这样 GitLab 中的链接就可以起作用了。