我有一个运行 Centos 6.8 的 VPS,我在其中安装了带有本地桥接器的 SoftEther VPN 服务器。
VPN IP 范围是 192.168.86.0/24。客户端 VPN IP 地址由 SoftEther VPN 服务器的 DHCP 服务器提供。SoftEther 的本地桥接使用了虚拟网络适配器,因为我想通过 VPN 访问 VPS 上的某些服务(在 SoftEther 中,如果没有本地桥接,这是不可能的)。VPN 默认网关地址是 192.168.86.3。
VPS 在 eth0 接口上有一个公共 IPv4 地址,另外我创建了一个别名 eth0:0,其 IPv4 地址为 192.168.86.2(这超出了 VPN 的 DHCP 提供的范围,并且与 VPN 的默认网关不同)。
当我从 Windows PC 连接时,一切似乎都正常。我可以 ping 192.168.86.3(这是 SoftEther VPN 服务器用于连接的 VPN 客户端的网络接口)和 192.168.86.2(这是 VPN 服务器之外的,是 VPS 上的“物理”网络接口)。
但是,我无法通过 VPN 连接连接到 VPS 上运行的任何服务 - 既无法通过端口 22 上的 SSH(这两个地址都不是,.2 和 .3),也无法连接到 VPS 上以 root 身份在端口 80 上运行的简单 Web 服务器(使用 nodejs)。但是,直接连接(到公共 IPv4 地址)可以工作。
我到底错过了什么?我应该查看接口的 SSHD 配置吗?还是问题出在 iptables 设置中?还是 SELinux 中需要修复的问题?恐怕我不知道在哪里可以找到问题。
我唯一可以确定的是,这与 SoftEther VPN 服务器没有直接关系 - 在我激活本地桥接功能之前,我无法 ping 除默认网关之外的任何 VPN IP 地址,现在本地别名 192.168.86.2 变得可见并响应 ping。
ip addr
在 VPS 上返回此信息:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:00:46:07 brd ff:ff:ff:ff:ff:ff
inet 46.28.111.205/24 brd 46.28.111.255 scope global eth0
inet 192.168.86.2/24 brd 192.168.86.255 scope global eth0:0
inet6 2a02:2b88:2:1::4607:1/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe00:4607/64 scope link
valid_lft forever preferred_lft forever
4: tap_tap01: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
link/ether 00:ac:56:ec:e5:3c brd ff:ff:ff:ff:ff:ff
inet6 fe80::2ac:56ff:feec:e53c/64 scope link
valid_lft forever preferred_lft forever
ip route
在 VPS 上返回以下内容:
192.168.86.0/24 dev eth0 proto kernel scope link src 192.168.86.2
46.28.111.0/24 dev eth0 proto kernel scope link src 46.28.111.205
169.254.0.0/16 dev eth0 scope link metric 1002
default via 46.28.111.1 dev eth0
似乎 SoftEther VPN 服务器未在tap_tap01
(SoftEther 的桥接虚拟网络接口)上配置 IPv4 地址。有趣的是,可以在 VPN 会话内 ping 两个 IPv4 地址,但 VPN 网络在 VPS 中无法访问/不可见。这与我对本地桥接的期望相反。
答案1
您很可能会发现 httpd/node 和 sshd 等服务在 VPN 服务器之前启动。在这种情况下,这些服务将仅绑定到启动时可用的接口。您需要配置系统以在 VPN 服务器之后启动这些服务。您还应确保这些服务已配置为绑定到所有可用地址。