我最近购买了一台基于 Ubuntu(Ubuntu 16.04.1 Xenial)的计算机,我用它作为服务器来访问工作文件。
虽然服务器已连接到 OpenVPN(以访问工作网络),但我无法通过 SSH 连接到服务器。此服务器是无头的,因此必须能够通过 SSH 连接才能使用它。
实际上,即使服务器连接到 OpenVPN,我也可以通过 SSH 进入服务器,但只有当我与服务器位于同一网络上时才可以 - 我无法远程连接。这可能意味着 SSH 返回数据包正在通过 VPN 路由。
如何配置服务器上的防火墙以允许 SSH 会话?
编辑
这可能会澄清一些事情:我 -> 服务器 -> OpenVPN
答案1
服务器端可能已启用“重定向网关”。这意味着当您的 OpenVPN 客户端(您的 Ubuntu 服务器)连接时,其默认路由将更改为通过 VPN 重定向所有传出的 IP 流量。
您可以通过比较 VPN 连接离线时的路由表与 VPN 在线时的路由表来确认这一点:
路线-n
特别注意您的默认(0.0.0.0/0)路线。
您有以下几种选择:
在您的 Ubuntu 服务器上为您的远程 IP 地址添加一条静态路由(即使这不是一个现实的选择,因为它会变化,但您可能希望这样做来测试诊断)。
sudo route add-net /32 gw
重新配置 OpenVPN 服务器,明确哪些网络可以通过它/VPN 访问,并禁用其上的重定向网关选项。
标记发往你的 Ubuntu 服务器的数据包并使用你的典型默认网关路由它们,如下所述:https://unix.stackexchange.com/a/301364
执行类似选项 3 的操作,但可能仅用于处理 22/tcp(SSH)流量。