通过虚拟接口在两个服务器之间路由

通过虚拟接口在两个服务器之间路由

我有两台服务器,每台都运行 openvpn 服务,第一台 ( uno) 的 vpn 范围10.170.0.0/16绑定到 UDP 1194,第二台 ( dos)10.180.0.0/16绑定到 TCP 443。我希望一台服务器上的客户端可以访问另一台服务器上的客户端。我已经client-to-client在两台服务器上都加入了这个选项,当两台客户端都在同一台服务器上时,它可以工作。当两台客户端位于不同的服务器上时,则不行。

两台服务器均托管在 linode 中,并具有公共 IP 地址。此外,linode 允许创建与虚拟接口绑定的本地地址,eth0:0该虚拟接口在本地交换机上连接两台服务器。我尝试通过添加以下内容在两台服务器之间创建路由:

uno

route add -net 10.180.0.0 netmask 255.255.0.0 gateway (the eth0:0 address of dos)

dos

route add -net 10.170.0.0 netmask 255.255.0.0 gateway (the eth0:0 address of uno)

我没有在两台服务器上启用任何防火墙。看起来我可以uno从 ping 10.170.0.1( 中的 tun0 接口)dos。但是不行... 哦不... 没那么容易。有人能解释一下原因吗?如何解决?如果我无法 ping 两台服务器,当然客户端也看不到它们。有什么想法吗?

答案1

你可能应该在服务器上启用 IP 转发。通常通过以下方式完成

$ sysctl net.ipv4.ip_forward

要使更改永久生效,您必须编辑/etc/sysctl.conf并设置net.ipv4.ip_forward = 1

相关内容