使用vps搭建稳定的shadowsocks(影梭)翻墙

发布于 2017-12-31  263 次阅读


这篇文章实际上是我搭建vps的过程总结,所以我全程都是按照最小的成本来写的,如果介意的话请自行Google《搬瓦工shadowsocks》等等教程。

一、申请vps主机

我自己购买过两款vps,一款是hostdare的1G特价主机(1.99美元/月),我当时买的时候是二五折,0.5美元/月,不过现在的特惠已经没了,但是年费仍旧很便宜,12.5美元;另一款是hostmybytes的128M内存的主机,年费5美元,也是很便宜,但就我宿舍20M的宽带而言,前者6M/S的下载速度比后者2M/S更有吸引力。

1.这是hostmybytes的具体配置(openvz)

购买链接 

 

 

2.hostdare的配置(openvz):

购买链接

 

网上有很多人强烈推荐KVM的,其实我觉得无所谓,openvz的不能更换内核,加速方式也很少,但个人用的话还是足够的,毕竟价格在那里。重申一次,我还是推荐hostdare的,速度快,配置高,更重要的是,这家支持支付宝和微信,而前者只能使用paypal(请注意取消自动续费)。

 

二、安装shadowsocks

一般付费之后要pending一天之后才会收到开通成功的邮件。

收到邮件之后,就可以知道自己vps的IP地址,root的账号密码

下载Xshell或者是putty,推荐Xshell

配置登录信息

 

填写主机IP,端口默认22

 

在用户身份验证里面填好用户名和密码,点击确定,然后双击连接。

连接上我们的vps:

 

 

然后运行一键安装脚本:

本脚本适用环境:
系统支持:CentOS/Debian/Ubuntu 内存要求:≥128M
日期:2017 年 07 月 28 日

关于本脚本:
一键安装 libev 版的 Shadowsocks 最新版本。该版本的特点是内存占用小(600k左右),低 CPU 消耗,甚至可以安装在基于 OpenWRT 的路由器上。

默认配置:
服务器端口:自己设定(如不设定,默认为 8989)
密码:自己设定(如不设定,默认为teddysun.com)
加密方式:自己设定(如不设定,默认为 aes-256-gcm)

客户端下载:
https://github.com/shadowsocks/shadowsocks-windows/releases

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

  • CentOS
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
  • Debian && Ubuntu
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian.sh
chmod +x shadowsocks-libev-debian.sh
./shadowsocks-libev-debian.sh 2>&1 | tee shadowsocks-libev-debian.log

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

Congratulations, shadowsocks-libev install completed!
Your Server IP:your_server_ip
Your Server Port:your_server_port
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 用户登录,运行以下命令:./shadowsocks-libev.sh uninstall

使用命令:

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

我这里放的是shadowsocks libev 一键安装的脚本

原文链接:shadowsocks libev 一键安装

当然你也可以选择安装原文链接里面的ShadowsocksR。

三、使用lkl-BBR实现加速

其实服务器的部署已经完成了,这一步完全可以跳过,直接使用步骤4中提供的方法下载配置客户端实现翻墙,但是速度可能不是很理想。这一步的作用就在于可以将shadowsocks的代理速度提升2~8倍。也是一键安装脚本,先用Xshell连接到vps,然后运行:

使用方法

已测试通过的系统: Ubuntu 14.04 x64、Ubuntu 16.04 x64、CentOS 6 x64、CentOS 7 x64 只支持 64 位系统,要求 glibc 版本 2.14 以上。

wget https://raw.githubusercontent.com/kuoruan/shell-scripts/master/ovz-bbr/ovz-bbr-installer.sh
chmod +x ovz-bbr-installer.sh
./ovz-bbr-installer.sh

1.需要加速的端口,即的 SS 端口。加速开启之后,流量会先经过 BBR 处理,之后再发送给后端的 SS。

2.可能需要配置 “公网接口名称”,即你服务器上具有公网 IP 的接口名称。搬瓦工 OpenVZ 上默认都是 venet0,但是有朋友可能需要安装在其他服务器上,所以我加入了此选项。

需要注意的是,在有 firewalld 的服务器上安装的时候,firewalld 会干扰 iptables 的规则,造成网络不通(现在具体原因未知,谁有解决方案可以提示一下)。所以在装有 firewalld 的服务器上需要先退出 firewalld:

systemctl disable firewalld
systemctl stop firewalld

如需卸载,请使用:

./ovz-bbr-installer.sh uninstall

错误说明

有些机器一切正常,但是加速失败。从网友的反馈来看,可能需要将 SS 的监听地址从 vps IP 改到 127.0.0.1 或者 0.0.0.0,具体未测试,加速失败的朋友可以试一试

多端口加速

安装的时候只配置了一个加速端口,但是你可以配置多端口加速,配置方法非常简单。 修改文件

在文件里添加需要加速的端口,每行一条,可以配置单个端口或者端口范围,以 # 开头的行将被忽略。 例如:8800 或者 8800-8810 配置完成之后,只需要重启 haproxy-lkl 即可。

注: 最初版本的实现是需要再开一个新端口,后来经人提醒,我又看了一下 HAproxy 的配置说明,可以直接代理后端端口,不必再开新端口。请注意,使用该方法后,如果 HAproxy 进程异常退出,会造成无法连接原有端口。所以,请确保在退出 HAproxy 时是通过命令正常退出的,在退出时会自动清理原有的防火墙规则。

使用 systemctl 或者 service 命令来启动、停止和重启 HAporxy-lkl:

systemctl {start|stop|restart} haproxy-lkl
service haproxy-lkl {start|stop|restart}

/usr/local/haproxy-lkl/etc/haproxy.cfg 这个文件是通过 port-rules 自动生成的,每次启动都会重新生成,所以直接修改它的配置没用。 如果想要自定义配置,请修改启动文件:

/usr/local/haproxy-lkl/sbin/haproxy-lkl

更新 glibc

CentOS 6 更新 glibc,首先下载如下几个文件:

wget http://ftp.redsleeve.org/pub/steam/glibc-2.15-60.el6.x86_64.rpm \
http://ftp.redsleeve.org/pub/steam/glibc-common-2.15-60.el6.x86_64.rpm \
http://ftp.redsleeve.org/pub/steam/glibc-devel-2.15-60.el6.x86_64.rpm \
http://ftp.redsleeve.org/pub/steam/glibc-headers-2.15-60.el6.x86_64.rpm \
http://ftp.redsleeve.org/pub/steam/nscd-2.15-60.el6.x86_64.rpm

然后安装:

# rpm -Uvh glibc-2.15-60.el6.x86_64.rpm \
glibc-common-2.15-60.el6.x86_64.rpm \
glibc-devel-2.15-60.el6.x86_64.rpm \
glibc-headers-2.15-60.el6.x86_64.rpm \
nscd-2.15-60.el6.x86_64.rpm

如果以上步骤无法更新,可以手动编译更新(来自网友的方法)

检查一下:

# ldd --version
ldd (GNU libc) 2.15
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

已经升级到 glibc 2.15 了。

判断 BBR 已正常工作

判断 bbr 是否正常启动可以尝试 ping 10.0.0.2,如果能通,说明 bbr 已经启动。

然后检查 iptables 规则

iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
LKL_IN     all  --  0.0.0.0/0            0.0.0.0/0
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Chain LKL_IN (1 references)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8989 to:10.0.0.2

里边会看到多了一张链表 LKL_IN,里边有相应的端口规则。

原文链接:OpenVZ 平台Google BBR 一键安装脚本| 扩软博客

四、使用shadowsocks翻墙

安卓和Windows都有相应的客户端,直接下载安装客户端,然后输入ip、用户名、端口、密码即可,可以设置全局代理或者只代理被墙网站

iOS需要在Appstore里面下载兼容的shadowsocks的VPN软件,只能全局代理

具体参考以下连接:

Github-shadowsocks使用教程