亚马逊 AWS 免费服务

首先你需要注册一个免费的亚马逊的 AWS 服务,具体注册教程如下,准备好一张信用卡,根据下面的免费注册教程一步一步的来,就可以得到了一年免费使用的vps。这里就使用这个免费的vps来搭建一下Shadowsocks服务。

注册时候的注意事项

在注册完成后开始选择vps的时候,切记暂停一下,看一下右上角的服务器节点地址,因为很多人直接默认填过去了,导致选择的美国东部俄亥俄等,其实俄亥俄的延时还是比较大的,个人建议选择东京节点,还算是相当快的。虽然还是不如google的台湾节点。可以访问 http://www.cloudping.info/这个网址去查看各个节点的速度。

安全组设置

在启动了aws的实例之后,记得一定要设置一下安全组策略,不然到后面开启了ss服务会发现依旧无法访问。
在安全组的入站中创建一个自定义 TCP 规则,协议为TCP,然后端口范围就写你下面shadowsocks.json文件中的server_port的端口,来源就是选择0.0.0.0/0,点击添加即可

搭建shadowsocks服务

安装Shadowsocks

1
2
3
$ sudo apt-get update
$ sudo apt-get install python-gevent python-pip python-m2crypto python-wheel python-setuptools
$ sudo pip install shadowsocks

在安装中可能会出现以下报错

1
2
3
4
5
6
7
8
9
# pip install shadowsocks
Traceback (most recent call last):
File "/usr/bin/pip", line 11, in <module>
sys.exit(main())
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main
locale.setlocale(locale.LC_ALL, '')
File "/usr/lib/python2.7/locale.py", line 581, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting

是因为语言配置错误导致的,解决方案

1
$ export LC_ALL=C

配置Shadowsocks

1
$ sudo vim /etc/shadowsocks.json

写入以下内容

1
2
3
4
5
6
7
8
9
{
"server":"my_server_ip",
"server_port":8000,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"my_password",
"timeout":300,
"method":"rc4-md5"
}

然后保存

启动和停止

1
2
$ sudo ssserver -c /etc/shadowsocks.json -d start
$ sudo ssserver -c /etc/shadowsocks.json -d stop

在启动的时候有可能提示说找不到ssserver,这个时候可能是这个命令没有加入全局变量中,先使用whereis ssserver找到命令的位置,然做一个软连接ln -s 源位置 目标位置即可。或者直接把命令中的ssserver更换为你实际安装路径
如果出现以下报错

1
2
3
4
5
6
7
8
9
10
Traceback (most recent call last):
File "/bin/ssserver", line 9, in <module>
load_entry_point('shadowsocks==2.6.8', 'console_scripts', 'ssserver')()
File "/usr/lib/python2.7/site-packages/shadowsocks/server.py", line 60, in main
tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False))
File "/usr/lib/python2.7/site-packages/shadowsocks/tcprelay.py", line 584, in __init__
server_socket.bind(sa)
File "/usr/lib64/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 99] Cannot assign requested address

如果不想频繁重启来验证是否修改正确,可以使用以下命令查看

1
$ sudo ssserver -c /etc/shadowsocks.json -d status

可以尝试把上面的开始命令更换为再次启动

1
$ sudo sslocal -c /etc/shadowsocks.json -d start

查看日志

启动和访问的日志位置在/var/log/shadowsocks.log,访问日志和报错日志都在这里,如果有启动不了或者访问受限的问题,记得来这里查看并解决。

客户端下载和安装

最后只需要安装好对应的客户端https://github.com/shadowsocks,就可以正常使用ss了

疑问和解答

如果在安装或者启动途中有什么报错和问题,可以直接访问https://github.com/shadowsocks/shadowsocks/issues,即可,应该能解决你大部分的疑问。