Younntone's Blog

Welcome~!

菜鸟教程——用VPS搭建SSR(更新版)

首先说一下为什么要写这篇博客,主要是以下两个原因:

1、虽然已经有蛮多的教程,但是不是系统环境单一就是因为发布时间关系已经不在准确,考虑到有部分朋友买的VPS是包年的甚至换系统都很麻烦,所以说我这次写的会包含Ubuntu、CentOS、Debian、Fedora这几个主流的系统的说明。

2、一方面可以作为自己学习的笔记,另一方面还可以互相借鉴;


====搭建服务的前期准备====

1.准备一个VPS

前面的简介说到了SSR服务分为客户端和服务端,客户端在自己电脑上,服务端自然需要另一台机器,常用的就是VPS(Virtual Private Server)了

说到VPS服务商,这里首推的是vultr(vultr.com),它提供免费的Snapshot(快照,保存生成时的所有内容,用于克隆、恢复),虽然没有它的收费项目$1/mo的定时Backup(备份,理论说可以下载带走,未测试是否支持,后期补)那么方便,但是作为免费服务还是很棒的特别是在要部署多台相同环境的VPS的时候尤为方便。其他各类特性我会在后面提到。


当然最关键的是自己在用感觉很不错~


其他的服务商有老牌的Linode,便宜的搬瓦工、用不起的AWS等等(基本都要信用卡),国内的服务商有阿里云、腾讯云、遨游主机等等。


有很多做比较的文章,这里就不重新造轮子了。
下面的图是我的推广链接,要是觉得我的教程写的不错,而且也打算用我推荐的Vultr,那就点击它注册,感谢支持~


1.1 注册账户

vultr首页

①填写必要信息:

必要的邮箱、密码……非常友好,不是动辄手机这种即时性很强的东西;
vultr注册

②注册完成:

这就注册好了~简单到难以置信啊……会自动跳转;
这里写图片描述


1.2 填写账单信息(充值)

①选择支付方式:

这个我是很开心看到的,因为……支持支付宝啊! 粉他们还会有三刀的点数可以送哦!
vultr选择支付方式

②使用支付宝付款:

熟悉的界面……比昨天博主充值贵了两分钱,所以说汇率低的时候充值划算?
Alipay


1.3 准备安装脚本

以下各个系统适用的脚本,为了简化安装,这个脚本直接会安装好shadowsocksR的服务端及一些需要用得到东西。只需将它放进Vultr的Startup Script里面即可;

  • Ubuntu 18.04(推荐)

    #!/bin/sh   
    apt update
    apt -y install vim git python-m2crypto libsodium23
    cd /usr/local
    git clone -b manyuser https://github.com/shadowsocksrr/shadowsocksr.git
    cd shadowsocksr
    bash initcfg.sh
    
  • Debian 9

    #!/bin/sh   
    apt-get update
    apt-get -y install vim git python-m2crypto libsodium18
    cd /usr/local
    git clone -b manyuser https://github.com/shadowsocksrr/shadowsocksr.git
    cd shadowsocksr
    bash initcfg.sh
    
  • CenOS 7

    #!/bin/sh
    yum update
    yum -y install vim git libsodium
    cd /usr/local
    git clone -b manyuser https://github.com/shadowsocksrr/shadowsocksr.git
    cd shadowsocksr
    bash initcfg.sh
    
  • Fedora 27

    #!/bin/sh
    dnf update
    dnf -y install vim git libsodium
    cd /usr/local
    git clone -b manyuser https://github.com/shadowsocksrr/shadowsocksr.git
    cd shadowsocksr
    bash initcfg.sh
    

①复制适合系统的脚本,点击下图中的Startup Scripts,进去添加(推荐UBuntu18.04)

Howto_add_StartupScripts

②新建一个脚本

add.startup.script]![make.script

③删除原有代码,粘贴代码,并给脚本取合适的名字,最后确认(Add Script)

make.script


1.4 创建服务器

①进入新建界面

好啦,我们现在是有钱人了!Deploy一个server! 谁说的红配绿赛DogShit?
vultr-server

②选择服务器位置

首先选一个你觉得ok的位置,选东京/新加坡,亚洲延迟低,我觉得ok
SERVERLOCATION

别怕,不是十刀只能一个月哦……

③选择服务器操作系统(推荐UBuntu18.04)

这里可以选择64位系统32位系统,预装app上传iso镜像iso镜像库使用备份使用快照
PS:这里在后期可以选择提前制作好的快照,快速部署新的节点,快照的制作在后面会讲到!
这里建议使用Ubuntu 18.04
SERVRTYPE

④选择服务器配置

这里可以选择服务器配置啊,解释一下名词:

  • SSD——自带存储空间,固态硬盘~
  • /mo——每个月
  • /h——每小时,Vunltr是按小时计费,按月扣费,每月一号为扣款日,所以不要怕,创建再摧毁才几毛钱~
  • CPU——核心数
  • Memory——内存大小
  • Bandwidth——其实是流量~流经服务器的流量

SERVERSIZE

⑤选择启动脚本

这一步主要就是选择启动脚本
⑥可以暂时不管
最下面的⑦ Server Hostname & Label 是可选填的,就是看到的名字而已,label是指在Vultr的SERVER界面看到的名字,Hostname是指主机名称,例如root登陆叫vultr的主机,命令行就会是这么开头:root@vultr$:
select_Startup_Script

到这里基本上就完成了,你只需要点击右下角的
Deploy
就可以创建一个属于你的VPS了。

PS:关于价格

决定价格的主要因素~像东京、新加披这种延迟低的地区,最便宜最划算的套餐自然买完了
这里选择5美刀一个月的
到这里要是觉得贵的可以考虑合租咯~

  • 为什么不选择其他地区的2.5美刀一个月的,明明还有?
    1. 丢包率高,0.5秒+的延迟,故不推荐;
    2. 内存低,一定程度上影响网速,特别是Youtube这类大流量应用,加上可能多人使用;
      以上影响为个人体验和大致理论的综合,非专业级解释,如有错误,欢迎指正

====SSR-SERVER的配置====


0. 准备工作

在此之前,你需要知道,你是远程访问(SSH)的你的服务器,所以需要通过以下两种途径:

  • a. 使用Xshell、putty
  • b. 直接使用Vultr的console界面

PS:
在之前创建服务器的时候使用了一个脚本
已经将SSR服务端安装在/usr/local


1. 登陆VPS

下面有两种可选的远程登陆方式,选择AB即可。

A. 使用Xshell登陆VPS推荐

虽然之前已经装好了SSR,但是是通过上传脚本实现的,现在将是第一次登陆VPS

1.A.1 打开Xshell

安装好后,打开就能看到这个界面,单击新建
Xshell-session


1.A.2 新建连接

①填写主机属性

里面会有很多选项,但是这里只用到连接和其中的用户身份验证

名称:这里可以随意,推荐以VPS供应商-VPS所在地区-编号命名,e.g Vultr-Tokyo-1
协议这里默认就是SSH(什么是SSH),SSH服务的默认端口为22;
主机:这里填写主机的IP地址,可以在[SERVER页面]查看;

Xshell-NewSession

②填写系统账户登陆信息

用户名root
这是有最高权限的用户,用它登陆危害多多,一般是不会用这个登陆的,除第一次,以后的文中会写如何改变这一点;
这个代表着超级管理员,每个linux都包含一个这样的账户;
密码^dgbfvjkah#
由Vultr提供的随机密码,可更改,用于登陆VPS,与用户名一一对应,可以在[SERVER页面]查看

Xshell-NewSession-auth

③确认

点击确认后,在最开始的会话界面能够看到新建好了的会话,双击
出现以下类似界面即为正常,特别是这个root@vultr:~$

Xshell-Connected
了解更多关于Xshell的使用说明


1.B 使用Vultr的console界面登陆VPS

进入https://my.vultr.com就能看到你之前创建的SERVER,点击后可看到一下界面

Vultr-Console

点击右上角显示器的图标,正常情况下会弹出一个小网页
用户名root
这是有最高权限的用户,用它登陆危害多多,一般是不会用这个登陆的,除第一次,以后的文中会写如何改变这一点;
这个代表着超级管理员,每个linux都包含一个这样的账户;
密码^dgbfvjkah#
由Vultr提供的随机密码,可更改,用于登陆VPS,与用户名一一对应,可以在[SERVER页面]查看
之后的和Xhell差别就不是那么大了,主要是不能粘贴命令且反应较慢


2. 配置

2.进入安装目录/usr/local/shadowsocksr

如果提醒-bash: cd: /usr/local/shadowsocks: No such file or directory说明之前没有准备启动脚本(上半篇1.3)或者新建服务器的时候没有勾选脚本(上半篇1.4 ⑤).

cd /usr/local/shadowsocksr

3.编辑服务端配置文件user-config.json

输入以下命令打开配置文件

vim user-config.json

进入后按键盘上的i进入编辑模式(编辑完成后用ESC退出编辑模式)

按照里面的模板填写信息,未提及的不用改动

①单用户版本

    {   
        "server": "0.0.0.0",
        "server_ipv6": "::",
        "server_port": 443,
        "local_address": "127.0.0.1",
        "local_port": 1080,
        "password": "password",
        "method": "chacha20",
        "protocol": "auth_aes128_sha1",
        "protocol_param": "",
        "obfs": "tls1.2_ticket_auth_compatible",
        "obfs_param": "",
        "speed_limit_per_con": 0,
        "speed_limit_per_user": 0,  
        "additional_ports" : {}, // only works under multi-user mode
        "additional_ports_only" : false, // only works under multi-user mode
        "timeout": 120,
        "udp_timeout": 60,
        "dns_ipv6": false,
        "connect_verbose_info": 0,
        "redirect": "",
        "fast_open": false
    }

单用户版本需要修改:

"server_port":"任意数字"
"password""密码"

②多用户版本

    {   
        "server": "0.0.0.0",
        "server_ipv6": "::",
        "local_address": "127.0.0.1",
        "local_port": 1080,
        "port_password": 
        {
            "443":"Password",
            "6666":"Guest"
        },
        "method": "chacha20",
        "protocol": "auth_aes128_sha1",
        "protocol_param": "",
        "obfs": "tls1.2_ticket_auth_compatible",
        "obfs_param": "",
        "speed_limit_per_con": 0,
        "speed_limit_per_user": 0,  
        "additional_ports" : {}, // only works under multi-user mode
        "additional_ports_only" : false, // only works under multi-user mode
        "timeout": 120,
        "udp_timeout": 60,
        "dns_ipv6": false,
        "connect_verbose_info": 0,
        "redirect": "",
        "fast_open": false
    }

多用户版本需要修改::

"port_password":
    {
        "任意数字":"密码"
    },

  • 协议推荐:协议用auth_chain_*最佳,此时推荐不使用加密(设置为none),混淆随意
  • 混淆推荐:如果QoS在你的地区明显,混淆建议在http_simpletls1.2_ticket_auth中选择,具体选择可以通过自己的试验得出。如果选择混淆后反而变慢,那么混淆请选择plain。如果你不在乎QoS,但担心你的个人vps能不能持久使用,那么混淆选择plaintls1.2_ticket_auth,协议选择auth_chain_*auth_aes128_*
  • 如果你用于玩游戏,或对连接延迟有要求的情况下,建议不要使用tls1.2_ticket_auth混淆,用其它混淆plain
  • 服务端里,http_simplehttp_post是相互兼容的,没有使用上的区别
  • 如果你在公司,或学校,或某些环境下,发现原版SS协议不可用,建议你启用http_simplehttp_posttls1.2_ticket_auth混淆,同时端口相应使用80443,通常能解决问题。同时能躲避你所在环境下的网络封锁(如禁止访问网盘禁止上传等等)
  • 如果使用tls1.2_ticket_auth混淆或不开启混淆,那么协议最好不要使用originverify_sha1
  • 如果使用二重代理,一般你只需要考虑爬墙的那一段使用混淆或加强协议,除非为了匿名
  • 如果你发现你的代理突然不能用了,但换一个端口又能用了,或者等15分钟到半小时后又能用了,这种情况下请联系我

需要修改的部分:
method
//加密方法–以下可选,客户端上需要配置

method
none aes-256-gcm aes-192-gcm aes-128-gcm
aes-256-cfb aes-192-cfb aes-128-cfb aes-256-cfb8
aes-192-cfb8 aes-128-cfb8 aes-256-ctr aes-192-ctr
aes-128-ctr chacha20-ietf chacha20 rc4-md5
rc4-md5-6 chacha20 salsa20 chacha20-ietf

protocal:
协议–以下可选,客户端上需要配置

method
origin verify_deflate auth_sha1_v4 auth_sha1_v4_compatible
auth_aes128_md5 auth_aes128_sha1 auth_chain_a auth_chain_b

obfs:混淆插件–以下可选,客户端上需要配置

method
plain http_simple http_simple_compatible
http_post http_post_compatible tls1.2_ticket_auth
tls1.2_ticket_auth_compatible tls1.2_ticket_fastauth tls1.2_ticket_fastauth_compatible

protocal_param:
obfs_param:
协议参数、混淆参数,选配,建议新手忽略,内容为网址
客户端上需要配置

4.保存user-config.json

编辑完后按键盘上的ESC退出编辑模式,输入以下代码(保存退出,退出前拍个照为好)

:wq

2.5加速(可选)

如果经常看视频什么的可以做个加速,就算不用来看视频也可以加快网页访问速度。懒得弄得可以跳过~
加速一个服务器只要做一次,做过的可以跳过

加速采用的是BBR加速,由谷歌非官方发布的一个加速组件,现已被加入到最新内核(4.9以后)中,这里需要安装最新的内核,并开启BBR。全程采用一键式交互脚本,开源无后门.

2.5.1 下载、授权、执行安装脚本

(其实就是一串命令,注意复制完整,有点长)

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

安装过程中会询问哪个版本的内核,推荐1,也就是4.14,新的内核好像有点问题
安装完成后,脚本会提示需要重启 ,输入y并回车后重启。
测试Ubuntu18.04已经是4.9以上内核,不需要换内核!不需要重启!快速开启BBR!

2.5.2 校验是否成功开启BBR(可选)

命令 一般返回值
sysctl net.ipv4.tcp_available_congestion_control net.ipv4.tcp_available_congestion_control = bbr cubic reno
sysctl net.ipv4.tcp_congestion_control net.ipv4.tcp_congestion_control = bbr
sysctl net.core.default_qdisc net.core.default_qdisc = fq

3. 运行

3.1 进入/usr/local/shadowsocksr/shadowsocks目录

cd /usr/local/shadowsocksr/shadowsocks

3.2 后台运行

这条命令没有任何返回值,看不出什么变化,所以要查看运行状态

./logrun.sh

3.3 查看状态

会返回一段日志,是动态的,下面是每条日志的标签及其意思:
INFO表示正常;
ERRO表示报错,看后面的提醒查看问题源头;
WARN基本可以无视;

./tail.sh

PS:

因为有时候即使配置好了,日志也显示正常,还是会出现不能用的情况,这个和配置文件和当前网络环境不适合的缘故,所以要进行调整;
修改配置后需要手动重启SSR服务端,在/usr/local/shadowsocksr/shadowsocks目录下运行以下命令(其实是脚本):

  1. 停止

    ./stop.sh
    
  2. 后台运行

    ./logrun.sh
    
  3. 查看日志

    ./tail.sh
    

4. 快照的制作、回滚、部署(可选)

当你已经完全调试好可以舒舒服服用了以后,找一个不用的时间(比如,睡前),利用Vultr免费提供的快照服务为服务器做一个快照,这样既可以回滚又可以快速部署.快速部署已经在前面准备篇1.4.③里面提到过了.回滚会在这里稍微说一下.

①制作

Add_Snapshot
Choose_Instance
截图内容并非完全一致,仅作为参考

Take Snapshot按下以后,服务器会在一段时间内停止大部分服务,所以说挑选一个比较合适的时间。
接下来说一下回滚的方法。

②回滚

Restore_Snapshot
在图中可以注意到,其实在这里也可以拍快照~之前那个页面是为了方便统一管理~

这里做完还不够,因为快照只是一个类似Ghost一样的硬盘克隆,所有程序都是停止运行状态,除了开机自启的,所以,在给ssr做自启动之前,需要通过前面PS中说到的指令去手动启动。自启下次补充。


====SSR-Client的安装 及使用====


1. Linux客户端

1.1 安装依赖包:

选择适合自己的系统的代码
- Ubuntu

    sudo apt-get update
    sudo apt-get install git python-m2crypto libsodium18

- Debian

    sudo apt-get update
    sudo apt-get install git-core python-m2crypto libsodium18

1.2 下载SSR客户端

cd ~/Downloads
git clone -b manyuser https://github.com/shadowsocksrr/shadowsocksr.git

以上命令可能会显示为多排,实际为一整条命令

1.3 编辑客户端配置文件shadowsocks.json

具体按照之前在客户端配置的信息填写

sudo vi /etc/shadowsocks.json

以下为模板

    {
        "server":"12.34.56.78",
        "server_ipv6":"::",
        "server_port":443,
        "local_address":"127.0.0.1",
        "local_port":1080,
        "password":"password",
        "timeout":300,
        "udp_timeout":60,
        "method":"aes-128-ctr",
        "protocol":"auth_aes128_sha1",
        "protocol_param":"",
        "obfs":"tls1.2_ticket_auth",
        "obfs_param":"",
        "fast_open":false,
        "workers":1
    }

1.4 保存退出

接下来,就可以用了,进阶的用法日后在整理
以下是使用命令:

后台运行

sudo python local.py -c /etc/shadowsocks.json -d start

查看状态

sudo tail /var/log/shadowsocksr.log

2. Windows客户端

客户端在GitHub上呢是有的,但是为了大家下载方便,贴一个云盘出来,密码:35na

我的链接的不能保持最新,但是肯定能用;

需要注意的是,软件需要.NET支持;

Win7或者.NET 2.0用户运行ShadowsocksR-dotnet2.0.exe
Win8及以上或者.NET 4.0用户运行ShadowsocksR-dotnet4.0.exe


3. OS X客户端

GitHub


云盘,pc12;


4. Android客户端

GitHub


云盘fvn9


5. IOS客户端

可用的有好几个可用,但是国内AppStore都是无法下载的,国外也是收费的

  • shadowrocket,链接放这里了,使用PP助手安装的
  • 去某宝买一个北美市场的账号或者自行注册,然后搜索Shadowrocket,付费下载,具体价格也忘了,但是还算良心,愿意支持开发者的可以去支持下
    至于具体怎么安装自己选择

联系作者

对文章有问题可以进群讨论山有桥松,隰有游龙 , 口令:CSDN


阅读更多
版权声明:本文为原创文章,欢迎转载,但请注明出处并保留其完整性。 https://blog.csdn.net/El_Paso/article/details/80349503
文章标签: 酸酸乳 vps
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

菜鸟教程——用VPS搭建SSR(更新版)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭