Vultr的VPS上搭建SSR

以前买的科学上网的账号快要到期了,一直很想自己倒腾个服务器,现在来自己搭一个。本篇内容主要包括在Vultr上购买服务器,安装SSR,配置多端口,BBR加速。

1. Vultr上购买VPS

对于第一次自己搭SSR的新手,以前大家一般都会推荐搬瓦工的VPS,现在笔者翻阅各种教程,一般都是Vultr和Linode的VPS。Linode的东京1的机房速度很快,可惜的是不支持支付宝或PayPal,而且他们的速度较快的东京1的机房也没销售了,东京2机房的速度绕路太多,所以转向Vultr。该厂商的东京节点比较紧俏,笔者无意间买到一个,同时他们还支持PayPal和支付宝付款,非常友好。通过该链接购买的话还有赠送活动 https://www.vultr.com/?ref=7401400 。下面开始配置:

首先通过上述链接注册一个Vultr账号并登陆,记得最低充值10美元的时候才能享受赠送,不知道现在变没变:

登陆后通过侧边栏的Billing充值。不一定保证在你购买的时候支付宝能用,因为有时候支付宝不可用,有时候又可用,但PayPal是一直支持的,国内就可以注册PayPal。

然后点击侧边栏的Servers,开始购买VPS。推荐安装Ubuntu17.10及之后的版本,这样后面启动BBR或者锐速将很方便,因为这两个TCP拥塞控制协议都需要linux内核版本在4.9以上,而Ubuntu17.10及之后的版本都符合此要求。这里笔者选择的是Ubuntu 18.04。

现在最低只能买5美元一个月的,2.5美元的已经很久没看到开放了。对于IPv6,看个人需求。

最后添加hostnamelabel,对于新手,随便起就可以。但建议还是起个能表示服务器特征的hostname,比如tokyo-ubuntu-x64

上述设置完成后,点击下方的Deploy Now按钮即可,然后他会转到以下页面,并自动开始安装操作系统,等1分钟左右,服务器便配置完成:

这个选项可以点击,点进去后就是你的VPS的详细信息(之前买的是东京节点的,但笔者第一次买,没有经验,以为他们的计费方式有点问题,于是把东京节点删除了,重新买了个洛杉矶节点,结果发现他们的计费方式就是这样的,郁闷啊,好不容易抢到个东京节点)

待会儿我们在连接服务器时会用到上图的三个信息。

Vultr按小时收费,他们会将你的套餐折合成每小时的费用,一个月按28天算,多于28天的部分不收费。暂停VPS依然会收费,如果这个服务器不想用了请点击后面那“三个小点”,并选择“Destory”红字选项,这样才停止计费,不过这样做的话服务器里的东西也没了。

2. 连接到VPS

我们使用Xshell连接到我们买的VPS,Xshell已经出到第6版,这是它的连接,https://www.netsarang.com/products/xsh_overview.html 如果选择学校或家用的话是免费的。下载安装后出现如下界面:

新建会话:点击“文件”,然后选择“新建”,也可直接点击“文件”下面的“新建”按钮,并做如下配置:

其中名称随便改,主机是你的VPS的IP地址,端口采用默认的22,点击确定,然后再点击刚才常见的会话:

输入用户名(root)和密码登陆即可(第一次连接的话还会弹出授权信息,点击授权并保存):

接下来的操作和在本地运行命令没啥区别,只是由于是远程登陆,输入命令会有些延迟。

3. 安装ShadowsocksR

接下来开始安装SSR。请先确保你的系统安装了Git。

SSR的服务器有单用户版和多用户版,而多用户版又有数据库版和json版。笔者打算和小伙伴一起用,所以没有选择单用户版,而笔者只打算用一台VPS来搭SSR,没打算搭建一个网站来管理多个服务器,所以这里笔者选择了多用户json版。(但其实,这些版本都在同一个文件夹中)

系统并没有自带Python2,而SSR作者的脚本使用Python2(版本大于2.6)来编写的,所以首先安装python以及相关组件:

1
apt install python python-pip git   # ubuntu18.04 自带git

然后从GitHub上将SSR克隆到本地:

1
git clone -b manyuser https://github.com/shadowsocksr-backup/shadowsocksr.git

这时本地应该有一个shadowsocksr文件夹,进入该文件夹,并初始化配置:

1
2
3
cd shadowsocksr
# 初始化配置
bash initcfg.sh

userapiconfig.py文件进行相应修改:

1
2
API_INTERFACE = 'mudbjson' # 默认是sspanelv2
SERVER_PUB_ADDR = '127.0.0.1' # 改为你的VPS的IPv4地址

注意:这里不是图形界面,请用vim或其他工具修改,也可以按以下命令修改:

1
2
sed -i "s/API_INTERFACE = 'sspanelv2'/API_INTERFACE = 'mudbjson'/" userapiconfig.py
sed -i "s/SERVER_PUB_ADDR = '127.0.0.1'/SERVER_PUB_ADDR = '$(wget -qO- -t1 -T2 pinfo.io/ip)'/" userapiconfig.py

完成上述操作后,服务器本身的配置就完成了,下面开始添加用户。对用户的管理是通过mujson_mgr.py程序执行的,以下是该程序的参数列表(可以通过执行命令 python mujson_mgr.py获得参数列表,只不过输出是英文的):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
操作:
-a ADD 添加 用户
-d DELETE 删除 用户
-e EDIT 编辑 用户
-c CLEAR 清零 上传/下载 已使用流量
-l LIST 显示用户信息 或 所有用户信息

选项:
-u USER 用户名
-p PORT 服务器 端口
-k PASSWORD 服务器 密码
-m METHOD 服务器 加密方式,默认: aes-128-ctr
-O PROTOCOL 服务器 协议插件,默认: auth_aes128_md5
-o OBFS 服务器 混淆插件,默认: tls1.2_ticket_auth_compatible
-G PROTOCOL_PARAM 服务器 协议插件参数,可用于限制设备连接数,-G 5 代表限制5个
-g OBFS_PARAM 服务器 混淆插件参数,可省略
-t TRANSFER 限制总使用流量,单位: GB,默认:838868GB(即 8PB/8192TB 可理解为无限)
-f FORBID 设置禁止访问使用的端口
-- 例如:禁止25,465,233~266这些端口,那么这样写: -f "25,465,233-266"
-i MUID 设置子ID显示(仅适用与 -l 操作)
-s value 当前用户(端口)单线程限速,单位: KB/s(speed_limit_per_con),默认无限制
-S value 当前用户(端口)端口总限速,单位: KB/s(speed_limit_per_user),默认无限制

一般选项:
-h, --help 显示此帮助消息并退出

下面添加一个用户:

1
python mujson_mgr.py -a -u test -k test -p 33333 -o tls1.2_ticket_auth

这样就创建了一个名为test的用户,密码为test,端口为33333,混淆插件为tls1.2_ticket_auth,其他参数均为默认值。

注意:如果你要使用chacha20混淆协议,还需要安装libsodium

1
apt install libsodium-dev

其他版本的SSR(单人版,数据库版)安装可参考以下网站:

https://github.com/shadowsocksr-backup/shadowsocks-rss/wiki (最后一项)

下面只需在你的SSR客户端加入刚才的配置即可,笔者用的客户端可以在以下网站下载:

https://github.com/shadowsocksrr/shadowsocksr-csharp/releases

接下来就是SSR服务的启动与停止命令

后台运行(无log,ssh窗口关闭后也继续运行)

./run.sh

后台运行(输出log,ssh窗口关闭后也继续运行)

./logrun.sh

后台运行时查看运行情况

./tail.sh

停止运行

./stop.sh

注:通过脚本运行默认日志会保存在根目录的ssserver.log,可手动查看。

如果代码有更新,可以在shadowsocksr目录下运行:

1
git pull

4. BBR

BBR是一个类似于国产工具锐速(闭源)的单边加速工具,由谷歌开发,已开源,可在GitHub上找到,它是一个TCP拥塞控制算法,现已默认加入到4.9及以上版本的linux内核中。

笔者做了个简单测试,在没开启BBR之前,油管看视频顶天了6000kbps,开启过后能达到3W到4W。不过看网上的一些评测,似乎锐速能更高,有兴趣的小伙伴可以试试锐速。

如果你使用的是Ubuntu17.10及以后的版本,那么启动BBR将非常简单;如果是之前的版本,则不光要安装新内核,还得删除以前的内核。

由于笔者用的是Ubuntu18.04,所以直接开始配置:

执行以下命令(sysctl.conf文件中默认一堆注释,最后只有一行代码):

1
2
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

当然也可以使用vim手动添加。

保存配置,使其生效:

1
sysctl -p

验证是否生效,执行如下命令:

1
2
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

如果生效,两条命令应该分别得到以下结果:

1
2
net.ipv4.tcp_available_congestion_control = reno cubic bbr # 第一条命令的结果
net.ipv4.tcp_congestion_control = bbr # 第二条命令的结果

执行如下命令:

1
lsmod | grep bbr

能看到tcp_bbr则说明bbr已启动。

为了每次开机自动启动tcp_bbr,再执行如下代码:

1
2
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf
modprobe tcp_bbr
VPointer wechat
欢迎大家关注我的微信公众号"代码港"~~
您的慷慨将鼓励我继续创作~~