使用 SSH 和 OpenVPN 客户端远程访问服务器

使用 SSH 和 OpenVPN 客户端远程访问服务器

我已经使用 Ubuntu 多年了,但仍认为自己是新手。

在安装 OpenVPN 之前,我曾经能够通过将 ISP 路由器上的端口 22 转发到我的 Ubuntu 服务器的 IP 地址,从外部世界访问我的 Ubuntu 文件服务器。运行良好。

但是,我正在考虑使用 OpenVPN 隧道进行备份。在我的家庭网络(ISP 路由器后面)上,我使用一台旧笔记本电脑创建了一个 OpenVPN 服务器。然后,我在 Ubuntu 文件服务器上安装了 OpenVPN 并将其作为客户端运行。连接后,我可以通过 tun0 轻松访问 VPN 服务器笔记本电脑。但是,我不再能够从外部远程访问我的文件服务器。我可以使用非 VPN IP 地址从网络内部通过 SSH 连接到它(使用不在 VPN 上的计算机)。

在阅读了许多帖子后,我认为 Ubuntu 文件服务器不再使用路由器网关发送数据,而是使用 VPN……这当然行不通。有些帖子涉及使用路由表来更改这一点,但据我所知,这不适用于 netplan……Ubuntu 现在使用它?

我不知道下一步该做什么才能完成这项工作。提前致谢。

答案1

当然,netplan 可以工作,你可以用它设置路由。但对于这个用例,有一个更简单的解决方案,使用 sshuttle。

  • 建立 VPN 隧道
  • sshuttle -r 用户@vpn服务器的ip 你的家庭网络地址
  • 你的机器突然就像在你的家庭网络中一样,你可以像在家里一样访问你家里的所有 IP

例子

  • 已建立与 VPN 服务器的连接
  • 假设 VPN 隧道上的 VPN 服务器地址是 10.0.0.1
  • 假设你的家庭网络是 192.168.10.0/24
  • 假设你使用 ubuntu 用户通过 ssh 连接到 vpn 服务器
  • sshuttle-r 命令[电子邮件保护]192.168.10.0/24
  • 就是这样

注意:sshuttle 将运行 iptables 命令,因此它将使用 sudo

相关内容