|
|
51CTO旗下网站
|
|
移动端

使用sshuttle构建一个穷人的虚拟专网

如今,企业网络经常使用“虚拟专用网络”来保证员工通信安全。但是,使用的协议有时会降低性能。如果你可以使用 SSH 连接远程主机,那么你可以设置端口转发。但这可能会很痛苦,尤其是在你需要与该网络上的许多主机一起使用的情况下。试试sshuttle,它可以通过 SSH 访问来设置快速简易的虚拟专网。

作者:Paul W. Frields来源:Linux中国|2019-10-22 11:42

使用sshuttle构建一个穷人的虚拟专网

如今,企业网络经常使用“虚拟专用网络”来保证员工通信安全。但是,使用的协议有时会降低性能。如果你可以使用 SSH 连接远程主机,那么你可以设置端口转发。但这可能会很痛苦,尤其是在你需要与该网络上的许多主机一起使用的情况下。试试 sshuttle,它可以通过 SSH 访问来设置快速简易的虚拟专网。请继续阅读以获取有关如何使用它的更多信息。

sshuttle 正是针对上述情况而设计的。远程端的唯一要求是主机必须有可用的 Python。这是因为 sshuttle 会构造并运行一些 Python 代码来帮助传输数据。

安装 sshuttle

sshuttle 被打包在官方仓库中,因此很容易安装。打开一个终端,并使用 sudo 来运行以下命令:

  1. $ sudo dnf install sshuttle

安装后,你可以在手册页中找到相关信息:

  1. $ man sshuttle

设置虚拟专网

最简单的情况就是将所有流量转发到远程网络。这不一定是一个疯狂的想法,尤其是如果你不在自己家里这样的受信任的本地网络中。将 -r 选项与 SSH 用户名和远程主机名一起使用:

  1. $ sshuttle -r username@remotehost 0.0.0.0/0

但是,你可能希望将该虚拟专网限制为特定子网,而不是所有网络流量。(有关子网的完整讨论超出了本文的范围,但是你可以在维基百科上阅读更多内容。)假设你的办公室内部使用了预留的 A 类子网 10.0.0.0 和预留的 B 类子网 172.16.0.0。上面的命令变为:

  1. $ sshuttle -r username@remotehost 10.0.0.0/8 172.16.0.0/16

这非常适合通过 IP 地址访问远程网络的主机。但是,如果你的办公室是一个拥有大量主机的大型网络,该怎么办?名称可能更方便,甚至是必须的。不用担心,sshuttle 还可以使用 –dns 选项转发 DNS 查询:

  1. $ sshuttle --dns -r username@remotehost 10.0.0.0/8 172.16.0.0/16

要使 sshuttle 以守护进程方式运行,请加上 -D 选项。它会以 syslog 兼容的日志格式发送到 systemd 日志中。

根据本地和远程系统的功能,可以将 sshuttle 用于基于 IPv6 的虚拟专网。如果需要,你还可以设置配置文件并将其与系统启动集成。如果你想阅读更多有关 sshuttle 及其工作方式的信息,请查看官方文档。要查看代码,请进入 GitHub 页面

题图由 Kurt Cotoaga 拍摄并发表在 Unsplash 上。

【编辑推荐】

  1. Linux中存在严重漏洞 可导致使用Wi-Fi的附近设备崩溃
  2. Linux中的十大开源视频播放器
  3. 挑选指南:2020优秀Linux发行版鉴赏
  4. Linux目录基础,带你了解Linux神秘面纱
  5. 在Intel NUC上安装Linux
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

CentOS 8 全新学习术

CentOS 8 全新学习术

CentOS 8 正式发布
共16章 | UbuntuServer

244人订阅学习

用Python玩转excel

用Python玩转excel

让重复操作傻瓜化
共3章 | DE8UG

222人订阅学习

AI入门级算法

AI入门级算法

算法常识
共22章 | 周萝卜123

190人订阅学习

读 书 +更多

网管员必读—网络基础

本书共分两篇,15章。其中前6章为网络理论基础篇,介绍的是基本的网络技术,包括计算机网络分类、网络通信协议、IP地址和网线制作等。在第...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微