sshuttle
是一种混合的 VPN 和 SSH 隧道工具,能够轻松地将远程网络端点当作本地网络使用。它主要用于将流量通过 SSH 隧道转发,使用户可以访问远程网络资源,就像它们在本地一样。适用于需要在受限网络环境中访问外部资源、或安全地访问内部网络的场景。
sshuttle 主要功能
透明代理:
sshuttle
可以将所有流量(包括 TCP 和 DNS)透明地通过远程服务器转发。简单易用:用户只需配置一个 SSH 访问的远程服务器,即可快速建立 VPN 隧道。
无需 root 权限:与传统的 VPN 不同,
sshuttle
不需要目标服务器上的 root 权限,只要有 SSH 登录权限就行。跨平台支持:支持 Linux 和 macOS。
工作原理
sshuttle
使用 SSH 协议来建立隧道连接。它将本地计算机的流量通过 SSH 隧道转发到远程服务器,再由远程服务器将流量转发到最终目标地址。它还可以伪装成 VPN,通过捕获并转发本地网络流量,使其经过远程服务器再发出。
使用场景
远程办公:从家里或外地访问公司内部网络资源。
绕过网络限制:在受限网络环境中访问受限的外部资源。
网络调试:安全地测试和调试远程服务器上的服务。
基本命令
基础用法
sshuttle -r username@remote_host 0.0.0.0/0
这条命令将所有流量通过 remote_host
转发,相当于创建了一个 VPN 连接。
指定特定的 IP 段
sshuttle -r username@remote_host 192.168.0.0/24
后台运行
sshuttle -r username@remote_host 0.0.0.0/0 --daemon
安装
sshuttle
可以通过包管理器安装,例如在 Ubuntu 上:
sudo apt install sshuttle
macOS 上可以使用 Homebrew 安装:
brew install sshuttle
总结
sshuttle
是一种简便、安全的 VPN 替代工具,适合需要通过 SSH 快速访问远程网络资源的场景。