科学上网,自建VPS-SS应用

最近因为需求想自己搭建一个VPS加SS应用。用的是Vultr这个平台。

唉…这东西的教程已经是满大街都是了,我就不重复造轮子了,现在的轮子还没有失效。

具体的服务器租建过程可参考:

关于在TCP Fast Open过程中命令行增加的一些补充(我自己加上的):

每一次的…ipv4…之外我都加上了…ipv6…的一样的命令行。

如:echo 3 > /proc/sys/net/ipv4/tcp_fastopen
另外加上了:echo 3 > /proc/sys/net/ipv6/tcp_fastopen

如:net.ipv4.tcp_fastopen = 3
另外加上了:net.ipv6.tcp_fastopen = 3

其中注意的细节是:

  1. 开通服务器时,当出现了ip,不要立马去ping或者用xshell去连接,再等5分钟之后,有个缓冲时间。

  2. 注意加密算法的对齐填写。

  3. 后续补充…

简单说说体验吧,用的是在日本的服务器,经过上面的参考之后,换了好几台服务器才有了现在的暂时稳定…另外要补充一下:如果在使用命令行ssh root@<ip>不通时(即没有提示要求输入密码登陆的出现的其他情况,比如超时),直接重新另外开一台就是了,不用再花多余的时间去测试了。

我一共换了好几台才有3台是可以用的…心累…可能是我太急了??有可能。

补充:目前上YouTube测试最高连接可以达到25M/s…超级快的哈哈哈哈~~估计还可以上升~~~美滋滋~~

补充说明

最近添加了多个用户的设置,即添加了多个独立端口以及独立密码,均需要将端口添加至服务器端口列表才行,并且还要注意添加tcp/udp协议,这很重要。

SS的以及BBR的相关的命令记录

  • SS
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
26
27
28
29
30
31
#下载安装命令
wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log
#查看当前ss服务器所开放的端口
ss -lntp | grep ssserver
#查看当前ss服务器的密码,通过以下命令可见ss的配置文件,配置文件中自然有密码
ps aux | grep ssserver
#用cat查看下配置文件即可看见密码了
cat /etc/shadowsocks.json
#修改ss密码:
vi /etc/shadowsocks.json
按i键进入编辑模式,修改密码为123456
"password":"123456",
然后按ESC,再输入:wq保存退出
重启ss即可
service shadowsocks restart
附:ss启动停止方法
启动:service shadowsocks start
停止:service shadowsocks stop
重启:service shadowsocks restart
状态:service shadowsocks status

关于更多的命令操作以及下载SSR可查看:如何查看修改ss服务器的端口密码自建ss服务器教程

1
2
3
4
5
6
7
8
9
10
11
#下载命令
yum -y install wget
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh
#安装查看命令
lsmod | grep bbr

在系统CentOS 8中已经自带BBR了!!可用命令lsmod | grep bbr查看。

另外在测试下,其实只要本地的网络速度快,用不用BBR的情况下都是可接受的,都是不影响正常使用的,而且发现最近安装完BBR之后,SS全部不能正常使用了…无奈之下只能重新开一台又一台,难受…所以索性不用了。

关于ss搭建Socks5代理

可参考:

一般来说,在VPS上搭建完SS应用之后,就能直接使用Socks5代理了,一般的账号和端口即为:127.0.0.11080(在ss打开并且行得通的情况下)。当然这些均可修改,具体可查看上方的两个链接。

关于Vutrl里的Snapshot功能

这个可以保存某个VPS服务器在此时此刻的状态,在之后创建的新的服务器之后可直接恢复即可。

具体可参考链接:轻松在 VPS 搭建 Shadowsocks 翻墙 ($5/月 支付宝)

更新

新型墙的阻断方式:ICMP阻断和TCP阻断

ping得通(ICMP协议),但是ssh不通(TCP协议),即为TCP阻断。

解决方案:重新开一台主机…

另外,若是ssh可行,而ping不通,则可选择重新选择端口号试试。

添加福利网址

添加BBRplus链接

1
2
3
4
5
yum -y install wget
wget "https://github.com/cx9208/bbrplus/raw/master/ok_bbrplus_centos.sh" && chmod +x ok_bbrplus_centos.sh && ./ok_bbrplus_centos.sh
#安装成功之后查看端口命令
lsmod | grep bbr

bbrplus在原版bbr加速的基础上进行了一些改进,但是效果因人而异,根据大部分群友的测试bbrplus是要优于bbr加速的,不过目前这个bbrplus一键脚本只支持Centos7。

另外关于更多的Vultr加速链接

关于多种加速的软件选择

另外,我认为有必要需要说明的:

以下文字来源于:https://groups.google.com/forum/#!msg/ustc_lug/Ka-vrTWcSOg/TK0TuV8d5GgJ

不要使用锐速此类软件,它会破坏与你共享网络链路者的公平性。TCP 是有拥塞控制的,也就是它感受到网络拥塞的时候就会减慢发送速率。在 Internet 上感受到拥塞的方法有两种,一是丢包(假定丢包都是拥塞导致的),二是往返延迟(RTT)增大。如果把拥塞控制去掉(例如像某些下载软件一样采用 UDP + 丢包重传),自然能挤掉链路上其他的 TCP 流,表现出很快的下载速度。

锐速宣称是基于 Zeta TCP,它是有拥塞控制的,不过会把其他常见的 TCP 实现(如经典的 TCP Reno,Windows Vista+ 的 CTCP,Linux/BSD 的 Cubic TCP)挤掉,也就是不公平。由于 Internet 不可能在一夜间更换 TCP 实现,任何会导致不公平的 TCP 拥塞控制算法都不能大规模使用。

至于 Wikipedia Zeta TCP 词条宣称的 “不论对方是 Zeta TCP 还是其他 TCP 都能加速”,事实上是任何有实用价值的 TCP 改进算法的必要条件(总不能要求客户端和服务器同时升级系统吧)。词条中的 Congestion Avoidance 提出把基于丢包的和基于往返延迟的拥塞控制相结合,这也不是什么新思路,事实上 Windows Vista 至今的 Compound TCP 就是这样做的,这里的关键是“结合”的细节。词条中还提到 Loss Detection,也就是早些发现丢包的可能并予以重传,算法细节没有公布,但似乎比较拙劣,事实上 RFC 5827 已经定义了新的丢包检测与重传算法,并由 Google 实现在了 Linux 3.5 中。

设计快速的 TCP 拥塞控制算法不难,难点是要与常见的 TCP 实现保证公平。感兴趣的可以看我老板的回忆文章:
http://blog.sina.com.cn/s/blog_4caedc7a0100gd8f.html

像 Zeta TCP 这样的适用于小规模的部署,所有机器都要部署 Zeta TCP。如果你只是想尽快下载,不在乎别人抱怨,那就用 UDP + 应用层丢包重传吧。

  • 另外关于锐速与BBR的原理简单解析可参考:

锐速与BBR的原理简单解析

最终我还是选择了原版的BBR加速。第一,是因为它是经过Google多次验证调试才得以公开示众的,可信度及可靠性高,减少了许多的不确定性,所以较稳定;第二,关于那些魔改的,和plus之类的还只是属于那些“小打小闹”的层面,并且达不到严格验证,而且有些有失共享TCP的公平性,意义上有些损人利已的意味,这点我做不到能够完全接受。以上。

Host key verification failed.认证失败解决方法

当新开了一台服务器使用ssh root@108.xx.xxx.248时出现以下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 ECDSA key sent by the remote host is
SHA256:mmjlETFOCngnf0Qmwtb68wIJJ3VKHJc2LSAjWPuA9zE.
Please contact your system administrator.
Add correct host key in /Users/junjieliu/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/junjieliu/.ssh/known_hosts:11
ECDSA host key for 108.xx.xxx.248 has changed and you have requested strict checking.
Host key verification failed.

解决方法:使用ssh-keygen -R 108.xx.xxx.248命令重叠ssh中文件数据。之后再使用ssh root@108.xx.xxx.248一般就没什么问题了。

电子设备使用Wi-Fi连不上SS

今天刚刚遇到了,具体情况为Wi-Fi下开或者是不开SS连国内网站都也不进去了,以前都是好好的,但是现在只有使用数据流量才能继续连上了。之后我试着用终端SSH连接服务器,发现居然失败了…

最简单的解决方法:换一台服务器….

最近还发现了一个可能导致这个问题的原因:DNS污染。即可通过修改网络“高级”设置(我用的是Mac),修改/删除当前DNS即可恢复正常!!

另外Mac下的防止DNS污染的配置可参考:在Mac OSX 上配置 DNSCrypt+dnsmasq 防止污染

关于错误[Error] libsodium-1.0.16 install failed.

其中的测试环境为:CentOS 8

关于将系统从CentOS7迁移到CentOS8的变动

第一在CentoOS8中使用上方的命令已经失效了。下方是新的命令(亲测有效):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1、下载脚本
一键脚本已集成TCP优化、自动开启Google BBR(限 4.9 或更高版本内核)、自动安装 shadowsocks-libev
wget https://down.24kplus.com/linux/shadowsocks/centos-shadowsocks-libev.sh
2、执行脚本进行安装
chmod +x centos-shadowsocks-libev.sh && ./centos-shadowsocks-libev.sh
3、根据shell脚本提示输入相关信息
1、提示设置SS密码,输入自定义密码后按回车,也可以直接按回车使用默认密码
2、接下来选择SS要使用的服务器端口,输入自己喜欢的端口, 也可以直接按回车使用默认端口
3、 然后选择加密方式(仅保留相对安全的加密方式)
4、 安装完成后,记住各项信息,在客户端连接时需要用到
4、查看配置
cat /etc/shadowsocks-libev/config.json

具体的图文教程可参考:https://www.24kplus.com/linux/1371.html

关于V2Ray的收藏链接(备用取代SS)

V2RayU GitHub:https://github.com/yanue/V2rayU/releases

V2Ray高级技巧:流量伪装

V2Ray GitHub: GitHub地址

……..

关于trojan翻墙工具备用(必要时用于取代SS)

………

---------------本文终---------------

文章作者:刘俊

最后更新:2020年03月12日 - 01:03

许可协议: 转载请保留原文链接及作者。