前言
搭建VPS的类似教程已经很多了,但是我发现其中还是有不少坑,自己重复一遍也有可能卡住,所以写个文章来记录一下,一来提醒自己,二来方便他人零基础学习。
什么是VPS?
VPS(Virtual Private Server)虚拟专用服务器,是一种将一台物理服务器分割成多个虚拟的服务器的技术,每个划分出的虚拟服务器都能供给不同的人独立使用。对于使用者来说,相当于是用更便宜的价格实现了一个小服务器,但是拥有和实体服务器一样的独立公网IP、操作系统、硬盘空间和CPU资源。一般用于搭建网站、提供服务、跑脚本(如爬虫)等。
和VPN有什么区别?
VPN(Virtual Private Network)虚拟专用网络,实际上是在已有通信线路上搭建了一条虚拟的专用高速通道,连接使用者和另一专用服务器。目前语境下,VPN一般是用于连接到加速器/科学上网服务器。
购买VPS
VPS好比是租房,租若干时间,然后这房子随你怎么折腾。有名点的VPS如:Vultr、Bandwagon(搬瓦工)、Linode等,国内有阿里云、腾讯云。注意一般VPS经常有打折或者是优惠码之类的,也有一些比较实惠的促销机型,建议购买之前搜索一下,可以省很多很多钱。
按照注册->选型->付费->收邮件的步骤来,一般最后会得到一个IP地址,以及root账号的密码。
进入系统
这个时候应该通过SSH( Secure Shell)协议来安全地连接你的电脑和VPS服务器,一般有putty(UI较老,开源免费)、xshell(UI比较新,个人使用途径是免费的),这里我使用xshell。
进入软件之后会要求新建会话,这里我仅作演示,输入VPS服务商给的IP地址和端口号。
然后在用户身份验证处输入用户名和密码,在服务商发的邮件里肯定有写(有的服务商可能需要自己去启用SSH密码)。
然后就能连接VPS机房了,进入的是一个无图形界面的linux终端。
SSH密钥登录保护
这一步一开始我没有做,直到我收到邮件警告,发现我的VPS服务器在对外发垃圾邮件导致被暂停服务,我才注意到这个问题。实际上有很多黑客都在无时不刻的扫描端口,乘隙破解密码,然后用于黑产,之前的root账号密码,密码不够强壮很容易被暴力破解。
那么取代root密码的就是密钥登录验证,具体的原理以后再说,其实就是RSA非对称加密,公钥私钥的问题。配置了这个保护之后,只有在VPS登记过公钥的电脑,用自己的私钥解密VPS发来的加密信息,才能确认登录成功。所以要妥善保管自己的私钥。下面是操作步骤:
1.生成密钥
生成密钥的方式有很多种,如果本机是linux系统,可以在终端输入ssh-keygen -t rsa
来生成一对密钥,给密钥加密的密码可以输入或者不输。最后生成两个文件,如id_rsa和id_rsa.pub,前者为私钥,后者为公钥(要发到VPS服务器上)。
xshell也可以生成密钥,在工具-新建用户密钥生成向导里,按照步骤一步一步来,也可轻松地生成密钥。
此处的密码可输入或不输入。
2.把公钥保存在VPS服务器上
将id_rsa.pub文件发送到VPS服务器,首先需要安装lrzsz,可以方便的传输文件。
root用户输入(非root用户在下面命令前面加个sudo)apt-get install lrzsz
,如果是centos用户可以输入yum -y install lrzsz
。
安装完毕之后,到该路径下:cd /root/.ssh/
,如果没有这个路径则输入mkdir /root/.ssh/
创建文件夹。
输入rz回车,就会弹出文件选择窗口,选择id_rsa.pub即可上传文件。
重命名文件:cat .ssh/id_rsa.pub >> .ssh/authorized_keys
执行chmod 600 ./authorized_keys
命令,修改权限;
修改配置文件vim /etc/ssh/sshd_config
,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes。
注1:如果没有安装vim则输入apt-get install vim
。
注2:vim默认是命令模式,按下i
键才进入编辑模式,然后当修改完毕,按ESC退出编辑模式到命令模式,输入:wq
(要输冒号哦)以保存和退出。
重启sshd服务,Debian/Ubuntu输入/etc/init.d/ssh restart
,centos7以前的输入/etc/init.d/sshd restart
,centos7以后的输入systemctl restart sshd.service
3.测试密钥连接
和之前设置密码相似,只不过把password选项卡改成public key,然后选择自己的用户私钥,输入自己设置的加密密码。
4.关闭password登录选项
现在我们的VPS已经可以用root密码,或是密钥登录了,确认密钥登录没有问题之后,还是修改配置文件vim /etc/ssh/sshd_config
,将将PasswordAuthentication yes 修改成 PasswordAuthentication no
重启sshd服务,Debian/Ubuntu输入/etc/init.d/ssh restart
,centos7以前的输入/etc/init.d/sshd restart
,centos7以后的输入systemctl restart sshd.service
那么现在设置都完成了,再次提醒要记得保存好生成的私钥文件!
安装Shadowsocks服务端
淦!搞了这么久终于到这一步了,你行不行啊!(hhhh)
什么是Shadowsocks在之前的客户端设置文章里有介绍,这里不多说。
这里要感谢秋水逸冰大佬的一键安装脚本,非常简单无脑。输入下面三条命令,一个一个来,等一条命令完成再输下一条。
wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log
按照提示选择ss版本(随便选一个),设置密码,设置端口号(注意别用一些比较常见的端口,像什么8080和443,很容易就被嗅探到封了,可以输个大一点的数字)、选择协议等,剩下的就回车回车回车,用默认值就行。
注:得知大佬不再更新脚本,还是感触颇深,在现在的社会环境下,为众人拾柴的往往冻死。如果做不到为先驱端一碗热汤,至少不要给先驱泼冷水吧?
BBR加速
有时候SS效果不太好,谷歌有个BBR拥塞控制算法,用于TCP加速,可以通过加倍发包的办法来做到加速的效果,在提高网络带宽利用率的同时也间接加大了网络的丢包率。有些VPS服务商会提供带有bbr的系统镜像,这里讲没有携带镜像时的安装方法。
这里分享三种脚本
1.最新BBR内核脚本
秋水逸冰大佬的脚本,系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
使用root用户登录,输入
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。 重启后,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令查看内核版本,若为最新版即可。
uname -r
返回值一般为:net.ipv4.tcp_available_congestion_control = bbr cubic reno
或者为:net.ipv4.tcp_available_congestion_control = reno cubic bbr
sysctl net.ipv4.tcp_congestion_control
返回值一般为:net.ipv4.tcp_congestion_control = bbr
sysctl net.core.default_qdisc
返回值一般为:net.core.default_qdisc = fq
lsmod | grep bbr
返回值有 tcp_bbr 模块即说明 bbr 已启动。注:并不是所有的 VPS 都会有此返回值,若没有也属正常。
2.BBR超级魔改脚本
南琴浪大佬的一键脚本,只支持Debian,Debian7、8、9都可以,超级魔改的意思就是比bbr更激进地发包,效果更加明显,丢包还有消耗的流量也更大了。
root下输入
wget https://raw.githubusercontent.com/iiiiiii1/tcp_nanqinlang-test/master/tcp_nanqinlang-test.sh
bash tcp_nanqinlang-test.sh
使用脚本后
先选择1
更换内核,然后reboot
重启后,再使用bash tcp_nanqinlang-test.sh
进行第2
步开启超级暴力BBR
模式。
如果删除内核时出现下图,选择no,然后根据提示重启系统
这里我出现了这个提示,这样两个内核算是一样的,出现这个说明成功了,可以重启。
[Info] 这是当前已安装的所有内核的列表:
linux-image-4.10.10-041010-lowlatency
[Info] 这是需要安装的所有内核的列表:
linux-image-4.10.10-lowlatency
[Info] 请确保上下两个列表完全一致!
[Info] 确认内核安装无误后, 重启你的VPS, 开机后再次运行该脚本的第二项!
3.BBR+BBR魔改+锐速集成脚本
千影大佬的一键脚本,包含了BBR+BBR魔改版+Lotsever(锐速),支持系统:CentOS 6+、Debian 8+、Ubuntu 14+。
#过程有2步,第1步安装相应的内核,第2步开启内核对应的加速
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh
使用脚本后如图,选择自己想要的
重启后再使用./tcp.sh
命令接着操作
如果删除内核时出现下图,选择no,然后根据提示重启系统
总结
以上步骤因为我不熟悉,有时候做错都没法回去,只能全部从头来,所以很多步骤我都傻傻的做了好多次,可能我的总结也不是非常详细,应该还会慢慢补充。最后就以前辈的一封邮件做结尾吧。
“ACROSS THE GREAT WALL WE CAN REACH EVERY CORNER IN THE WORLD”(越过长城,走向世界)
——1987年9月14日,中国向世界发出的第一封电子邮件