关闭ssh tunnel的shell帐号如果做代理
我们一般所说的ssh翻墙是指使用ssh tunnel的动态转发来代理翻墙。
不过不少国外提供免费shell帐号的服务商都关闭了ssh tunnel(有的需要付费开启,有的付费也不能用),那么关闭ssh tunnel的shell帐号如果做代理呢?那就要用到sshuttle了。
以前的文章sshuttle: 穷人的VPN里提到过sshuttle,不过那时我还不知道他在关闭ssh tunnel时还能做代理,这个功能是在推特上看到有推友提到的。
不过这个只适用于Linux和mac os系统,而且需要ssh有shell权限,对于一般翻墙者来说有一定难度。
首先要有一个有shell权限的ssh帐号,不需要root权限也不需要开启ssh tunnel(不少网友免费提供的和免费php空间提供的ssh一般都是没有shell权限的),可以申请国外免费shell帐号的网站列表参考:http://www.bylur.net/free/和http://shells.red-pill.eu/(申请时不明白的就谷歌翻译吧,不过总体来说申请还是不容易的)。
然后下载sshuttle在Linux终端输入以下命令即可(需要支持python)
sudo git clone git://github.com/apenwarr/sshuttle
会提示你输入你操作系统的管理员密码,输入,等完成安装后在终端输入以下命令
sudo ./sshuttle/sshuttle --dns -vvr 用户名@服务器域名或IP:ssh端口 0/0
(其中红字修改为你的shell帐号的用户名、服务器地址和端口,这个命令是使用ssh服务器的DNS,相比以前文中那个可以防DNS污染)
会提示你保存ssh密钥,输入yes回车,稍等会提示你输入ssh的密码,输入密码后回车,稍等如果不出错就可以打开浏览翻墙浏览了。
(如果出错可以输入sudo ./sshuttle/sshuttle…这行命令再试一遍,sshuttle是类似VPN的全局代理不需对浏览器进行代理设置)
不使用时,在那个终端处按Ctrl+C键关闭sshuttle(如果不能关闭或关闭后出现网络问题,重启系统就可以了)
理论上sshuttle应该比ssh tunnel速度快,不过在以上配置下我具体测试中发现sshuttle速度比ssh tunnel慢很多尤其在观看在线视频和下载时。在官方论坛看到的解释是sshuttle有个内部控制以牺牲宽带来降低延迟,也就是上面的配置下,浏览网页很流畅不过看在线视频和下载会较慢,如果使用以下不限速的配置,看在线视频和下载速度很快不过浏览网页可能就没有那么流畅啦。
sudo ./sshuttle/sshuttle --dns -vvr 用户名@服务器域名或IP:ssh端口 0/0 --no-latency-control
hi.博主用的ubuntu是10.04还是11.04?10.04好像用sudo apt-get install git 装不了git,提示没git这个包
那就安装git这个包呀,要不你去官网下载软件包解压到用户文件夹就可以用了。
怎么这里又显示sudo git clone git://github.com/apenwarr/sshuttle?这2个sshuttle是一回事吗
是的。
这个sshuttle的确太神奇了,竟然可以搭建类似vpn的环境。另外看到这个
https://github.com/foursquar/sshuttle,不知这个sshuttle跟这个
http://github.com/apenwarr/sshuttle有何区别?博主可否研究下https://github.com/foursquar/sshuttle
的用法?
文中的sshuttle就是https://github.com/foursquar/sshuttle
真的成功啦。在 ubuntu desktop下,运行sudo ./sshuttle/sshuttle –dns -vvr 用户名@服务器域名或IP:ssh端口 0/0,等到界面出现waiting…,ubuntu desktop就处于全局代理的环境下了(就好象处于vpn环境下一样)。
这个很好用的,就是看视频速度慢点。
有啊,我在sdf.org申请的。你不妨也申请一个,看能不能用来翻墙?
sdf.org不行我试过,看你发的我就感觉是sdf.org的。
你可以试试elitter.net的。
或者注册 http://igfw.net/archives/4375
哦,应该输入sudo ./sshuttle/sshuttle –dns -vvr 用户名@服务器域名或IP:ssh端口 0/0,不过还是提示:
stty: TIOCGETD: Inappropriate ioctl for device
stty: TIOCGETD: Inappropriate ioctl for device
stty: TIOCGETD: Inappropriate ioctl for device
你的ssh帐号没有shell权限吧,你ssh看看能不能执行shell命令。
hi.
我输入sudo ./sshuttle/sshuttle –dns -vvr 用户名@服务器域名或IP:ssh端口 0/0后,回车,出现如下提示:
fatal: ‘\xe2\x80\x93dns’ is not a valid IP subnet format,怎么回事呢?
我试了一下,没成功。博主成功过吗
成功啦,elitter.net提供的免费shell帐号关闭了ssh隧道,用sshuttle在ubuntu下测试可以翻墙。