sshuttle:一个使用ssh的基于VPN的透明代理

sshuttle 允许你通过 ssh 创建一条从你电脑连接到任何远程服务器的 VPN 连接,只要你的服务器支持 python2.3 或则更高的版本。你必须有本机的 root 权限,但是你可以在服务端有普通账户即可。

你可以在一台机器上同时运行多次 sshuttle 来连接到不同的服务器上,这样你就可以同时使用多个 VPN, sshuttle可以转发你子网中所有流量到VPN中。

在中安装sshuttle

在终端中输入下面的命令

  1. sudo apt-get install sshuttle

使用 sshuttle

sshuttle 语法

  1. sshuttle [options...][-r [username@]sshserver[:port]][subnets]

选项细节

-r, —remote=[username@]sshserver[:port]

远程主机名和可选的用户名,用于连接远程服务器的ssh端口号。比如example.com、[email protected][email protected]:2222或者example.com:2244。

sshuttle 例子

在机器中使用下面的命令:

  1. sudo sshuttle -r username@sshserver 0.0.0.0/0-vv

当开始后,sshuttle会创建一个ssh会话到由-r指定的服务器。如果-r被丢了,它会在本地运行客户端和服务端,这个有时会在测试时有用。

连接到远程服务器后,sshuttle会上传它的(python)源码到远程服务器并执行。所以,你就不需要在远程服务器上安装sshuttle,并且客户端和服务器端间不会存在sshuttle版本冲突。

手册中的更多例子

代理所有的本地连接用于本地测试,没有使用ssh:

  1. $ sudo sshuttle -v 0/0
  2. Starting sshuttle proxy.
  3. Listening on (‘0.0.0.0′,12300).
  4. [local sudo]Password:
  5. firewall manager ready.
  6. c : connecting to server...
  7. s: available routes:
  8. s:192.168.42.0/24
  9. c : connected.
  10. firewall manager: starting transproxy.
  11. c :Accept:192.168.42.106':50035 -> ‘192.168.42.121':139.
  12. c :Accept:192.168.42.121':47523 -> ‘77.141.99.22':443.
  13. ...etc...
  14. ^C
  15. firewall manager: undoing changes.
  16. KeyboardInterrupt
  17. c :Keyboard interrupt: exiting.
  18. c : SW#8:192.168.42.121:47523: deleting
  19. c : SW#6:192.168.42.106:50035: deleting

测试到远程服务器上的连接,自动猜测主机名和子网:

  1. $ sudo sshuttle -vNHr example.org
  2. Starting sshuttle proxy.
  3. Listening on (‘0.0.0.0′,12300).
  4. firewall manager ready.
  5. c : connecting to server...
  6. s: available routes:
  7. s:77.141.99.0/24
  8. c : connected.
  9. c : seed_hosts:[]
  10. firewall manager: starting transproxy.
  11. hostwatch:Found: testbox1:1.2.3.4
  12. hostwatch:Found: mytest2:5.6.7.8
  13. hostwatch:Found: domaincontroller:99.1.2.3
  14. c :Accept:192.168.42.121':60554 -> ‘77.141.99.22':22.
  15. ^C
  16. firewall manager: undoing changes.
  17. c :Keyboard interrupt: exiting.
  18. c : SW#6:192.168.42.121:60554: deleting

via: http://www.ubuntugeek.com/sshuttle-a-transparent-proxy-based-vpn-using-ssh.html

作者:ruchi 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

来源:http://linux.cn/article-5528-1.html

猜你喜欢

转载自www.linuxidc.com/Linux/2015-05/118141.htm