太长时间没有写博客了,最近折腾一些七七八八的东西,自己本身也不太擅长总结,很多技术也还没有到“可以为师”的地步,写出来质量也不会太高,所以就不献丑了。昨天刚好因为公司机器上的goagent不能用了,就打算自己部署一个Shadowsocks来用,服务器是128M的centos,足足折腾了一晚上,中间出了各种问题,这里稍微记录下,给遇到同样问题的朋友做个参考。另外说明下,我在公司的虚拟机上按照官方文档,很顺利的部署成功,所以下面的问题不是每个人都会遇到的,建议先按照官方文档部署shadowsocks。
一、安装失败,先升级Python
按照文档来部署,步骤只有三部:
yum install python-setuptoolseasy_install pippip install shadowsocks
但是我失败在了第二步,错误如下:
[root@keenwon ~]# easy_install pipSearching for pipBest match: pip 1.5.6Processing pip-1.5.6-py2.4.eggpip 1.5.6 is already the active version in easy-install.pthInstalling pip script to /usr/binInstalling pip2 script to /usr/binInstalling pip2.4 script to /usr/binUsing /usr/lib/python2.4/site-packages/pip-1.5.6-py2.4.eggProcessing dependencies for pip
执行第三步也是报错(前端是个苦差事,抽空好好学学Linux):
[root@keenwon ~]# pip install shadowsocksTraceback (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.pypython 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目前没有流量统计等功能,而且貌似作者也不打算加。
-完-