上篇文章主要记录了一些建站前的事前准备。该买的买好了,备案备好了(如果需要的话),域名解析也做好了,那就可以开始动手部署WordPress环境啦。
SSH工具启动,拿主机提供商给出的VPS登录凭据连接到服务器,开整!
首次连接到新入手的VPS时,建议先对VPS的部分系统环境进行了解,并根据实际需求进行适当的调整。
如果只求能用的话,其实这一篇文章是可以跳过的。但我个人还是推荐在有兴趣的情况下做一做,略微增加一点VPS的安全性与运行效果。
1.演示环境
由于手头暂时没有闲置的VPS,暂时也没打算再收一个玩玩,因此本文中的演示环境就用1个已经做好内网DNS解析的vSphere虚拟机代替。虚拟机的硬件配置和上篇文章中提到的最低建议配置一样。
演示环境的部分信息如下:
- 处理器:1核
- 内存:1GB
- 硬盘:20GB
- 操作系统:Debian 11
- 演示用域名:blog.demo.local
- 演示用IP:10.2.3.3
2.系统更新
在开始使用之前,先敲这个命令把系统升级到最新。
apt update && apt upgrade
3.修改主机名与FQDN
除非在购买VPS时手动指定(需要主机提供商支持这种方式),VPS的主机名默认是随机生成的名字。
建议将主机名和FQDN(完全限定域名,可以理解为主机名+域名)修改成实际使用的名称,方便正反向解析。
首先复习一下主机名与域名的关系。就拿本次用来演示的
blog.demo.local
来说,blog
是主机名,demo.local
是域名,两者加起来的blog.demo.local
即为FQDN。简单来说,上面提到的“域名”就是先前通过域名注册商进行注册的域名,能够代表归你所有的1组服务器(或其他网络设备);而主机名则是加在域名前面,用一个句点隔开的名称,代表的是归你管的单个服务器(或其他网络设备)。
3.1.修改主机名
主机名可以通过hostnamectl set-hostname <your_hostname>
命令来修改。如果要把主机名改成blog,那么可以用这个命令:
hostnamectl set-hostname blog
3.2.修改FQDN
FQDN可以通过编辑hosts文件进行修改。Debian默认使用的编辑器是nano,因此本文中的文本编辑操作将使用nano进行演示。首先使用nano编辑器打开hosts文件:
nano /etc/hosts
Nano的操作方法比较简单,方向键移动光标,鼠标拖动选择特定文本,快捷键实现文件操作。常用快捷键及功能会显示在终端底部。
以演示用IP 10.2.3.3
为例,在hosts文件中把 10.2.3.3
那一行的记录修改成这样。
(IP) (FQDN) (Hostname)
10.2.3.3 blog.demo.local blog
修改完成后按Ctrl+O
并回车保存,然后按Ctrl+X
退出编辑器。
3.3.效果测试
操作完成后可以分别通过hostname
和hostname -f
命令查看验证修改后的主机名和FQDN。
4.创建管理员账号
在Linux中,root账号的权限是非常大的,所以最好不要直接用root账号对操作系统进行管理。
不过嘛毕竟这个只是自己玩玩的博客用VPS,偷懒起见直接用root也不是不可以(笑)。
总之,个人推荐还是创建一个带管理员权限的账号来管理VPS。
4.1.安装sudo
Debian默认没有安装sudo
,需要自行通过apt
来安装。
apt install sudo -y
4.2.创建账号
sudo
安装完成后,通过adduser <your_username>
命令创建1个账号。以创建叫master的账号为例,可以用这个命令创建:
adduser master
命令敲完首先需要设置账号的密码并进行确认,接下来的用户信息设置可以一路回车留空。
4.3.赋予管理员权限
账号创建完成后,将其加入sudo
组中,即可赋予该账号管理员权限。命令格式是usermod -aG sudo <target_user>
还是以给master
账号设置管理员权限为例:
usermod -aG sudo master
操作完成后,管理员账号就成功创建了。
4.4.效果测试
可以通过切换账号试一下效果。切换账号的命令是su - <target_user>
。以切换到master
账号为例,命令如下:
su - master
用管理员账号执行一下sudo apt update
命令,如果在输入该账号的密码后命令能正常执行,那么就没问题了。
这篇文章接下来的内容都将以管理员账号进行操作,区别也就在于执行部分需要root权限的命令时得加个sudo。
5.设置SSH密钥登录
除非在购买VPS时上传了自己的SSH密钥(需要主机提供商支持这种方式),VPS默认的登录方式仅有密码登录。
从安全性的角度来考虑,自然还是SSH密钥登录更为安全。不妨自行生成一个SSH密钥并开启密钥登录。
5.1.生成SSH密钥
生成SSH密钥的命令格式是ssh-keygen -t <encryption_type> -P '[your_passphrase]'
。-t
选项的参数是密钥的加密类型,-P
选项的参数是密钥的口令(注意口令头尾要有个单引号)。口令可以留空,如果有指定口令的话,那么每次通过密钥登录时还需要输入口令进行验证。
至于要不要设置口令,就见仁见智啦。这次就以使用rsa加密,不设置口令的生成方式为例。命令如下:
ssh-keygen -t rsa -P ''
回车之后会提示设置id_rsa
密钥文件的保存位置。默认位置是当前账号家目录(/home/<your_username>/)的.ssh
目录下。一般情况下直接回车使用默认位置即可。
密钥创建完成后,使用ls ~/.ssh/
命令即可看到生成的id_rsa
私钥文件与id_rsa_pub
公钥文件。
可以通过SFTP工具把id_rsa
私钥文件下载到自己的电脑上。以我用的MobaXterm为例,窗口左侧就是SFTP文件传输栏。
5.2.创建authorized_keys文件
接下来需要在~/.ssh/
目录下新建一个authorized_keys
文件,存放用于SSH登录的公钥。使用以下命令创建authorized_keys
文件并将id_rsa_pub
公钥文件的内容直接复制进去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5.3.修改文件权限
authorized_keys
文件的权限必须为600,不然可能无法正常工作。同时为了安全起见,可以把~/.ssh/
目录的权限改成700,防止其他账号读写。
使用以下命令对权限进行修改。
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh/
5.4.修改sshd_config文件
需要对SSH服务端的配置文件进行修改,才能启用SSH密钥登录。
/etc/ssh/sshd_config
配置文件需要root权限才能编辑,由于这里用的是带管理员权限的账号,所以可以加上sudo来编辑它。
sudo /etc/ssh/sshd_config
要修改的是以下几行。如果行首被井号(#)注释了,那么就把井号给删掉。
# SSH协议默认端口是22,可以考虑换个端口防止脚本小子爆破
Port 22
# 禁止root账号通过SSH登录
PermitRootLogin no
# 允许使用SSH密钥登录
PubkeyAuthentication yes
# 指定SSH密钥位置
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
# 禁用SSH密码登录
PasswordAuthentication no
修改完毕后按Ctrl+O
并回车进行保存,然后按Ctrl+X
退出。
5.5.重启SSH服务
重启SSH服务使得修改后的配置文件生效。
sudo systemctl restart sshd.service
5.6.效果测试
刚才已经打开的SSH会话不会被强制断开,但是在SSH服务重启后新建的会话就必须使用SSH密钥登录了。
值得注意的是,先前的演示中我只在master
账号的家目录生成了~/.ssh/authorized_keys
文件,因此能够通过SSH登录的只有这个master
账号。即使有第二个带管理员权限的账号,也无法通过相同的id_rsa
私钥文件进行SSH登录,原因在于那个账号的家目录不存在~/.ssh/authorized_keys
文件。
要测试效果的话,可以尝试各种SSH登录,最后尝试下来应该只有生成了~/.ssh/authorized_keys
文件的非root账号才能进行SSH登录。
6.开启BBR
BBR是Google开发的一种拥塞控制算法,可以对服务器的网络进行优化,一定程度上提升网络的性能。
6.1.查看内核版本
BBR功能已经集成在了4.9版本以上的Linux内核中,如果当前内核不低于4.9,就能直接开启BBR功能。
可以通过这个命令查看内核版本。
uname -r
据我所知,Debian 9和Ubuntu 18.04及以上的版本默认内核都不低于4.9,可以直接开BBR,但是CentOS 7的3.x版本内核是肯定要升级的。
6.2.内核版本满足要求的情况
在内核版本大于等于4.9的情况下,可以通过以下命令修改系统变量并保存,直接开启BBR。
sudo bash -c "echo net.core.default_qdisc=fq >> /etc/sysctl.conf"
sudo bash -c "echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf"
sudo sysctl -p
6.3.需要升级内核的情况下
如果内核版本比较低的话就需要升级内核了。升级内核的操作比较复杂,不妨直接用秋水逸冰大佬的脚本一键到位。
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
sudo bash bbr.sh
脚本跑完会提示重启操作系统,输入y
回车重启即可。
6.4.效果测试
通过以下命令检测BBR是否正常开启:
sysctl net.ipv4.tcp_congestion_control
如果返回值为net.ipv4.tcp_congestion_control = bbr
,则表示BBR已启动。
7.重启VPS
虽说玩Linux最忌没事重启,但是在上述操作搞定后最好还是重启一下。一是让修改后的主机名与FQDN确实生效,二是验证下重启操作系统后配置是否依旧生效。
如果在开启BBR的过程中没有重启过,可以通过以下命令重启操作系统。
sudo reboot
8.个人吐槽
这篇文章大概记录了一些VPS首次启用时的优化(?)操作。
其中部分内容我在搭建电波万事屋的时候根本没有想到过,也是在后面网上冲浪的时候学到的。
本来我的计划是把LEMP的部署以及WordPress的安装也放在这篇文章的,然而光上面这些内容就写了这么多字。
因此决定下篇文章见。(如果还有下篇文章的话……)
0 Comments