2015年1月13日星期二

【倾力原创】史上最详尽Shadowsocks从零开始一站式翻墙教程

原创声明


本教程由本人(Anonymous V)原创,于2014年11月7日在Google+首发,根据各位G友的积极反馈,历经持续2个多月的维护和更新,已成功帮助上千网友通过shadowsocks流畅翻墙,现在整理成图文混排版本发在本博客,以进一步方便大家查阅。近期发现有个别无耻之徒无视版权申明,非法抄袭、篡改教程内容并标注为自己的原创,为读者也为作者本人带来了不少困扰,在此予以强烈谴责和鄙视,并保留诉诸法律手段的权利。在此也再次申明,教程欢迎转发,但严禁通过抄袭篡改等手段为自己非法谋取商业利益的行为,请尊重作者本人的劳动成果。

教程首发Google+地址链接如下:
https://plus.google.com/103234343779069345365/posts/Xce4EJpLGhX

如果你觉得教程对你有帮助,请在帖子底部为教程+1转发(公开),以帮助更多的人。谢谢!

目前教程已经高度完善,如果你真的认真阅读了教程的每一句话,动手跟着执行了每一个步骤,根本不会遇到任何问题,轻轻松松,一次成功。世间之事最怕认真二字。(强烈建议在电脑等大屏设备上观看本教程,以免因为手机等小屏幕设备的自动排版和换行问题对教程产生误解导致搭建失败

前言


在G+混了一段时间后,发现部分小伙伴的翻墙事业还没有踏上康庄大道。在这儿的应该不少都是G粉,在Google服务全线被墙的严峻形势下翻墙不利索肿么能行。于是特地花了几天时间,写了篇比较详尽的Shadowsocks翻墙教程分享给大家,涵盖了从零开始的方方面面。
-------------------------------
友情提醒:别说你没基础、看不懂。所谓的“不会”都是懒的借口,而且教程不是看会的,是动手跟着教程一步一步做会的。如果你懒得动脑又懒得动手,那你现在已经可以点击右上方的X了。如果你已经准备好了,那么follow me,走你!特别提醒:以下的每一个部分都非常重要,你少看一句话都可能影响后续步骤的进行和最终的使用效果。
-------------------------------

Shadowsocks特点


1.省电,在电量查看里几乎看不到它的身影;
2.支持开机自启动,且断网无影响,无需手动重连,方便网络不稳定或者3G&Wi-Fi频繁切换的小伙伴;
3.可使用自己的服务器,安全和速度的保证;
4.支持区分国内外流量,传统VPN在翻出墙外后访问国内站点会变慢;
5.可对应用设置单独代理,5.0之后的系统无需root。

我自己的感受:随机启动24小时后台运行,占内存10MB以内,基本不怎么耗电,跟人直接置身墙外使用手机的感受差不多。
-------------------------------

VPS推荐与支付


Shadowsocks的正常使用需要服务端,其实所有的翻墙方式都需要服务端,搭建服务端需要你拥有一个属于自己的VPS。下面是我自己精挑细选出来的三家VPS供应商,如果你坚持认为我是在给这三家VPS打广告,你就不用往下看了。这三家我都在用,感觉不错,当然你也可以选择其他家的VPS产品。

搬瓦工(BandwagonHOST):

注:搬瓦工域名在部分地区被墙,可能需要翻墙访问,但在上面购买的VPS不受影响。

KVM架构 512MB内存  10GB硬盘 500GB流量/月 29.99美元/年(折合人民币15元/月)
(电信用户首选,官方最新上架的CN2线路特惠主机,只有Los Angeles节点)
https://bandwagonhost.com/aff.php?aff=1285&pid=56

特惠主机数量一般有限,可能随时断货。

KVM架构 512MB内存  10GB硬盘 1000GB流量/月 19.99美元/年(折合人民币10元/月)
(强力推荐,官方最新上架的中国直连特惠主机,只有Los Angeles节点)
KVM架构 1024MB内存  20GB硬盘 2000GB流量/月 39.99美元/年(折合人民币20元/月)
(官方最新上架的中国直连特惠主机,只有Los Angeles节点)

KVM架构 512MB内存  10GB硬盘 500GB流量/月 19.99美元/年(折合人民币10元/月)
(当前多节点KVM机房中最便宜的)
https://bandwagonhost.com/aff.php?aff=1285&pid=43

支付宝购买搬瓦工VPS详细教程:点击上面的优惠链接后,在“Billing Cycle”的下拉菜单里选择“$19.99 USD Annually”或者“$49.99 USD Annually”,“Location”保持默认即可,然后点击“Add to Cart”按钮,网页跳转后,点击“Checkout”,在新页面的“Your Details”部分输入你的个人资料以及注册信息,除了“Address 2”和“Company Name”之外,其余均为必填项目,注意,尽量填写真实信息,如果你在中国大陆,“Country”请选择“China”,以免被系统判定为欺诈而注册失败。“Payment Method”里选择“Credit Card and AliPay (Stripe)”,勾选“I have read and agree to the Terms of Service”,最后点击“Complete Order”,页面跳转后,点击绿色的大按钮“Pay now”,然后会弹出一个小窗口,先在“电子邮箱”一栏里输入你的支付宝账号(此处必须为邮箱账号),然后点击下方的“支付宝”按钮,此时系统会自动给你支付宝账号绑定的手机号发送一条带验证码的短信,在“输入发送至xxxx的校验码”下方输入6位数的短信校验码,然后在最下面的“身份证号码后5位”框里输入你的身份证号后5位,最后点击蓝色的“Pay now $xx”按钮,完成支付。


DigitalOcean:

注:DigitalOcean部分域名被墙,如遇显示不正常或无法访问,全站翻墙访问即可,在上面购买的VPS不受影响。

KVM架构    512MB内存  20GB硬盘   1000GB流量/月 5美元/月(折合人民币30元/月)
(楼主自己也在用)

Linode:

注:Linode域名在部分地区被墙,可能需要翻墙访问,但在上面购买的VPS不受影响。

Xen架构     1024MB内存  24GB硬盘   2000GB流量/月 10美元/月(折合人民币60元/月)
(只推荐给对连接速度和网络延迟有极致追求的用户,楼主自己也在用)
https://www.linode.com/?r=69edd5eafe47ed8a7e128c057f3367a90ce51135
(注册时Referral Code处输入69edd5eafe47ed8a7e128c057f3367a90ce51135

Linode只能使用信用卡支付,官方会随机手工抽查,被抽查到的话需要上传信用卡正反面照片以及可能还需要身份证正反面照片,只要材料真实齐全,审核速度很快,一般一个小时之内就可以全部搞定。账户成功激活以后,就可以安心使用了。

DigitalOcean和搬瓦工两家的VPS都支持PayPal付款,DigitalOcean也可以选择在账单里绑定信用卡进行支付。

值得说明的是无论是注册这三家VPS还是注册PayPal,尽量填写真实信息,这样一旦遇到审核会更容易通过,注册的时候遇到国家地区一定要如实选择你所在的真实地区如“China”,以防被系统判定为欺诈。

2015年6月26日更新:搬瓦工目前已经支持使用支付宝付款,支付时请注意选择带AliPay字样的支付方式。

关于支付的重要补充说明(必看!):有小伙伴反映PayPal绑定银联借记卡之后无法支付搬瓦工的VPS,DigitalOcean没问题,经过我调查之后,发现有人很顺利的就用银联卡支付成功,有人则死活不行,所以问题的具体原因不好说。但这里给出有效的解决方案:绑定信用卡。没有信用卡的学生党可以点击这里https://www.globalcash.hk/(可放心使用,是一家在国内非常知名的虚拟信用卡服务商)申请一张虚拟信用卡,注册快速,可用普通网银充值。而且该卡还可以绑定Google Wallet,Google Play上面的软件和硬件可随便买(提醒:Google Wallet有一套很复杂的安全检测机制,无论你购买什么东西,如果不小心遇到订单被取消的情况,那都很正常,这是题外话了)。此外, DigitalOcean审核较为严格,尤其是对于选择了信用卡作为支付方式的用户,可能会要求你上传身份证明以及信用卡照片什么的,而且审核过程也需要等待,如果你怕麻烦,我建议你直接使用PayPal支付,方便快捷。通过审核开始正式使用后,一般就没什么问题了,多点耐心。

-------------------------------

VPS节点的选择


搬瓦工各节点测试IP:
Los Angeles:   104.194.78.3
Florida:       74.121.150.3
Phoenix:       198.35.46.2(可在控制面板里切换到这个机房)

DigitalOcean各节点测试域名:
新加坡:        speedtest-sgp1.digitalocean.com
New York:      speedtest-ny1.digitalocean.com
Amsterdam:     speedtest-ams1.digitalocean.com
英国伦敦:      speedtest-lon1.digitalocean.com

Linode各节点测试域名:
Tokyo,JP:      speedtest.tokyo.linode.com
Fremont,CA:    speedtest.fremont.linode.com
Newark,NJ:     speedtest.newark.linode.com
Atlanta,GA:    speedtest.atlanta.linode.com
Dallas,TX:     speedtest.dallas.linode.com
London,UK:     speedtest.london.linode.com

请在CMD下自行使用“ping IP -t”或“ping 域名 -t”命令来测试不同位置的机房与你的电脑之间的ping值以及丢包率(Ctrl+C退出测试)。

如果还是不知道该选择哪个节点的小伙伴,搬瓦工一般选用Los Angeles节点居多,DigitalOcean一般选用San Francisco节点居多(都在美国西海岸),而Linode一般选择“Tokyo,JP”(日本节点)或者“Fremont,CA”(美国西海岸),由于Linode日本节点ping值很低(70ms左右)、销售火爆,可能会一时无货,如果遇到无货,等一会再试试(我也是刷新了一会就有了)。一开始节点选择的不理想也不要紧,以后还可以方便的切换机房。

特别对比:Linode的Fremont,CA节点与DigitalOcean的San Francisco节点相比,同在美国西海岸,ping值和丢包率基本差不多,但Linode的网速明显更快。
-------------------------------

VPS的创建与使用


搬瓦工默认系统为Centos 6 x86,保持默认即可;DigitalOcean创建VPS的时候(Create Droplet)选择CentOS 6.9 x64(自作聪明选择CentOS 7的人是没救的);Linode的详细操作说明见下方。

针对搬瓦工的专属补充教程:可能由于搬瓦工官方发现很多人都在他家的VPS上面搭建了Shadowsocks,于是机灵的官方在自家的控制面板里集成了一键搭建服务,大大降低了新手搭建难度,实现了傻瓜化的操作。我简述下流程:点击“Services”里的“My Services”,点击“KiwiVM Control Panel”,这时会跳转到一个新页面。将新页面左侧的滚动条拉到底,找到“Shadowsocks Server”字样并点击进入,然后点击“Install Shadowsocks Server”,几秒钟之后显示Completed的字样就代表完成了。这时候点击“Go back”或者直接点击左侧的“Shadowsocks Server”,你会看到出现了一个叫做“Shadowsocks server controls”的东西,上面有默认的加密方式(encryption)、服务器端口(port)以及密码(password),你可以直接使用默认的,也可以点击旁边的“Change xx”按钮进行修改,最后检查一下Status是不是Running,不是的话就点一下旁边的“Start”。至此,你的Shadowsocks服务端就搭建完成了,你可以直接跳转到本教程后面的客户端配置部分了(搬瓦工也自带了简易的客户端配置说明“What's next?”)。注意,此方法为搬瓦工专属,仅供懒人和纯新手,你如果想在更好更快的其他家的VPS上面搭建Shadowsocks服务,你还是需要老老实实的学习下面的手工搭建方法,而且我强烈建议你如果有能力也有精力,最好掌握搭建的原理,对于你以后维护自己的VPS或者再学习搭建其他的翻墙服务都大有脾益。

DigitalOcean创建VPS过程补充说明:点击网页左上角绿色的“Create Droplet”按钮,输入你的“Droplet Hostname”(英文),然后“Select Size”选择你的付费套餐,“Select Region”选择按照上面的教程测出来的对你最快的节点,“Select Image”选择CentOS 6.9 x64,没提到的选项保持默认即可,最后点击最下方的“Create Droplet”。

注册完毕后,你已经获得了你VPS的IP,SSH端口,root密码。去下面的地址下载putty,用于在你的windows系统上远程登陆你的VPS。注意:用putty登录VPS时输入的密码是不可见的,正常输入完毕后回车即可:


搬瓦工需要在“My Services”里进入“KiwiVM Control Panel”点击“Root password modification”来获得root密码,SSH端口在邮件或者控制面板里可看到,用户名是root;

特别警告:搬瓦工的控制面板里有个“OpenVPN Server”选项,可以一键搭建OpenVPN服务端,千万别去使用。否则,到时候你的VPS彻底挂了可别怪我没有提前提醒你(不作死就不会死),详细原因请自行查看教程后面的进阶答疑部分。

DigitalOcean则是把密码发到了你邮箱里,而且DigitalOcean在首次登陆VPS的时候系统会提示你修改,你再输入一次原密码后连续输入两次新密码就OK了,DigitalOcean默认SSH端口为22,用户名是root。

Linode的详细操作说明:Linode账户在绑定信用卡激活后,就可以创建VPS了。值得说明的是,Linode的控制面板较为复杂,当然伴随而来的是功能也更强大。在“Linodes”里选择套餐,左下角选择机房位置,完成后可看到给你分配的IP以及主机名称,点击主机名称比如“linode654321”,然后点击“Deploy an Image”,在“Image”里面选择“CentOS 6.5”,在“Root Password”的方框里填入你的root密码,然后点击下方的“Deploy”按钮,大概1分钟左右就会创建完毕。点击“Dashboard”下的“Boot”按钮,你的VPS就开始启动了,启动完成后,就可以使用putty来操作你的VPS了,默认SSH端口为22。


下面的内容需要你有一点点linux的基本知识,用过windows下CMD的小伙伴应该能很快上手,全部命令和内容都可以复制下来通过右键直接粘贴到putty里执行。

vi编辑器基本用法扫盲(新手必读)
-------------------------------

Shadowsocks服务端搭建


下面的命令,需要一行一行的执行,每输入一行命令,回车执行,如果没有报错,即为执行成功,出现确认提示的时候,输入 y 后,回车即可。每行命令可以复制后在putty里右键粘贴,回车执行。

yum install epel-release
yum update
yum install git python-setuptools libsodium supervisor
easy_install pip==9.0.3
pip install git+https://github.com/shadowsocks/shadowsocks.git@master





继续执行命令

vi /etc/shadowsocks.json

此时按 i 键进入编辑模式,putty黑框的左下角会出现 -- INSERT -- 字样,然后一次性复制下面的内容(复制之前记得修改8388和yourpassword为你自己的端口号和密码,此端口号不是你的SSH端口号,而是你在手机或电脑上的shadowsocks客户端连接VPS上搭建的服务端的端口号,范围 1 - 65535 ,只要不和现有的端口号如SSH端口冲突都可以,记下你修改的端口号和密码,待会儿在配置手机和电脑的客户端时还要用到),在putty里右键,此时复制的内容应该已经粘贴到了putty里

----------以下内容为复制内容----------
{
    "server":"0.0.0.0",
    "server_port":8388,
    "local_port":1080,
    "password":"yourpassword",
    "timeout":600,
    "method":"aes-256-gcm"
}
----------以上内容为复制内容----------


复制完成后,按 Esc 键退出编辑模式,此时putty黑框左下角的 -- INSERT -- 字样消失,按下 : 键,输入 wq 后回车,此时文件保存完毕并退出了vi编辑器。(“ : ”的输入方法为“Shift+字母L右侧的分号键”)

继续执行命令

vi /etc/supervisord.conf

此时你应该能看到很多英文内容,按 i 键再次进入编辑模式,putty黑框的左下角会出现 -- INSERT -- 字样,用方向键将光标调整至文件尾部的空行处,然后一次性复制下面的内容,在putty里右键,此时复制的内容应该已经粘贴到了putty里

----------以下内容为复制内容----------
[program:shadowsocks]
command=ssserver -c /etc/shadowsocks.json
autostart=true
autorestart=true
user=root
log_stderr=true
logfile=/var/log/shadowsocks.log
----------以上内容为复制内容----------


复制完成后,按下回车键给文件尾部留出空行,然后按 Esc 键退出编辑模式,此时putty黑框左下角的 -- INSERT -- 字样消失,按下 : 键,输入 wq 后回车,此时文件保存完毕并退出了vi编辑器。

继续执行命令

vi /etc/rc.local

此时你应该能看到几行英文内容,按 i 键再次进入编辑模式,putty黑框的左下角会出现 -- INSERT -- 字样,用方向键将光标调整至文件中部的空行处,然后一次性复制下面的内容,在putty里右键,此时复制的内容应该已经粘贴到了putty里

----------以下内容为复制内容----------
service supervisord start
----------以上内容为复制内容----------


复制完成后,按 Esc 键退出编辑模式,此时putty黑框左下角的 -- INSERT -- 字样消失,按下 : 键,输入 wq 后回车,此时文件保存完毕并退出了vi编辑器。

最后执行命令

reboot

此时,你的VPS重新启动,服务端已经完全配置完毕,putty会弹出一个连接已断开的提示框,关闭即可(不是报错)。


小提醒:搬瓦工的VPS在执行完reboot命令后有时会遇到重启失败的情况,这时候进入控制面板,看一下“Status”是不是“Running”,如果不是的话,点一下“Actions”里的“start”按钮即可。
-------------------------------
别光顾着看教程哦,请不要吝啬你的举手之劳,在帖子底部为本教程+1转发(公开),以帮助更多的人。谢谢!
-------------------------------

Shadowsocks客户端配置


至此,shadowsocks的服务端已经部署完成。剩下的就是下载客户端安装到你的手机和电脑上,记得修改客户端的相关设置保持和你的服务端参数一致哦。

Android客户端下载链接
Google Play:(推荐在Google Play下载,自动适配你的系统版本,以免出现问题
无Google Play(直接下载APK安装包):

Android手机客户端配置示例(以上述服务端配置为例):
注意:已经root手机的小伙伴请勿授予root权限,以免发生未知问题。

配置名称:随便写
服务器:你的VPS IP地址(非0.0.0.0)
远程端口:8388
本地端口:1080
密码:yourpassword
加密方法:AES-256-GCM
路由:绕过局域网及中国大陆地址
设置选项里的自动连接:勾选

电脑客户端配置示例(以上述服务端配置为例):
(示例客户端版本:Shadowsocks-4.0.6,系统Windows 7,如遇无法启动的情况,请右键以管理员身份运行)

服务器 IP:你的VPS IP地址(非0.0.0.0)
服务器端口:8388
密码:yourpassword
加密:aes-256-gcm
代理端口:1080
备注:随便写

右键任务栏纸飞机小图标,勾选“启用系统代理”、“开机启动”;系统代理模式:PAC模式(如遇无法访问的网站可临时切换为全局模式)。

注:新版的shadowsocks电脑客户端已经支持一键切换系统代理,无需浏览器插件,内置可编辑的PAC服务,并提供HTTP代理,兼容IE。当然,你也可以继续使用Chrome浏览器配合SwitchySharp代理插件使用,SwitchySharp的具体配置如下图所示:




-------------------------------
以上内容在搬瓦工和DigitalOcean以及Linode三家的VPS上已经全部测试通过,无误。

对于能够成功连接但觉得上网速度慢的小伙伴:

1.请先确认你自己有没有严格按照教程选择对你最快的节点;
2.请将server_port由默认的8388改为其他端口;
3.如果速度还是不满意,那么请将你的VPS更换为DigitalOcean或者Linode(你要始终相信一分价钱一分货)。
4.南方部分地区电信用户的国际出口遭到电信人为限制,如果当地有“国际精品网”业务,开通后可立即完美解决这个问题。如果不愿意给电信交保护费,建议尝试使用DigitalOcean的新加坡节点或者Linode的日本节点,如果速度还是不满意,换移动和联通吧。

看到这里已经折腾成功的小伙伴请别忘记在帖子底部为本教程+1转发(公开),以帮助更多的人哦。谢谢!
-------------------------------

进阶答疑


本答疑会根据大家的反馈以及shadowsocks的不断更新而不定期更新,进阶部分针对已经具备一定基础的非新手,这部分内容遇到任何问题请自行Google。

1.Android 5.0的Shadowsocks为什么耗电量非常高?

Android 5.0的电量统计模块把所有经过shadowsocks代理的流量所产生的耗电量都算在了shadowsocks上,因此看起来会很耗电,比如你Chrome浏览器的电量都被算到了shadowsocks头上,实际上还是很省电的。

2.如何查看当前VPS上的Shadowsocks服务端版本号?

pip show shadowsocks

3.以后如何升级VPS上的Shadowsocks服务端?

pip install --upgrade git+https://github.com/shadowsocks/shadowsocks.git@master
reboot

4.我搭建过程中不小心出错,想重新来过,如何重装VPS的系统?

搬瓦工:VPS控制面板里,Install new OS
DigitalOcean:VPS控制面板里,Destroy,Rebuild
Linode:VPS控制面板里,Rebuild

5.我开始选择的节点线路不理想,如何切换机房?

搬瓦工:VPS控制面板里,Migrate to another DC,无需重新搭建Shadowsocks服务端。
DigitalOcean:新建一台你想要机房的VPS,删除原来的,需要重新搭建Shadowsocks服务端。
Linode:新建一台你想要机房的VPS,删除原来的,需要重新搭建Shadowsocks服务端。

6.如何配置多账户?

小提示:Shadowsocks支持一个账户在多个终端同时使用,一般人没有配置多账户的必要。所以如果你看不懂,那你还是别折腾了。

{
    "server":"0.0.0.0",
    "port_password":{
        "8388":"password1",
        "8389":"password2",
        "8390":"password3",
        "8391":"password4"
    },
    "timeout":300,
    "method":"aes-256-gcm"
}

友情提醒:GFW目前是根据流量检测分析匹配统计学模型的方式来判断你是否在翻墙,换言之,你用什么方式翻墙并不重要,重要的是你和服务器之间的流量特征是否像是在翻墙。一旦匹配,既对你进行有罪推论,轻则限速,重则彻底封锁IP。在IPv4地址已经枯竭的今天,可用的美国IP地址会越来越少,所以不建议将自己的账号分享多人使用,以防被封。

7.为什么我的shadowsocks在刚搭建好的时候速度很快用了几天后速度就变慢了甚至网页都很难刷出来?

出现这种情况有多种可能性:

①shadowsocks长时间保持不间断连接会被GFW根据流量模型分析判断出你可能在翻墙(原理见上面的友情提醒),于是进行主动干扰,轻则限速,重则切断你和服务端的连接。解决方法:切换一下你的网络,比如从Wi-Fi切换到3G或者从3G切换到Wi-Fi或者直接断开网络连接,等待10分钟以后,一般即可恢复正常。PS:每天晚上睡觉前关闭手机的网络连接会大大减小此种情况发生的概率;而将自己的VPS分享给多人使用则可能大大增加此种情况发生的概率,请自行斟酌。值得说明的是,VPN最容易受到此类干扰,而shadowsocks作为可自定义端口的私有协议代理已经是最不容易被干扰的翻墙方式之一了。

②机房的QoS策略。解决方法:将shadowsocks服务端的server_port改为常见端口。

③本地线路抽风,你所使用宽带运营商的国际出口出现问题。比如最近南方电信部分地区国际出口严重不稳定(电信人为限制)。解决方法:<1>先尝试一下DigitalOcean的新加坡节点或者Linode的日本节点;<2>如果当地有“国际精品网”业务,开通后可立即完美解决这个问题;<3>如果不愿意给电信交保护费,那么就换家运营商吧,移动和联通都没问题。

④VPS间歇性抽风。无论你选择哪家供应商的VPS,都可能遇到有时候线路抽风、VPS速度慢或者不正常。不同的是,越是价位高的VPS出现抽风情况的可能性越低,越是价位高的VPS出现抽风情况时能保证的最低连接速度越高。出现这种情况的可能性比较低,我手头的无论是搬瓦工还是DigitalOcean以及Linode暂时未遇到线路抽风情况。

⑤搬瓦工的年付VPS为OpenVZ架构,同一母机下的VPS越多,同一时间段使用的人越多,速度就越慢。解决方法:一分价钱一分货,将VPS更换为DigitalOcean或者Linode。

⑥中国的国际出口带宽有限,晚高峰时段可能出现网络拥堵,速度多少会受影响,但这种情况起码白天的速度应该是没问题的。

⑦如果你在VPS上搭建了VPN并且经常使用,尤其是OpenVPN,请立即停止使用。VPN协议特征明显,GFW可以非常容易的检测到,从而盯上你的IP,轻则限速,重则彻底屏蔽。常见VPN协议根据易受干扰的程度从大到小依次为:OpenVPN > PPTP > L2TP > IPSec,尤其是OpenVPN,GFW已经可以实现对其定点清除(同样遭此待遇的还有SSH翻墙)。如果你想让自己VPS的IP快速报废,那么就请尽情的使用搬瓦工的控制面板搭建OpenVPN吧。重要提醒:在不明所以的情况下尽量不要在自己的VPS上搭建其他杂七乱八的翻墙服务尤其是一些早已过时和落后的翻墙方式,翻墙手段宜新不宜旧,只搭一个Shadowsocks是最能保证你翻墙效果和服务器稳定的好策略。

⑧其他:偶尔的速度慢或者连不上都是正常的,但如果经常性的速度奇慢或者连不上那就不正常了。

8.为什么是CentOS?

作为服务器而言,永远都是稳定性压倒一切。而CentOS简单易用,上手快速,业界公认的稳定,且易于维护,是服务器操作系统首选。

9.为什么是Python版?

Python版的Shadowsocks易部署,后期升级维护都非常方便,相当适合新手,支持的特性也最多,稳定性好,运行效率高

10.为什么使用supervisord?

与繁琐的带参执行方式相比,service命令在CentOS系统里使用起来更加灵活方便,比如:

①启动Shadowsocks服务端:service supervisord start
②关闭Shadowsocks服务端:service supervisord stop
③重启shadowsocks服务端:service supervisord restart
-------------------------------

错误排查


已经成功的小伙伴可以直接略过这部分了。

温馨提醒:在怀疑教程的任何一个地方之前,请先怀疑你自己。

服务端搭建成功的唯一衡量标准是在手机或者电脑客户端正确配置后能否顺利的访问被屏蔽的网站,无论是电脑还是手机,只要有一个终端能够成功翻墙即视为服务端搭建成功,出现所谓的可以连接但无法上网其实还是服务端或者客户端的配置有问题,认真按照下面的步骤一步步排错吧。

遇到问题的小伙伴请先认真仔细阅读这两篇文章
上面的链接为vi编辑器基本用法扫盲(新手必读)

最容易出现问题的地方,就是vi编辑器的使用,如果你在执行vi命令后没有按 i 键进入编辑模式就直接复制粘贴,会造成粘贴内容的首行被覆盖,从而导致错误;或者你在粘贴内容后,没有以正确的方式保存退出,同样会出现问题。

如果你在执行完reboot命令后,手机端无法连接,请先确保你的手机端配置正确,并且网络环境良好(参照上面的Android手机客户端配置示例)。然后用putty登入你的VPS后通过以下方式逐步排查:

1.执行命令service supervisord start,执行完毕后如果没有报错,手机端也可以正常连接,那么问题出在vi /etc/rc.local这个环节,请重新检查该文件配置;如果手机端依然无法连接,请继续往下看。

2.执行命令ssserver -c /etc/shadowsocks.json,执行完毕后如果没有报错,手机端也可以正常连接,那么问题出在vi /etc/supervisord.conf这个环节,请重新检查该文件配置;如果手机端依然无法连接,请继续往下看。

3.如果依次进行完以上两步后,手机端依然无法连接,那么问题出在vi /etc/shadowsocks.json环节,请重新检查该文件配置。

4.如果以上三个文件的配置问题都解决后,执行reboot命令后,手机端依然无法连接,那么说明你在教程最开始的5行命令没有正确执行,在搬瓦工和DigitalOcean以及Linode官网的控制面板里重装VPS系统后,按照教程认认真真仔仔细细的重新来过吧。
-------------------------------

尾巴


整个教程到这里就结束了,我按照自己写的内容重新搭建了一遍没有遇到问题,大家有什么问题可以在帖子下面提问,在提问之前请先确保你是严格按照教程一步步认真往下执行了的。关于远程登陆VPS后linux的使用问题最好先Google一下。另外,本教程可能根据大家反馈的情况随时更新,遇到问题请点击下面的链接查看原帖:
https://shadowsocks.blogspot.com/2015/01/shadowsocks.html


如果你觉得教程对你有帮助,请在帖子底部为教程+1转发(公开),以帮助更多的人。谢谢!

130 条评论:

  1. supervisord 这个服务 ,搬瓦工上面就没成功过....CENTOS 7,6,5都试了..还是裸体手动输入命令了...唉.

    回复删除
  2. supervisord 可以安装,可以手动输入让服务启动,SS也正常启动了.就是到了rc.local那里.让他开机启动就完蛋了..没反应了..只得手动..那我还不如用ssserver了呢.你说是不..还多装一个服务占内存..现在就是原始命令了.重装几次都不行..果断放弃了.大侠有啥办法么..

    回复删除
    回复
    1. 既然可以手动使用supervisord命令启动,那说明supervisord.conf的配置没问题,也就是问题就出在rc.local这里。主要两点:1.系统使用CentOS 6系,默认的就没问题;2.rc.local的配置如图所示。只要这两点符合,百分百开机自启动。自己检查一下吧。

      删除
    2. 6系是吧...那我在最后试验一下..我好想用的7.3Q先...祝我成功吧...

      删除
  3. 请问怎么 让 chacha20 ,加密可用啊.用你的方法,如果加密方式改这个就连不上..改256那个就可以..听说这个会快些.想试试..根据wiki编译了.有点错误,感觉也算是通过了吧,一堆字符晕死.看花了眼.其他都一样,加密改这个就不行拉..求解呀

    回复删除
  4. 求教楼主,连接不成功后用ssserver -c /etc/shadowsocks.json检测后报错如下,应该如何解决呢?
    INFO: loading config from /etc/shadowsocks.json
    shadowsocks 2.6.4
    2015-01-16 21:31:29 INFO loading libcrypto from libcrypto.so.10
    2015-01-16 21:31:29 INFO starting server at 0.0.0.0:6698
    Traceback (most recent call last):
    File "/usr/bin/ssserver", line 9, in
    load_entry_point('shadowsocks==2.6.4', 'console_scripts', 'ssserver')()
    File "/usr/lib/python2.6/site-packages/shadowsocks/server.py", line 70, in main
    tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False))
    File "/usr/lib/python2.6/site-packages/shadowsocks/tcprelay.py", line 591, in __init__
    server_socket.bind(sa)
    File "", line 1, in bind
    socket.error: [Errno 98] Address already in use

    回复删除
    回复
    1. 不过我把IP改为了服务器IP 反正现在可以用了,不过搬瓦工比较慢···

      删除
    2. 最后补充一下吧,我发现设置好之后需要等一段时间,大概半小时才可以连上

      删除
    3. 2.执行命令ssserver -c /etc/shadowsocks.json,执行完毕后如果没有报错,手机端也可以正常连接,那么问题出在vi /etc/supervisord.conf这个环节,请重新检查该文件配置;如果手机端依然无法连接,请继续往下看。

      3.如果依次进行完以上两步后,手机端依然无法连接,那么问题出在vi /etc/shadowsocks.json环节,请重新检查该文件配置。

      删除
    4. 把shadowsocks.json的内容粘贴出来我看一下吧。

      删除
    5. 服务端配置的时候IP可以填写0.0.0.0也可以填写VPS的真实IP。最后执行完reboot命令后VPS重新启动需要一定的时间,但用不了半个小时。

      删除
    6. {
      "server":"0.0.0.0",
      "server_port":6698,
      "local_port":1080,
      "password":"xxxxxx",
      "timeout":600,
      "method":"rc4-md5"
      }

      删除
    7. 客户端用的也是rc4-md5~

      删除
    8. 加密改成aes-256-cfb,或者把ip改成服务器真实地址也是报一样的错误,麻烦楼主了。

      删除
    9. 这个配置文件没啥问题。如果你问题还没解决,把你的VPS地址和root密码环聊给我,我上去看一下问题在哪。

      删除
    10. 还是没有解决,我把VPS地址和root密码发给你了,麻烦帮我看看哈。

      删除
    11. 检查完了,你的服务端配置完全正确,并且已经可以正常连接。你检查下手机或者电脑的客户端配置有没有问题吧。

      删除
    12. 十分感谢,现在能用了。

      删除
  5. 查ssserver -c /etc/shadowsocks.json时报错
    INFO: loading config from /etc/shadowsocks.json
    /usr/lib/python2.6/site-packages/shadowsocks/utils.py:120: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
    e.message)
    ERROR: found an error in config.json: Expecting , delimiter: line 6 column 5 (char 107)
    请问怎么解决啊

    回复删除
    回复
    1. 把shadowsocks.json的内容粘贴出来我看一下

      删除
    2. [supervisord]
      http_port=/var/tmp/supervisor.sock ; (default is to run a UNIX domain socket server)
      ;http_port=127.0.0.1:9001 ; (alternately, ip_address:port specifies AF_INET)
      ;sockchmod=0700 ; AF_UNIX socketmode (AF_INET ignore, default 0700)
      ;sockchown=nobody.nogroup ; AF_UNIX socket uid.gid owner (AF_INET ignores)
      ;umask=022 ; (process file creation umask;default 022)
      logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
      logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB)
      logfile_backups=10 ; (num of main logfile rotation backups;default 10)
      loglevel=info ; (logging level;default info; others: debug,warn)
      pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
      nodaemon=false ; (start in foreground if true;default false)
      minfds=1024 ; (min. avail startup file descriptors;default 1024)
      minprocs=200 ; (min. avail process descriptors;default 200)

      ;nocleanup=true ; (don't clean up tempfiles at start;default false)
      ;http_username=user ; (default is no username (open system))
      ;http_password=123 ; (default is no password (open system))
      ;childlogdir=/tmp ; ('AUTO' child log dir, default $TEMP)
      ;user=chrism ; (default is current user, required if root)
      ;directory=/tmp ; (default is not to cd during start)
      ;environment=KEY=value ; (key value pairs to add to environment)

      [supervisorctl]
      serverurl=unix:///var/tmp/supervisor.sock ; use a unix:// URL for a unix socket
      ;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
      ;username=chris ; should be same as http_username if set
      ;password=123 ; should be same as http_password if set
      ;prompt=mysupervisor ; cmd line prompt (default "supervisor")

      ; The below sample program section shows all possible program subsection values,
      ; create one or more 'real' program: sections to be able to control them under
      ; supervisor.

      ;[program:theprogramname]
      ;command=/bin/cat ; the program (relative uses PATH, can take args)
      r
      ;priority=999 ; the relative start priority (default 999)
      ;autostart=true ; start at supervisord start (default: true)
      ;autorestart=true ; retstart at unexpected quit (default: true)
      ;startsecs=10 ; number of secs prog must stay running (def. 10)
      ;startretries=3 ; max # of serial start failures (default 3)
      ;exitcodes=0,2 ; 'expected' exit codes for process (default 0,2)
      ;stopsignal=QUIT ; signal used to kill process (default TERM)
      ;stopwaitsecs=10 ; max num secs to wait before SIGKILL (default 10)
      ;user=chrism ; setuid to this UNIX account to run the program
      ;log_stdout=true ; if true, log program stdout (default true)
      ;log_stderr=true ; if true, log program stderr (def false)
      ;logfile=/var/log/cat.log ; child log path, use NONE for none; default AUTO
      ;logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
      ;logfile_backups=10 ; # of logfile backups (default 10)

      [program:shadowsocks]
      command=ssserver -c /etc/shadowsocks.json
      autostart=true
      autorestart=true
      user=root

      删除
    3. 我说把你的shadowsocks.json贴一下,你给我贴的是supervisord.conf……

      删除
    4. 发现问题了,输入password之后把逗号也删除了,实在是太逗比了。。。现在可以了,感谢楼主啊,以后不用买vpn了

      删除
  6. 您好,小白问shadowsocks不需要购买吗

    回复删除
  7. 感谢博主!搭建成功。纯小白第一次。
    有个问题想请教一下:如果用SwitchyOmega的话怎么设置?
    我选择socks5,代理服务器地址填vps地址,代理端口填 server_port 但是没法连接,显示响应时间过长。求教,十分感谢!

    回复删除
    回复
    1. SwitchyOmega没测试过,你对照下上面SwitchySharp的设置,自行参考一下吧。

      删除
    2. SwitchyOmega代理端口应该填local_port 想绕过shadowsocks电脑客户端直接用SwitchyOmega貌似不成

      删除
    3. 想绕过SwitchyOmega之类的代理插件可以,但想绕过shadowsocks客户端那是不可能的。

      删除
    4. 一个笨办法,先卸载SwitchyOmega,在SwitchySharp里面配置好后,去chrome商店直接升级到SwitchyOmega,所以对配置就自动配好了。

      删除
  8. 此评论已被作者删除。

    回复删除
  9. 能设置ios用的pac文件吗?搬瓦工4.99美元/年

    回复删除
  10. 请问下我在MacOS X上用iTerm2可不可以代替putty

    谢谢!!!

    回复删除
    回复
    1. 完全可以,你如果熟悉iTerm2的使用,那也就几分钟的事情。

      删除
  11. 为什么我的putty会提示

    network error:Connection timed out

    回复删除
    回复
    1. 连接超时了,你用的哪家的VPS?本地宽带是什么?

      删除
    2. 问题已解决,我用的是linode,宽带是电信

      删除
  12. 请问下这是什么情况

    Linux (none) 3.18.1-x86_64-linode50 #1 SMP Tue Jan 6 12:14:10 EST 2015 x86_64

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    Last login: Fri Jan 23 12:20:12 2015 from 58.60.204.105
    root@(none):~#

    回复删除
    回复
    1. 这是我重新安装就出现这个情况

      删除
    2. 还有这个情况

      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
      Someone could be eavesdropping on you right now (man-in-the-middle attack)!
      It is also possible that a host key has just been changed.
      The fingerprint for the RSA key sent by the remote host is
      b2:ca:ac:01:cc:35:d0:80:11:88:14:84:3c:d9:05:d7.
      Please contact your system administrator.
      Add correct host key in /Users/Lee/.ssh/known_hosts to get rid of this message.
      Offending RSA key in /Users/Lee/.ssh/known_hosts:1
      RSA host key for IP has changed and you have requested strict checking.
      Host key verification failed.

      删除
    3. 你是怎么弄出这些错误的呢?

      删除
  13. 此评论已被作者删除。

    回复删除
  14. root@123.123.123's password:
    Linux (none) 3.18.1-x86_64-linode50 #1 SMP Tue Jan 6 12:14:10 EST 2015 x86_64

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    Last login: Fri Jan 23 15:06:02 2015 from 58.60.204.105
    root@(none):~#

    现在一打开就这样

    回复删除
  15. 回复
    1. 抱歉,刚看到。你重建的过程是按照教程来的吗?选择的是什么系统?是每次用putty登录都会这样还是第一次回显示这些信息?

      删除
  16. 我现在一登陆就会显示这样:


    root@**********'s password:
    Linux (none) 3.18.1-x86_64-linode50 #1 SMP Tue Jan 6 12:14:10 EST 2015 x86_64

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    Last login: Sat Jan 24 08:01:05 2015 from 183.37.85.38
    root@(none):~#

    回复删除
    回复
    1. 影响到了你执行教程么?

      删除
    2. 我有重建了一遍想在是连接不了又是怎么回事

      ssh: connect to host 106.186.25.113 port 22: Operation timed out

      删除
  17. 后来我又重建了一遍就连接不了

    ssh: connect to host 106.186.25.113 port 22: Operation timed out

    回复删除
    回复
    1. 最近GFW一直在调整,电信本身国际出口就不太稳定,你如果无法登陆,可能是SSH端口受到了干扰。可以挂个VPN后登录一下,顺便换个SSH端口。

      删除
  18. 后来我又重建了一遍就连接不了

    ssh: connect to host 106.186.25.113 port 22: Operation timed out

    回复删除
  19. 我的putty怎么会出现network error:Connection timed out!?这个错误的提示呢?是哪里出现问题了,我严格按照教程来的啊。求助大侠在线等

    回复删除
    回复
    1. 问题我已经解决了~~~我是一开始处于翻墙网络就一直出现这个状况,不翻墙就好了。

      删除
  20. 对了,我是移动光纤用的是DigitalOceanVPS

    回复删除
  21. V 你好,本人按照该教程购买了搬瓦工的VPS,并成功安装了Shadowsocks。希望能让该方法为更多(墙内)的人看到,我能否将该教程全文(包括图片)转载至本人新浪博客( http://blog.sina.com.cn/behungry )?我会注明文章来自本页的。谢谢!

    回复删除
    回复
    1. 你好。可以全文转载,也允许出于增强可读性目的 的排版,但需保留完整教程内容,其余要求就是注明原作者和出处。最后,祝贺你顺利搭建,也希望能帮助到更多的人。你的博客我去看了,写的很棒。

      删除
    2. 谢谢,太棒了~~~
      现已转载,已注明原文为本页,并附上了你的Google+。具体可见 http://blog.sina.com.cn/s/blog_68d0ce210102voc3.html ,若转载文中有不当之处,还请告知改正。

      删除
    3. 不客气,也谢谢你对我个人劳动成果的尊重和对版权的重视,转载的博文我去看过了,排版很棒,博主的小批注也特别贴心,希望对墙内的同胞有所帮助。

      删除
  22. SS我是搭建完毕了,也在手机上成功的连接上了,但是为什么速度慢的要死啊。。。。什么状况哦!我用的是DigitalOceanVPS。。节点是SGP的!在CMD里面PING的话 都只有76MM左右,不知道为什么在手机用都无法打开被墙的网站。求大侠帮忙!

    回复删除
    回复
    1. 本地是什么宽带?电脑端速度如何?

      删除
    2. 切换到旧金山试试,ping值不能代表一切,丢包率也是很重要的指标。

      删除
    3. 我是移动光纤,你说的电脑端速度是指连上vps后吗?不连时速度还可以,连上的就没速度了,包括国内网也打不开,手机也是一样的。

      删除
    4. 还有我切换到旧金山的也是一样。至于丢包率我ping的时候是没有丢包的,但是我连上vps后我看丢包率是很严重啊?这是怎么回事?大侠帮忙看看吧。

      删除
    5. 现在应该没问题了吧?

      删除
  23. 请问下SSH端口号在哪里改啊!

    回复删除
    回复
    1. 你得先登上你的vps。https://www.google.com/search?&q=%E4%BF%AE%E6%94%B9+SSH+%E7%AB%AF%E5%8F%A3

      删除
  24. 翻了墙把端口也改了但是,重启了之后我退出iterm,然后断开VPN在去连接还是不行

    ssh: connect to host 106.186.25.113 port 22: Connection refused

    回复删除
  25. 现在就算翻了墙登陆还是会提示

    ssh: connect to host 106.186.25.113 port 22: Connection refused

    回复删除
    回复
    1. 我是说,VPS也不用天天登录上去布置,你在上面搭建好的SS能正常使用么?

      删除
    2. 还未搭建我只是改那个端口而已

      删除
  26. 请问提示no package supervisor available该如何解决呢?

    回复删除
    回复
    1. 请注意教程前言部分上面的那一长串醒目红字。

      删除
    2. 谢谢楼主解答,我已成功部署搬瓦工的vps。今天想在conoha.jp上以同样方法建立vps,过程好像没有出错,可就是上不了网,shadowsocks的日志是:“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 157.7.120.44:1105
      在 System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)”
      运行ssserver -c /etc/shadowsocks.json命令的结果和楼上的Otis Hong结果相同,可能是什么问题呢?

      删除
    3. 各家VPS的情况细节不一样,楼主精力有限,无法对市面上所有的VPS面面俱到,只能保证教程内容在上面的三家VPS里是没有问题的。你自己多尝试一遍,google搜索一下吧。

      删除
  27. 此评论已被作者删除。

    回复删除
    回复
    1. 另外未越狱的iphone必须使用shadowsocks这个浏览器才能实现翻墙浏览,那手机中被被枪毙的APP岂不是依然无法运行,比如twitter等?

      删除
    2. 没办法,苹果作为一个封闭的系统,没开放相关的API给开发者,iPhone要想全局翻墙,越狱后shadowsocks是最佳选择,不越狱只能用VPN了。但VPN被GFW干扰日渐严重……

      删除
  28. v,你好,谢谢你的教程,一步一步完成服务器端设置,客户端Android手机和window电脑顺利运行。非常感谢!可是下载了Mac 客户端翻不出去,也试着填了网络设置代理Socks 127.0.0.1 1080 不起效果。 请教。谢谢

    回复删除
  29. 下载的是:ShadowsocksX-2.6.2.dmg,谢谢

    回复删除
    回复
    1. 抱歉,手头没有果机,你自己参考一下教程举一反三触类旁通或者在网上搜搜吧。

      删除
  30. 请问一下我按照教程做了两遍,现在虽然能连接上服务器,但是无法翻墙,该如何解决?另外感谢分享教程~

    回复删除
    回复
    1. 我的也是用ssserver -c /etc/shadowsocks.json检测后报错,和Otis Hong一样。信息如下:
      INFO: loading config from /etc/shadowsocks.json
      2015-02-03 02:14:49 INFO loading libcrypto from libcrypto.so.10
      shadowsocks 2.6.7
      2015-02-03 02:14:49 INFO starting server at 0.0.0.0:443
      Traceback (most recent call last):
      File "/usr/bin/ssserver", line 9, in
      load_entry_point('shadowsocks==2.6.7', 'console_scripts', 'ssserver')()
      File "/usr/lib/python2.6/site-packages/shadowsocks/server.py", line 68, in main
      tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False))
      File "/usr/lib/python2.6/site-packages/shadowsocks/tcprelay.py", line 591, in __init__
      server_socket.bind(sa)
      File "", line 1, in bind
      socket.error: [Errno 98] Address already in use

      shadowsocks.json内容如下:
      {
      "server":"0.0.0.0",
      "server_port":443,
      "local_port":1080,
      "password":"xxxx",
      "timeout":600,
      "method":"aes-256-cfb"
      }

      删除
    2. 此评论已被作者删除。

      删除
    3. 还是不行。。希望LZ能回复我一下啊

      删除
    4. 问题好像解决了。。感谢LZ分享教程

      删除
    5. 不客气,搞定就好,祝贺你。

      删除
  31. 搭好了 手机可以用 但是shadowsocks一点开就报错 日志是这么写的 win8.1 64位专业版 求问知道是什么问题吗~

    [2015-02-04 15:06:28] System.Reflection.TargetInvocationException: 操作过程中出现异常,结果无效。 有关异常的详细信息,请查看 InnerException。 ---> System.Net.WebException: 无法连接到远程服务器 ---> System.Net.Sockets.SocketException: 由于目标计算机积极拒绝,无法连接。 127.0.0.1:8123
    在 System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
    在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
    --- 内部异常堆栈跟踪的结尾 ---
    在 System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
    在 System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
    在 System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)
    --- 内部异常堆栈跟踪的结尾 ---
    在 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
    在 Shadowsocks.Controller.UpdateChecker.http_DownloadStringCompleted(Object sender, DownloadStringCompletedEventArgs e)
    [2015-02-04 15:06:29] System.ComponentModel.Win32Exception (0x80004005): 拒绝访问。
    在 System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
    在 System.Diagnostics.Process.Start()
    在 Shadowsocks.Controller.PolipoRunner.Start(Configuration configuration)
    在 Shadowsocks.Controller.ShadowsocksController.Reload()
    [2015-02-04 15:07:45] System.InvalidOperationException: 没有与此对象关联的进程。
    在 System.Diagnostics.Process.EnsureState(State state)
    在 System.Diagnostics.Process.EnsureState(State state)
    在 System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited)
    在 System.Diagnostics.Process.Kill()
    在 Shadowsocks.Controller.PolipoRunner.Stop()

    回复删除
    回复
    1. 小提醒:Windows 7用户下载Shadowsocks-win-x.x.x.zip,Windows 8用户下载Shadowsocks-win-dotnet4.0-x.x.x.zip。
      其次,客户端的日志和你没关系,不是给你看的。

      删除
    2. 其实所有的版本都试过。。。都是一样的报错。。。

      好像是不兼容缺依赖之类的。。。但是只有我一个人有这问题好心塞 = =

      小哥你也没见过这问题吗 = =

      删除
  32. 求问 putty 进行到password这一步之后出现server unexpectedly closed network
    请问怎么解决

    回复删除
  33. 请问在买搬瓦工使用paypal付款的时候报3005的错误怎么解决哦?

    回复删除
    回复
    1. 付款链接打开后把地址栏里有个地方的“/cn/”改成“/c2/”再试试?

      删除
    2. 第一次使用paypal,可能是我不太会用吧,注册完paypal后需要认证吗?改成c2确实是不报3005了,但是我还没找到怎么付款。。。再研究研究。

      删除
  34. 请问在买搬瓦工使用paypal付款的时候报3005的错误怎么解决哦?

    回复删除
  35. 付款链接打开后把地址栏里有个地方的“/cn/”改成“/c2/”再试试?

    回复删除
  36. 感谢楼主,我已经成功了,但是我发现Shadowsocks的上传速度和下载速度是一致的,那么这个上传是不是有点太多了?求告知

    回复删除
    回复
    1. 把ss当成虚拟的中介,下载到ss上,“上传”到电脑实体上,不一致就不对了呀

      删除
    2. 感谢,回复的很易懂。

      删除
  37. yum updute一半变成这样。。
    Updating : openldap-2.4.39-8.el6.x86_64 68/231
    Error in POSTIN scriptlet in rpm package openldap-2.4.39-8.el6.x86_64
    error: Couldn't fork %post(openldap-2.4.39-8.el6.x86_64): Cannot allocate memory
    Error in PREIN scriptlet in rpm package iptables-1.4.7-14.el6.x86_64
    error: Couldn't fork %pre(iptables-1.4.7-14.el6.x86_64): Cannot allocate memory
    error: install: %pre scriptlet failed (2), skipping iptables-1.4.7-14.el6
    Updating : iproute-2.6.32-33.el6_6.x86_64 70/231
    Updating : util-linux-ng-2.17.2-12.18.el6.x86_64 71/231
    Error in POSTIN scriptlet in rpm package util-linux-ng-2.17.2-12.18.el6.x86_64
    error: Couldn't fork %post(util-linux-ng-2.17.2-12.18.el6.x86_64): Cannot allocate memory
    python: rpmio.c:1581: Fclose: Assertion `fd && fd->magic == 0x04463138' failed.
    Aborted
    求教

    回复删除
  38. 一口气搭建成功了,真心谢谢博主,想请问博主是不是在同一个路由器的局域网下不同的设备不能公用一个服务端端口。

    回复删除
  39. 楼主,想问下,怎么修改服务器密码,我设置好了,也成功登录了,但是
    "server":
    "server_port":443,
    "local_port":
    "password":"xxxx", //*这个密码太简单了我想设置更改下,请问怎么操作?
    "timeout":
    "method":

    回复删除
  40. shadowsocks无法启动,提示错误信息
    INFO: loading config from /etc/shadowsocks.json
    /usr/lib/python2.6/site-packages/shadowsocks/utils.py:148: DeprecationWarning: BaseExc
    eption.message has been deprecated as of Python 2.6
    e.message)
    ERROR: found an error in config.json: Extra data: line 1 column 8 - line 7 column 1 (c
    har 8 - 125)
    shdowsocks.json内容如下
    "server":"0.0.0.0",
    "server_port":8388,
    "local_port":1080,
    "password":"xxxx",
    "timeout":600,
    "method":"aes-256-cfb"
    最后一行的逗号加或不加都一样。DO的VPS,CENTOS 6.5 X64 python 2.6.6 shadowsocks 2.6.7。请问这是怎么回事啊?

    回复删除
  41. 已经照着样子做了一次,要多少时间才生效?

    回复删除
  42. 已经正常运行 digital ocean sfo1的vps 在移动10兆网络下,youtube仍然不能流畅720P,请问原因

    回复删除
    回复
    1. 之前也是这个情况,后来我在DO重新换了个IP后重新搭建SS服务端,现在情况还好,至少看1080没有压力了。南方电信100M的宽带,目前测试下载达到3.8Mbps。

      删除
    2. 换ip是换机房的意思吗?

      删除
  43. 第一次搭建,很顺利成功了~谢谢!!
    问一些小白问题:
    1、我买了板瓦工500G/月,平时都开着SS的话,浏览国内网站是不是也会消耗VPS上的流量?
    2、iOS不越狱,app store下载的只能浏览网页,想使用一些需要翻墙的APP,有什么办法?
    3、我现在还有在用Anyconnect,买的是VPN。之前被封了一些IP,现在修改一下还能继续使用。
    担心这个方法迟早要被封,VPS的账号能在Anyconnect上使用吗?

    回复删除

  44. INFO: loading config from /etc/shadowsocks.json
    /usr/lib/python2.6/site-packages/shadowsocks/shell.py:155: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
    e.message)
    ERROR: found an error in config.json: Expecting object: line 5 column 16 (char 93)

    我严格按照教程做的,但是检查的时候出现了这个错误,无法链接。

    回复删除