2010-01-25更新:
如果需要使用远端服务器的DNS:在Firefox中about:config设置 network.proxy.socks_remote_dns ==> true
参考原文:http://thinkhole.org/wp/2006/05/10/howto-secure-firefox-and-im-with-putty/
加密传输的机制如下:
/ foo.com
浏览器 <==secure tunnel==>ssh server - bar.com
\ example.com
浏览器先通过加密通道链接到一台服务器上,然后通过这个服务器再访问整个互联网。主要的用途就是这个绕道访问。
具体配置过程:
在SSH登录工具Putty的登录设置中配置tunnel,目标设置为Dynamic,添加一个端口7070,再按Add,一个动态转发端口就实现了;
然后用相应帐号ssh登录后:除了登录的终端窗口意外,本地的7070连服务器的22端口之间就有了一个SSH加密的转发通道了。在自己Windows机器上可以用命令行: netstat -n -a 看到有这样一条:
TCP [::1]:7070 [::]:0 LISTENING 0
为了方便切换,可以使用FireFox的SwitchProxy tool插件,设置socks代理通过本地的127.0.0.1:7070 进行传输。
MSN和Chrome的机制类似:就是在连接配置中设置sock5 加密代理。
感谢number5:
更简单方便的setup方式是使用 putty的后台命令行程序plink
plink -N username@remote.ssh.server -D 127.0.0.1:7070
其中 -N 表示不需要shell
username@remote.ssh.server 换成你ssh帐户名和主机域名或者地址
或者替换成 -load sessionname 也可以,用dreamhost上的帐号试了一下,真的很快
如何在Windows下使用密钥方式登录Linux服务器:
如果设置需要基于密钥的登录(如果不设置密钥密码,就可以自动登录了),
我没有试成使用puttygen生成的密钥(公钥/私钥)直接部署在Linux服务器上。目前成功的方法是:先在服务器上用服务器上用./ssh-keygen生成密钥对,将公钥 id_rsa.pub >> 部署到要登录到的服务器上:/home/username/.ssh/authorized_keys 中,密钥在Windows客户端下使用:将密钥 id_rsa下载到本地,然后用puttygen导入id_rsa 另存转换为putty格式的密钥id_rsa.ppk即可。然后使用 plink -i c:\path\to\id_rsa.ppk username@example.com方式登录。 完整配置:
c:\Putty\plink.exe -N -i c:\Putty\foo.ppk bar@example.com -D 127.0.0.1:7070
注意: 加密通道和网站是否提供https没有直接的关系,https是指服务商直接向客户提供的加密,例如:GMail: https://mail.google.com/mail/, GReader: https://www.google.com/reader/view/,从ssh server到服务网站之间仍然是明文的http传输; 加密通道和匿名访问网站也没有直接关系。
作者:车东 发表于:2006-12-05 08:12 最后更新于:2012-12-23 00:12版权声明:可以转载,转载时请务必以超链接形式标明文章 利用Putty/Plink通过ssh tunnel端口转发实现FireFox和Chrome的加密代理访问 的原始出处和作者信息及本版权声明。
http://www.chedong.com/blog/archives/001246.html
Comments
更简单方便的setup方式是使用 putty的命令行程序plink
plink -N username@remote.ssh.server -D 127.0.0.1:7070
其中 -N 表示不需要shell
username@remote.ssh.server 换成你ssh帐户名和主机域名或者地址
或者替换成 -load sessionname 也可以
用dreamhost上的帐号试了一下,真的很快
由: number5 发表于 2006年12月05日 上午10时47分
这样真的有用吗?
本机和ssh服务器之间的通讯的确加密了,但是服务器替你访问站点时还是非加密通道呀?
还是TOR比较好。
由: dulao5 发表于 2006年12月05日 下午03时03分
我不明白一点,为什么用 Firefox 浏览时,不用设置 http 协议的代理地址?
由: Michael 发表于 2006年12月05日 傍晚08时38分
我就在用这种方式拿Dreamhost作Socks5代理,加上FireFox的FoxyProxy插件,访问Google Cache和Wikipedia都很方便。 :)
在number5的基础上补充一点:一般SSH服务器都支持公钥验证,用puttygen生成一个key-pair,就可以实现后台自动登陆SSH服务器。
由: Oasis Feng 发表于 2006年12月05日 晚上09时40分
晕,一直试着想通过DH来建立一个通道自己访问外网,没想到putty居然就可以建立这样的通道啊!
由: Chris 发表于 2006年12月05日 晚上10时45分
如果我没有理解错误的话
这样就能够通过类似https的方式,访问不提供https的网站,对吧?
另to楼上:
ssh访问是通过加密的方式,本机到ssh是明文,ssh到要访问的网站是加密通道才对。
由: Fwolf 发表于 2006年12月06日 夜间12时48分
putty这个功能真的太好玩了,我可以骗别人说我到美国了:)
原来这么简单啊:)
由: zola 发表于 2006年12月06日 早上06时11分
弄了个SilenceIsDefeat的账号,好像不行啊,是不是SilenceIsDefeat有限制了? 试了下其他ssh账号是可以的。
由: alon 发表于 2006年12月06日 晚上09时13分
在SilenceIsDefeat的faq中找到答案了,连ssh.silenceisdefeat.org就可以建ssh tunnel了
由: alon 发表于 2006年12月06日 晚上09时37分
在linux下如何实现呢?
由: ppip 发表于 2006年12月07日 下午01时41分
To add to what nathan suggested, on linux do
找到的在linux下实现的方式,用ssh命令就可以了。
ssh -qTfnN -D 7070 remotehost.
All the added options are for a ssh session that’s used for tunneling.
-q :- be very quite, we are acting only as a tunnel.
-T :- Do not allocate a pseudo tty, we are only acting a tunnel.
-f :- move the ssh process to background, as we don’t want to interact with this ssh session directly.
-N :- Do not execute remote command.
-n :- redirect standard input to /dev/null.
In addition on a slow line you can gain performance by enabling compression with the -C option.
由: ppip 发表于 2006年12月08日 上午10时51分
对于那些不支持socks v5的程序可以用SocksCap V2来转发,SocksCap下载地址 http://www.feedss.com/down/SocksCapV2.zip
由: feedss 发表于 2006年12月15日 下午01时47分
您好!请问您有没有联系方式呢?
我的企图:希望能得到你的建议一二,可以吗?我的QQ是674026016,谢谢。
由: lele 发表于 2006年12月19日 夜间12时00分
在配置tunnel过程中,如果同时选择第一个选项 Locals ports accept connections from other hosts,能连上你的机器的人就能共享你的tunnel了。例如我在我的电脑开设7070端口同时选择上面的选项。局域网的同事就能用 192.168.0.X(我本机ip)和7070端口连接我的ssh tunnel实现浏览。
由: 织梦者 发表于 2006年12月20日 上午10时45分
By the way,应该是SwitchProxy插件
由: 织梦者 发表于 2006年12月20日 晚上11时50分
这种方法自己知道自己私底下用还行,如果广而告之,人家服务器管理员不傻,
在ssh配置里加上如下的语句,上面一切方法全部失效......
到时候,,呵呵......
#cat /etc/ssh/sshd_config
.....
.....
AllowTcpForwarding no
GatewayPorts no
X11Forwarding no
......
由: 1288893 发表于 2007年03月16日 下午05时01分
silenceisdefeat.org怎么申请?
我用Paypal给donate@silenceisdefeat.org捐了1$,但是却一点回音都没,都好几天了。当时也给support@silenceisdefeat.org发了封邮件,但是都没有得到回复。。
不知道你们是怎么申请的。
由: 鬼仔 发表于 2007年06月20日 傍晚07时38分
找不到ping的地址,手工ping一下:
在Ubuntu下如何通过SSH隧道实现加密代理访问
http://talk.blogbus.com/logs/10543912.html
由: shizhao 发表于 2007年10月29日 傍晚07时43分
车东老师,问一下。
我使用这个方法好像不行,127.0.0.1连不上去?请问是什么原因引起的?需要开什么端口么?
我没有装防火墙,XP默认防火墙都没有开。
由: Eleven 发表于 2007年10月29日 晚上10时11分
试了一下
报错了
Server Refused our key
或者
Access Denied
是在Windows 下试验的,是不是和Putty帐户有关啊
请指教
由: hqin 发表于 2008年01月12日 下午04时36分
dns也被劫持了,有没有好的办法?
由: 素食环保敬老勤俭 发表于 2008年03月11日 上午10时00分
车东老师,我申请了你推荐的那个1美元ssh帐号,但是并不能进行数据转发啊
由: Kaka 发表于 2008年03月22日 下午06时06分
来个网络代理
http://med.idol-photo.org/0gfw/
速度蛮快
由: FK GFW 发表于 2008年04月06日 下午06时45分
没有SSH账号,可以在这里申请一个:http://blog.showjay.com/posts/free-ssh-account.html
由: 树杰 发表于 2008年04月27日 下午03时52分
这样使用 DH 帐号,主机的 IP 会不会被封啊?
由: Romoo 发表于 2008年05月25日 下午12时38分
不错的方法。
由: cocobear 发表于 2008年11月06日 下午04时49分
这是一个不错的办法,适合那些有 SSH 的账户的朋友,但是穿墙工具目前多的去了。
由: Charles Peng 发表于 2008年11月12日 上午09时43分
我一般用在线代理(Kdaili.com)的,不过这个方法也不错,回去试一试
由: wangwag 发表于 2008年12月10日 晚上10时27分
能够通过类似https的方式,访问不提供https的网站吗?
由: cheap uggs 发表于 2009年11月09日 下午02时55分
QQ使用socket代理时要什么用户密码,这个怎么回事?
由: nianzog 发表于 2009年11月27日 下午05时52分
没想到车东的博客也被墙了。
我有个问题请教:
请教myentunnel里tunnels的选项该如何设置?我在局域网想使用另一台电脑的ssh-tunnel,不想装ccproxy,而宁愿用privoxy,却都不通。
测试了putty的ssh-tunnel,选中Locals ports accept connections from other hosts后,局域网其他客户机可以正常连接。
请教myentunnel是否可以?
由: ebum 发表于 2010年02月19日 下午02时46分
Windos7,Firefox+SSH+Autoproxy,将www.google.com加到autoproxy的列表中, 也就是指定通过代理访问www.google.com但是发现很不稳定, 经常刷新好几下才能打开, 不知道这是配置问题还是什么其他原因, 请教答案, 谢谢...
由: jason 发表于 2010年07月16日 下午02时00分