Home > IT类文章 > 如何使用SSH代理上网

如何使用SSH代理上网

January 17th, 2010 Arale Leave a comment Go to comments

最近一直有人问我, twitter上不去了, facebook上不去了, 至于twitter上不去倒是好解决, 随便搜索一下能出一大把的什么dbar或者是api什么的, 但是facebook就不然了. 还有一些关于技术类的文章, 明明能搜索到, 可就是打不开. 这样的情况下, 还是简单介绍一下解决方案.

首先是扫盲, 什么是代理. 一般情况下, 我想从A点访问B点, 是可以直接输入B点的域名来访问的, 但是某些原因(此处省略若干字), A点不能直接访问B点了. 就要找C点来帮忙, 通过C点来访问B点.

本文章讲解的是Windows/Linux系统下 + FF 的代理方案. 使用本方案前提是一定要保证有一个SSH帐号. 如果你有朋友有境外的主机的话, 基本上他可以为你提供一个, 还可以google一下免费的ssh一定会有很多答案, 具体操作. 本文不做过多赘述.

第一步:配置MyEnTunnel软件

下载并安装MyEnTunnel,该软件全名为 My Encrypted Tunnel。 如果无法访问, 请自行google

myentunnel

按照上图将自己的SSH帐号信息填写到相应的地方后,点击save按钮,再点击hide按钮。

第一次连接过程中会出现一个认证对话框,按照提示确认即可。以后的自动连接中将不再出现此认证对话框。

最后点击hide按钮,使对话框隐藏到系统任务栏中。

提示:

myentunelstatus

绿色代表连接成功且稳定;黄色代表正在连接或重新连接;红色代表连接失败。

第二步:配置Firefox浏览器
安装 AutoProxy
一般情况下,页面上方会出现下图提示是否允许安装,请点击“允许”。

ffalow

atuoproxy

点击立即安装,安装后,重新启动Firefox。然后你会看到如下对话框,按照下图依次进行选择,最后点击“确定”。

autoproxyset

至此配置已全部就绪。

如果是Linux的系统的话, FF的配置是相同的, 但是安装Expect而不是MyEnTunel这一步会麻烦一些. 这一步有2个办法.各有优点. A方案支持断线自动重连,B方案操作简单;智能判断网址并切换代理。

第一步A方案:安装并配置expect

在 debian/ubuntu 终端中输入 : apt-get install expect
在 opensuse 终端中输入:zypper in expect
在 fedora 终端中输入: yum install expect

安装完毕后新建一个文件,比如命名为 sshgfw , 将如下代码复制进去,并根据代码中的注释将部分代码修改为你自己的SSH帐号信息。

#!/usr/bin/expect

set timeout 60

 

spawn /usr/bin/ssh -D 7070 -g username@yourserver.com

#这里的 username 为你自己的用户名,yourserver.com 为你自己的服务器域名或ip

expect {

"password:" {

send "password\r"

#将第二个 password 改为你自己的密码

}

}

interact {

timeout 60 { send " "}

}

加上可执行权限 chmod a+x sshgfw, 然后就可以在它所在的目录 ./sshgfw 执行就行了。当然也可以把它复制到 /usr/local/bin 或 /usr/bin 等目录下,以方便本机所有用户都可以快捷的使用。

注:ssh 加上 -g (即在代码中的 ssh -D 7070 -g ) 可使局域网内其它机器使用我的机器做代理. 以我的情况为例:我在一个局域网内的 ip 为 192.168.1.16 , 当我联上服务器之后,我就可以使用 localhost:7070 做代理,同时我的局域网内的其它 ip 为 192.168.1.* 的机器,就可以用代理 192.168.1.16:7070 来穿墙啦。

第一步B方案:在终端直接登陆

打开终端,输入:ssh -D 7070 username@yourserver.com,回车;

输入密码后,回车,即可登陆。

FF配置如上文.


related post

Categories: IT类文章 Tags: ,
  1. Meteor
    April 12th, 2010 at 08:05 | #1

    写的很不错.

    但是关键其实在于设置Port Forward转向.

  1. No trackbacks yet.