sshuttle 被其作者称为 “穷人的 VPN”(A poor man’s instant VPN),甚至不需要远端服务器的 root 权限就可以用(只需要一个普通 SSH 帐号),和在 Mac/Linux 客户端直接用 ssh -D 的方式有点类似。如果不想花钱买 VPN,又懒得自己在 VPS 上安装和设置复杂的 VPN 服务,又不想用 ssh -D 这么朴素的技巧的话可以试一下这个 sshuttle,按照作者的说法 sshuttle 比 sshd -D 的方式快一点,因为 It’s just data-over-TCP,而不是 TCP-over-TCP,TCP-over-TCP 的方式会带来不必要的性能问题,因为 TCP 本身就是可靠传输协议,保证了包的有序性和无差错,并确保包被接受,如果有包丢失的话 TCP 协议可以自己立即重传弥补,所以没必要两层都 TCP,一层 TCP 就比较安全了。
sshuttle 的用法很简单,在客户端下载和运行就可以了(需要有 Python 的支持),无需在服务器端做任何配置(但是需要一个 ssh 帐号和 Python 支持):
$ git clone https://github.com/sshuttle/sshuttle
$ cd sshuttle
$ sudo ./setup.py install
$ sshuttle -r username@sshserver 0.0.0.0/0 -vv
Starting sshuttle proxy.
[local sudo] Password:
firewall manager: Starting firewall with Python version 2.7.15
firewall manager: ready method name nat.
IPv6 enabled: False
UDP enabled: False
DNS enabled: False
User enabled: False
Binding redirector: 12300 12299
TCP redirector listening on ('127.0.0.1', 12299).
TCP redirector listening with <socket._socketobject object at 0x7f5eb68b1c90>.
Starting client with Python version 2.7.15
c : connecting to server...
...
(备注: 原文的链接在 这里 )