我不确定我的解决方案是否在于 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 中的链接就可以起作用了。