TranslateProject/translated/tech/20150417 sshuttle--A transparent proxy-based VPN using ssh.md
2015-04-18 10:31:07 +08:00

94 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

sshuttle - 一个使用ssh的基于VPN的透明代理
================================================================================
sshuttle允许你通过ssh创建一条从你电脑连接到任何远程服务器的VPN连接只要你的服务器支持python2.3 或则更高的版本, 你必须有本机的root权限但是你可以在服务端有普通账户即可。
你可以在一台机器上同时运行多次sshuttle来连接到不同的服务器上这样你就可以一次使用多个VPN sshuttle可以转发你子网所有流量到VPN中。
### 在Ubuntu中安装sshuttle ###
在终端中输入下面的命令
sudo apt-get install sshuttle
### 使用 sshuttle ###
#### sshuttle 语法 ####
sshuttle [options...] [-r [username@]sshserver[:port]] [subnets]
#### Option 细节 ####
-r, —remote=[username@]sshserver[:port]
远程主机名和可选的用户名用于连接远程服务器的ssh端口号。比如example.com、testuser@example.com、testuser@example.com:2222或者example.com:2244。
#### sshuttle 例子 ####
在机器中使用下面的命令:
sudo sshuttle -r username@sshserver 0.0.0.0/0 -vv
当开始后sshuttle会创建一个ssh会话到通过-r指定的服务器。如果-r被忽略了它会在本地运行客户端和服务端这个有时会在测试时有用。
连接到远程服务器后sshuttle会上传它的python源码到远程服务器并执行。那么你就不需要在远程服务器上安装sshuttle并且客户端和服务器端间不会存在sshuttle版本冲突。
#### 手册中的更多例子 ####
代理所有的本地连接用于本地测试没有使用ssh
$ sudo sshuttle -v 0/0
Starting sshuttle proxy.
Listening on (0.0.0.0, 12300).
[local sudo] Password:
firewall manager ready.
c : connecting to server...
s: available routes:
s: 192.168.42.0/24
c : connected.
firewall manager: starting transproxy.
c : Accept: 192.168.42.106':50035 -> 192.168.42.121':139.
c : Accept: 192.168.42.121':47523 -> 77.141.99.22':443.
...etc...
^C
firewall manager: undoing changes.
KeyboardInterrupt
c : Keyboard interrupt: exiting.
c : SW#8:192.168.42.121:47523: deleting
c : SW#6:192.168.42.106:50035: deleting
测试到远程服务器上的连接,自动猜测主机名和子网:
$ sudo sshuttle -vNHr example.org
Starting sshuttle proxy.
Listening on (0.0.0.0, 12300).
firewall manager ready.
c : connecting to server...
s: available routes:
s: 77.141.99.0/24
c : connected.
c : seed_hosts: []
firewall manager: starting transproxy.
hostwatch: Found: testbox1: 1.2.3.4
hostwatch: Found: mytest2: 5.6.7.8
hostwatch: Found: domaincontroller: 99.1.2.3
c : Accept: 192.168.42.121':60554 -> 77.141.99.22':22.
^C
firewall manager: undoing changes.
c : Keyboard interrupt: exiting.
c : SW#6:192.168.42.121:60554: deleting
--------------------------------------------------------------------------------
via: http://www.ubuntugeek.com/sshuttle-a-transparent-proxy-based-vpn-using-ssh.html
作者:[ruchi][a]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.ubuntugeek.com/author/ubuntufix