使用 sshuttle 构建一个穷人的虚拟专网
如今,企业网络经常使用 虚拟专用网络 来保证员工通信安全。但是,使用的协议有时会降低性能。如果你可以使用 SSH 连接远程主机,那么你可以设置端口转发。但这可能会很痛苦,尤其是在你需要与该网络上的许多主机一起使用的情况下。试试 sshuttle,它可以通过 SSH 访问来设置快速简易的虚拟专网。请继续阅读以获取有关如何使用它的更多信息。
sshuttle 正是针对上述情况而设计的。远程端的唯一要求是主机必须有可用的 Python。这是因为 sshuttle 会构造并运行一些 Python 代码来帮助传输数据。
安装 sshuttlesshuttle 被打包在官方仓库中,因此很容易安装。打开一个终端,并使用 sudo 来运行以下命令:
$ sudo dnf install sshuttle
安装后,你可以在手册页中找到相关信息:
$ man sshuttle设置虚拟专网
最简单的情况就是将所有流量转发到远程网络。这不一定是一个疯狂的想法,尤其是如果你不在自己家里这样的受信任的本地网络中。将 -r 选项与 SSH 用户名和远程主机名一起使用:
$ sshuttle -r username@remotehost 0.0.0.0/0
但是,你可能希望将该虚拟专网限制为特定子网,而不是所有网络流量。(有关子网的完整讨论超出了本文的范围,但是你可以在维基百科上阅读更多内容。)假设你的办公室内部使用了预留的 A 类子网 10.0.0.0 和预留的 B 类子网 172.16.0.0。上面的命令变为:
$ sshuttle -r username@remotehost 10.0.0.0/8 172.16.0.0/16
这非常适合通过 IP 地址访问远程网络的主机。但是,如果你的办公室是一个拥有大量主机的大型网络,该怎么办?名称可能更方便,甚至是必须的。不用担心,sshuttle 还可以使用 dns 选项转发 DNS 查询:
$ 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 上。
via: https://fedoramagazine.org/use-sshuttle-to-build-a-poor-mans-vpn/
作者:Paul W. Frields 选题:lujun9972 译者:geekpi 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/48572.html
Fedoralinuxpython相关文章
- 使用OpenCV实现一个文档自动扫描仪
- 使用开源软件攒一个企业级图数据平台解决方案
- 关于recvfrom使用过程中的一个坑点
- VC++ 使用BitBlt函数显示位图「建议收藏」
- 结构建模设计——Solidworks软件之绘制一个手机支架模型,使用3D打印技术输出实物的全流程实战
- java 异或加密_使用异或实现一个简单的加密或解密
- 如何使用Spring和Java配置构建一个REST API
- 使用 Grafana、Prometheus 和 Slack 构建一个简单的 ChatOps 机器人
- 【Groovy】使用 SwingBuilder 构建 Swing 窗口 ( 创建一个 Swing 构造器 | 配置 Swing 窗口的一系列属性 | 设置 Swing 窗口显示 )
- Oracle 视图 ALL_UNIFIED_AUDIT_ACTIONS 官方解释,作用,如何使用详细说明
- 机使用情况Linux查看磁带机使用状况:一个实践指南(linux查看磁带)
- 一个硬盘Windows 7与Linux共同使用硬盘的可能性(win7和linux共享)
- 使用树莓派构建一个婴儿监视器
- 使用 Redis 和 Python 构建一个共享单车的应用程序
- 使用树莓派和 Rocket.Chat 构建一个私人聊天服务器
- MySQL在Win7下的安装与使用(mysqlwin7)
- 使用Yii框架连接Oracle数据库简易教程(yiioracle)
- 使用C语言连接Oracle数据库一个实践案例(c语言对接oracle)
- 使用命令行操作MySQL简单而有效的技巧(cmd下mysql语句)
- 使用Redis构建排行榜,实现竞争激烈的排名(用redis做一个排行榜)
- 使用Redis构建一个更稳定的数据选择库(redis 选择库)
- javascript构建一个xmlhttp对象池合理创建和使用xmlhttp对象
- node.js中的path.delimiter方法使用说明