当前位置: 首页 > 科技观察

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

时间:2023-03-19 15:52:07 科技观察

今天的企业网络通常使用“虚拟专用网络”来保证员工通信的安全。但是,所使用的协议有时会降低性能。如果可以使用SSH连接到远程主机,则可以设置端口转发。但这可能会很痛苦,尤其是当您需要与该网络上的许多主机一起工作时。试试sshuttle,它可以通过SSH访问以设置一个快速简单的虚拟专用网络。继续阅读以获取有关如何使用它的更多信息。sshuttle就是为上述情况设计的。远程端的唯一要求是主机必须有可用的Python。这是因为sshuttle构造并运行了一些Python代码来帮助传输数据。安装sshuttlelesshuttle已打包在官方存储库中,因此很容易安装。打开终端并使用sudo运行以下命令:$sudodnfinstallsshuttle安装后,您可以在手册页中找到相关信息:$mansshuttle设置虚拟专用网络最简单的情况是将所有流量转发到一个远程网络。这不一定是一个疯狂的想法,特别是如果您不在像您自己家这样的受信任的本地网络上。将-r选项与SSH用户名和远程主机名一起使用:$sshuttle-rusername@remotehost0.0.0.0/0但是,您可能希望将此VPN限制为特定子网,而不是所有网络流量。(对子网划分的完整讨论超出了本文的范围,但您可以在维基百科上阅读更多相关信息。)假设您的办公室在内部使用保留的A类子网10.0.0.0和保留的B类子网172.16.0.0。上面的命令变为:$sshuttle-rusername@remotehost10.0.0.0/8172.16.0.0/16这非常适合通过IP地址访问远程网络上的主机。但是,如果您的办公室是一个拥有大量主机的大型网络怎么办?这个名字可能更方便,甚至是必要的。别担心,sshuttle还可以使用--dns选项转发DNS查询:$sshuttle--dns-rusername@remotehost10.0.0.0/8172.16.0.0/16要让sshuttle作为守护进程运行,请添加-D选项。它以syslog兼容的日志格式发送到systemd日志。根据本地和远程系统的能力,sshuttle可用于基于IPv6的虚拟专用网络。如果需要,您还可以设置配置文件并将其与系统启动集成。如果您想了解更多关于sshuttle及其工作原理的信息,请查看官方文档。要查看代码,请转到GitHub页面。标题图片由KurtCotoaga拍摄并发布在Unsplash上。