拿到新的 VPS 之后应该做什么
拿到新的 VPS 之后应该做什么
Katorly先记录这么些。不定期更新。
使用 Ubuntu 22.04 进行演示。
先sudo su
进入root环境。
升级软件包
执行
1 | apt-get update -y && apt-get upgrade -y --only-upgrade |
即可。
修改SSH端口
见此:https://blog.katorly.com/Linux-SSH-Change-Port
禁用root登录
添加新账号
为增加安全性,应禁止root登录,创建一个本地账号,给予sudo权限。
1 | adduser <username> |
会要求输入账户名、密码等信息。
给予新账号sudo执行的权限:
1 | visudo |
会打开一个文件,找到
1 | root ALL=(ALL:ALL) ALL |
在其下一行添加
1 | <username> ALL=(ALL:ALL) ALL |
并保存(按下Ctrl+X
,再按下Y
)即可。
之后,务必在禁用root账号之前,退出SSH,使用新创建的账号登录,看看能不能成功登录,并执行sudo su
看看能不能进入root模式。
禁用root账号登录
1 | vim /etc/ssh/sshd_config |
找到
1 | #PermitRootLogin yes |
(按下Insert
)把前面的注释#
号去掉,后面改成no
,保存(按下Esc,输入:x
)即可。
之后重启sshd服务:
1 | service sshd restart |
可以试试退出SSH,使用root账号登录,看看是否会被拒绝登录。
降低 systemd 日志大小
执行
1 | vim /etc/systemd/journald.conf |
找到
1 | SystemMaxUse=2000M |
把前面的注释#
号去掉,改成下面这样:
1 | SystemMaxUse=5M |
保存,然后清理之前的日志,并重启journalctl服务:
1 | journalctl --vacuum-time=1week |
添加 Swap 分区
先查看当前是否已经有Swap分区。
执行
1 | swapon -s |
查看是否已有Swap,若为0则表示没有。
如果不为0则执行下面这个指令删除已有的Swap分区:
1 | swapoff -a |
添加 Swap 分区
接下来添加Swap分区,对于小内存的VPS来说,一般设置为实际内存的2倍,比如VPS内存是1GB的,设置2GB的Swap:
1 | fallocate -l 2G /swapfile |
不宜设置过大,原因是Swap其实是占用的硬盘空间进行疯狂读写,会缩短硬盘寿命,并且Swap出来的这一部分内存也比较慢。
应该设置多大Swap的参考:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/6/html/installation_guide/s2-diskpartrecommend-ppc
物理内存 | 建议的交换空间大小 |
---|---|
⩽2GB | 内存的2倍 |
>2GB~8GB | 等于内存大小 |
>8GB~64GB | 至少4G |
>64GB | 至少4G |
之后激活Swap分区并设置其开机自启动:
1 | mkswap /swapfile |
再次执行
1 | swapon -s |
即可看到当前Swap的大小了。
调整 Swappiness 值
Swappiness的值可控制系统在还有真实内存剩余的时候尽量少用Swap,比如设为10%:
1 | echo "vm.swappiness=10" >> /etc/sysctl.conf |
执行
1 | sysctl -p |
使新的Swappiness值生效。
删除 Swap 分区
停用Swap分区:
1 | swapoff -v /swapfile |
关闭Swap的开机自启:
1 | sed -i '/\/swapfile swap swap defaults 0 0/d' /etc/fstab |
并删除之前创建的Swap文件:
1 | rm /swapfile |
IPv6 相关操作
先查看机器是否拥有IPv6地址或是否启用了IPv6:
1 | curl ipv6.ip.sb |
如果返回Couldn't connect to server
说明没有/没启用。
启用/禁用 IPv6
禁用IPv6:
1 | echo 'net.ipv6.conf.all.disable_ipv6=1' >> /etc/sysctl.conf |
并重载sysctl配置:
1 | sysctl -p |
开启IPv6:
删除之前的设置即可。
1 | sed -i '/net.ipv6.conf.all.disable_ipv6=1/d' /etc/sysctl.conf |
设置 IPv4 优先
先执行
1 | curl ip.sb |
看看返回的是IPv4地址还是IPv6地址,返回的是谁,目前就是谁优先。
一般有IPv6地址的机器会默认优先IPv6地址。执行
1 | echo "precedence ::ffff:0:0/96 100" >> /etc/gai.conf |
再curl ip.sb
,即可看到返回的是IPv4地址。
取消 IPv4 优先
把刚刚添加的那一行配置注释掉即可:
1 | sed -i 's/precedence ::ffff:0:0\/96 100/#precedence ::ffff:0:0\/96 100/' /etc/gai.conf |
再curl ip.sb
,即可看到返回的是IPv6地址。也可以curl ipv6.google.com
看看。