cover
2014年12月6日 - 2023年3月19日

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 吧

客户端可选择使用刚刚cloneshadowsocks-nodejs,也可使用其它的客户端

其它客户端下载地址:http://shadowsocks.cn/clients.html

shadowsocks-gui for Windows: 下载完毕后解压直接打开如图,然后输入你的服务器公网地址、端口号、密码以及本地端口号即可.

gui

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总体来说还是比较容易搭建的,效果也很不错,速度嗖嗖的,不过不知道为什么感觉不稳定,偶尔会连不上,而且客户端隔一段时间需要重启一下才能正常~也不知道是不是由于我自己机器网络不太稳定的缘故,反正玩玩还是很好的~

shadowsocks github 地址

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

stackoverflow 地址

centos默认防火墙可能会导致端口无法访问,可以修改iptables规则,或者直接清除规则,清除使用iptables -F,然后iptables -A INPUT -p tcp --dport 8388 -j ACCEPT添加端口到iptables

issuse 地址