除去广为人知、人见人爱的VPN,其实还有十八般兵器存在于科学上网(翻墙)界,其中ShadowSocks可以说是其中一把功能齐全的瑞士军刀。服务器端提供了各种版本,如Python、Nodejs、Go、C libev等等,安装配置过程极其简单。而用户端则可以在windows、mac、iOS和android上轻松运行,很好很强大。

Shadowsocks是什么?

码农对于shadowsocks应该不陌生,而一般普通网民可能知之甚少。shadowsocks实质上也是一种socks5代理服务,类似于ssh代理。与vpn的全局代理不同,shadowsocks仅针对浏览器代理,不能代理应用软件,比如youtube、twitter客户端软件。如果把vpn比喻为一把屠龙刀,那么shadowsocks就是一把瑞士军刀,轻巧方便,功能却非常强大。

喜欢上shadowsocks的理由

很多时候,我们仅仅只是需要上一下google,收个gmail邮件,或者打开某个网站瞄一眼看看有无更新。这种情况下,vpn可以做到吗,可以,但是很麻烦,连个vpn,qq也得掉一次线,有时候还连半天连不上。而通过ss的话呢,后台运行一个小程序,然后浏览器点击切换一下SS的网络,就可以了。不用的时候,再切回来。这也就是其轻巧的地方。

如何使用shadowsocks?

  • 首先,当然你需要有一个shadowsocks账号,网上有热心网友免费共享出来,比如这个🙂
  • 当然,你也可以自行搭建shadowsocks服务器(下面有讲解如何安装shadowsocks server)。
  • windows平台
    1.下载一个shadowsocks的客户端程序(百度网盘下载),不需要安装,解压就可以用。
    官方下载地址:http://sourceforge.net/projects/shadowsocksgui/files/dist/
    2.运行解压后文件夹中的“shadowsocks.exe”,如下图,设置好shadowsocks的账号信息,点save;

    shadowsocks_windows_gui.png

3.下载安装chrome的浏览器插件Proxy SwitchySharp(或者百度网盘下载,下载后打开chrome,输入chrome://extensions,把下载的crx文件拖进去即可安装),下载完成后启用之,可以在chrome右上方看到程序的图标…

4.此时,可以切换至shadowsocks代理模式;

5.接下来,可以在浏览器中直接打开facebook.com试试,能访问就没问题。

CentOS下shadowsocks-libev一键安装脚本

本脚本适用环境:
系统支持:CentOS 6.x 32或64位
内存要求:≥128M
日期:2014年07月12日

关于本脚本:
一键安装 libev 版的 shadowsocks 最新版本。该版本的特点是内存占用小(600k左右),低 CPU 消耗,甚至可以安装在基于 OpenWRT 的路由器上。
友情提示:如果你有问题,请先参考这篇《Shadowsocks Troubleshooting》后再问。

默认配置:
服务器端口:8989
客户端端口:1080
密码:自己设定(如不设定,默认为teddysun.com)

客户端下载:
http://sourceforge.net/projects/shadowsocksgui/files/dist/

使用方法:
使用root用户登录,运行以下命令:

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev.sh
chmod +x shadowsocks-libev.sh
./shadowsocks-libev.sh 2>&1 | tee shadowsocks-libev.log

安装完成后,脚本提示如下:

Congratulations, shadowsocks-libev install completed!
Your Server IP:your_server_ip
Your Server Port:8989
Your Password:your_password
Your Local IP:127.0.0.1
Your Local Port:1080
Your Encryption Method:aes-256-cfb

Welcome to visit:http://teddysun.com/357.html
Enjoy it!

卸载方法:
使用 root 用户登录,运行以下命令:

阿里云-推广AD
./shadowsocks-libev.sh uninstall

其他事项:
客户端配置的参考链接:http://teddysun.com/339.html

安装完成后即已后台启动 shadowsocks ,运行:

ps -ef | grep ss-server | grep -v ps | grep -v grep

可以查看进程是否存在。
本脚本安装完成后,会将 shadowsocks-libev 加入开机自启动。

使用命令:
启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
查看状态:/etc/init.d/shadowsocks status

更多版本 shadowsocks 安装:
Shadowsocks Python版一键安装脚本(CentOS,Debian,Ubuntu)
Debian 下 Shadowsocks-libev 一键安装脚本
Shadowsocks-go 一键安装脚本(CentOS,Debian,Ubuntu)

特别说明:
1、已安装旧版本的 shadowsocks 需要升级的话,需下载本脚本的最新版,运行卸载命令./shadowsocks-libev.sh uninstall 后,再次执行本脚本即可安装最新版。
2、关于 CentOS 的默认 iptables 防火墙规则 icmp-host-prohibited ,如果安装之后发现已经启动 shadowsocks,本地客户端却不能连接上,请检查 iptables 是不是有如下的一条规则:

REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

运行命令:

/etc/init.d/iptables status

可以查看。如果有这条规则,则添加的 8989 端口需手动更改一下,放到这条规则的上一行。编辑 /etc/sysconfig/iptables 文件,将:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8989 -j ACCEPT

放在:

-A INPUT -j REJECT --reject-with icmp-host-prohibited

的前面。最终效果如下:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8989 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

编辑完后,重启 iptables 防火墙。命令:/etc/init.d/iptables restart

参考链接:
https://github.com/madeye/shadowsocks-libev