Shadowsocks 搭建
这两天疯狂的找翻 X 工具,各种插件、VPN 等,最终决定搭个 shadowsocks.(主要是朋友搞了半年的免费
Microsoft Azure
帐号)
搭建环境
Microsoft Azure
平台上的Ubuntu Server 14.10
虚拟机
安装nodejs
环境
由于使用的是shadowsocks-nodejs
,所以首先当然是要安装nodejs
环境啦.
使用apt-get
安装:
$ sudo apt-get install nodejs
或自己下载源码安装:
$ wget http://nodejs.org/dist/vXXX/node-vXXX.tar.gz
$ tar xf node-vXXX.tar.gz
$ cd node-vXXX/
$ ./configure
$ make -j2 && sudo make install
安装npm
模块管理器:
$ sudo apt-get install npm
安装shadowsocks
使用npm
安装:
$ npm install shadowsocks
$ cd node_modules/shadowsocks
使用git
下载源码(请先安装git
哦):
$ git clone git://github.com/clowwindy/shadowsocks-nodejs.git
$ cd shadowsocks-nodejs
配置config
文件
使用vim
或其它编辑工具修改cnfig.json
文件:
{
"server":"my_server_ip", //服务器地址
"server_port":8388, //服务器接口
"local_port":1080, //本地接口
"password":"barfoo!", //密码
"timeout":600, //超时时常
"method":"table" //加密方式
}
然后遇到一个奇葩问题,将server
设置为公网地址时不知道为什么会报错,所以之后改为了0.0.0.0
才搞定了.
在Azure
中端口需要自己添加,有些其他的云平台应该也是,所以需要注意端口问题
启动shadowsocks
使用nodejs
启动shadowsocks
:
$ nohup node bin/ssserver &
若是没有问题,OK,基本可以算是大功告成,可以进入下一步了~ 也可以将shadowsocks
加入到开机自启,没咋玩linux
,也就没高兴研究~
本地客户端,准备开始翻 X 吧
客户端可选择使用刚刚clone
的shadowsocks-nodejs
,也可使用其它的客户端
其它客户端下载地址:http://shadowsocks.cn/clients.html
shadowsocks-gui for Windows
: 下载完毕后解压直接打开如图,然后输入你的服务器公网地址、端口号、密码以及本地端口号即可.
shadowsocks-nodejs client
: 下载还是和上面的git
下载shadowsocks
一样:
$ npm install shadowsocks
$ cd node_modules/shadowsocks
然后修改cnfig
文件,一样同上
最后启动客户端:
$ node bin/sslocal
配置PAC File
右键shadowsocks-gui
小图标,选择Edit PAC File
然后会看到一段javascript
代码(应该是...),然后就把你想要代理的网站添加到上面的列表里吧,比如,"google.com":1
nodejs
客户端没找到这功能在哪~(基本用的gui
,懒得找,嘿嘿)
总结
shadowsocks
总体来说还是比较容易搭建的,效果也很不错,速度嗖嗖的,不过不知道为什么感觉不稳定,偶尔会连不上,而且客户端隔一段时间需要重启一下才能正常~也不知道是不是由于我自己机器网络不太稳定的缘故,反正玩玩还是很好的~
Trouble Shooting
使用zsh
时需注意使用nohup node bin/ssserver &
然后exit
退出时 zsh 会检测当前的jobs
然后将其退出,所以使用zsh
启动需要注意disown
一下,具体的有三种方式(!和|好像是 zsh 特有的方式):
$ nohup node bin/ssserver &!
$ nohup node bin/ssserver &|
$ nohup node bin/ssserver & disown
centos
默认防火墙可能会导致端口无法访问,可以修改iptables
规则,或者直接清除规则,清除使用iptables -F
,然后iptables -A INPUT -p tcp --dport 8388 -j ACCEPT
添加端口到iptables