Monday, May 16, 2016

How to create ShadowSocks in VPS?

You can know about VPS:
http://geekhades.blogspot.com/2016/05/the-infomation-about-vps.html


Shadowsocks服务端搭建


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

yum install epel-release
yum update
yum install python-setuptools m2crypto supervisor
easy_install pip
pip install shadowsocks



继续执行命令

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-cfb"
}
----------以上内容为复制内容----------


复制完成后,按 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下载,自动适配你的系统版本,以免出现问题。

电脑客户端端下载链接(Windows、Mac OS X)
小提醒:Windows 7用户下载Shadowsocks-win-x.x.x.zip,Windows 8用户下载Shadowsocks-win-dotnet4.0-x.x.x.zip。

iOS客户端端下载链接

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

服务器:你的VPS IP地址(非0.0.0.0)
远程端口:8388
本地端口:1080
密码:yourpassword
加密方法:AES-256-CFB
路由:绕过局域网及中国大陆地址
全局代理:勾选
UDP转发:建议勾选,如有问题则取消勾选
自动连接:勾选

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

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

右键任务栏飞机小图标,勾选“启用代理”、“开机启动”。

注:新版的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 shadowsocks
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-cfb"
}

友情提醒: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一下。另外,本教程可能根据大家反馈的情况随时更新,遇到问题请点击下面的链接查看原帖:
http://shadowsocks.blogspot.com/2015/01/shadowsocks.html






Thanks a lot to:

http://shadowsocks.blogspot.com/2015/01/shadowsocks.html

No comments:

Post a Comment