Shadowsocks服务端&客户端的部署
2014-12-03 · 847 chars · 5 min read
太长时间没有写博客了,最近折腾一些七七八八的东西,自己本身也不太擅长总结,很多技术也还没有到“可以为师”的地步,写出来质量也不会太高,所以就不献丑了。昨天刚好因为公司机器上的 goagent 不能用了,就打算自己部署一个 Shadowsocks 来用,服务器是 128M 的 centos,足足折腾了一晚上,中间出了各种问题,这里稍微记录下,给遇到同样问题的朋友做个参考。另外说明下,我在公司的虚拟机上按照官方文档,很顺利的部署成功,所以下面的问题不是每个人都会遇到的,建议先按照官方文档部署 shadowsocks。
一、安装失败,先升级 Python#
按照文档来部署,步骤只有三部:
yum install python-setuptools easy_install pip pip install shadowsocks
但是我失败在了第二步,错误如下:
[[email protected] ~]# easy_install pip Searching for pip Best match: pip 1.5.6 Processing pip-1.5.6-py2.4.egg pip 1.5.6 is already the active version in easy-install.pth Installing pip script to /usr/bin Installing pip2 script to /usr/bin Installing pip2.4 script to /usr/bin Using /usr/lib/python2.4/site-packages/pip-1.5.6-py2.4.egg Processing dependencies for pip
执行第三步也是报错(前端是个苦差事,抽空好好学学 Linux):
[[email protected] ~]# pip install shadowsocks Traceback (most recent call last): File "/usr/bin/pip", line 7, in ? sys.exit( File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 236, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 2097, in load_entry_point return ep.load() File "/usr/lib/python2.4/site-packages/pkg_resources.py", line 1830, in load entry = __import__(self.module_name, globals(),globals(), ['__name__']) File "/usr/lib/python2.4/site-packages/pip-1.5.6-py2.4.egg/pip/__init__.py", line 9, in ? from pip.log import logger File "/usr/lib/python2.4/site-packages/pip-1.5.6-py2.4.egg/pip/log.py", line 19 real_consumer = (consumer if not isinstance(consumer, colorama.AnsiToWin32) ^ SyntaxError: invalid syntax
在网上寻寻觅觅找到个解决办法:升级 Python,现在的版本是 2.4,计划升级到 2.7。升级方法就不说了,不是搞 python 的,而且网上一搜很多,唯一要注意的修改下 yum 的配置,yum 要使用老版本的 python 才行。
升级后,继续执行esay_install pip
,再次悲剧的报错:
Traceback (most recent call last): File "/usr/bin/easy_install", line 5, in <module> from pkg_resources import load_entry_point ImportError: No module named pkg_resources
继续寻寻觅觅,发现需要“Install the distribute package”,方法如下:
wget https://svn.apache.org/repos/asf/oodt/tools/oodtsite.publisher/trunk/distribute_setup.py python distribute_setup.py
然后继续执行esay_install pip
和pip install shadowsocks
,安装成功(不容易啊)。
二、服务端配置和客户端使用#
安装成功后,要新增一个配置文件,具体的可以看官方文档。例外它可以配置多个端口,多个密码给不通的人用,大概配置如下:
{ "server":"<你服务器ip>", "port_password": { "<端口号>": "<密码>", "<端口号>": "<密码>", "<端口号>": "<密码>" }, "local_port":1080, "timeout":300, "method":"aes-256-cfb", "fast_open": false, "workers": 1 }
然后安装相应的客户端,在 windows 上,我是使用的是shadowsocks-csharp。直接下载就可以使用:
另外关于 chrome 的插件 Proxy SwitchySharp,因为 shadowsocks-csharp 会修改 IE 的代理,所以浏览器默认就是使用 IE 的代理的,所以就没有必要使用 Proxy SwitchySharp 了,如果还要继续使用,可以设置到 127.0.0.1:1080 端口(我图上是 1081)。
三,结论#
1、shadowsocks 性能还是很好的,而且资源占用的比较少,我 128M 的小 VPS 还能支撑的起来,后期打算迁移到DigitalOcean,关于 vps 的看这篇文章。
2、shadowsocks 目前没有流量统计等功能,而且貌似作者也不打算加。
-完-