前一阵子,因为我在倒腾那个QQ机器人的缘故,我买了台云服务器。因为在docker desktop上运行每次需要占掉我电脑差不多7G左右的内存,而且需要把WSL2打开,导致我模拟器的性能都下降了不少。而且我也不是什么时候都坐在我的电脑前面,这个时候,一台正儿八经的云服务器就成了刚需。

一、在哪里买服务器比较好

国内有非常非常多便宜的服务器,先不说配置,如果只是要一台可以跑跑个人项目的服务器,那么一台2G2核的服务器肯定是纯纯的够了。总结了一下大概有几家可以薅的羊毛,同时还有一部分学生优惠:

  • 阿里云:一个2核2G5M 一年只需99元
  • 腾讯云:也是学生认证,认证之后2核4G一年大概只需要160左右。
  • 京东云:不需要学生认证,直接新客优惠,第一个服务器大概也是核腾讯云学生认证的价差不多就可以拿下一台2核4G的服务器。
  • 火山引擎:或许是新客优惠力度最大的平台了,一个4核4G的服务器居然比我的2核4G的服务器还要便宜。

二、拿到了服务器该设置什么

2.1 新增账户,禁用root

首先,当购买了好了服务器,肯定是会有一个root账号和密码的。第一步需要操作的就是,用这个root账号和密码创建一个具有sudo权限的账号,然后把root账号的SSH登录权限给直接禁用了,操作方法如下:

# a_new_user 是你想创建的用户名,可以换成你自己的名字
adduser a_new_user
 
# 将 a_new_user 添加到 sudo 用户组
usermod -aG sudo a_new_user

然后就可以可以退出这个界面,使用子账号进行后续的操作了。可以通过运行sudo apt update这个命令来确认自己当前的账号是否有sudo的权限

然后用nano编辑器打开配置文件,将root用户的SSH登录给禁用掉。

# 禁止 root 用户远程登录
PermitRootLogin no

虽然说可以设置SSH密钥实现禁用密码登陆的方式,但是对于我来说我觉得有些过于麻烦了,所以没有设置。

2.2 更新软件

刚刚拿到的系统可能软件和软件包并不是最新的,需要更新一下。

# 更新可用软件包列表
sudo apt update
 
# 升级所有已安装的软件包
sudo apt upgrade -y

2.3 设置好时间

另外有的时候可能购买的服务器是在海外的,这个时候就要设置好时区了。

# 查看当前时区
timedatectl
 
# 列出所有可用时区
timedatectl list-timezones
 
# 设置为上海时区(亚洲/上海)
sudo timedatectl set-timezone Asia/Shanghai

2.4 安装必要的工具

sudo apt install -y build-essential curl wget git unzip nano vim
  • build-essential: 编译软件时需要的基础工具包。
  • curlwget: 用于从网络下载文件。
  • git: 版本控制工具,用来拉取代码。
  • unzip: 解压 zip 文件。
  • nanovim: 两种常用的命令行文本编辑器。

2.5 (可选但是推荐)安装一个1Panel

虽然说学习使用命令行确实是必须的,但是有的时候如果不想进行过于复杂的操作,比如只是看看服务器状态如何,那么可以考虑使用一些如宝塔面板1Panel之类的面板进行查看。这些面板有的还有商城功能,可以一件安装你需要的应用而且不容易出错。

1Panel面板

安装1Panel也很简单,只需要有sudo权限的一个账号,然后运行下面的命令。

bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

在安装过程中需要注意的是,最好把账号、密码设置一个自己方便记忆的,其他都可以按照默认来。如果有必要的话之后再修改就可以。

如果忘记了用户入口之类的地址,可以使用下面的这个命令来进行查看。

sudo 1pctl user-info

安装好了1Panel之后,就可以进入面板的设置然后把ufw防火墙给打开了。

三、一定要装的东西

这些东西大概是一定要装的,可以让服务器的安全和使用体验更上一层楼。

3.1 fail2ban

一个入侵防御软件。它会实时监控服务器的日志文件(比如 SSH 登录日志),当发现有可疑行为(比如在短时间内多次输错密码)时,它会自动调用防火墙,封禁那个来源的 IP 地址一段时间。

sudo apt update
sudo apt install fail2ban

安装完成后,它会自动启动并默认启用了对 SSH 的保护。你几乎不需要做任何配置,它就已经在工作了!

3.2 nginx(可以用1Panel安装npm)

如果你的服务器在海外,那么不需要域名备案就可以使用域名访问服务器上特定的服务。因此一个反代的nginx是必要的,刚好1Panel有很方便的一键安装可以使用。

3.3 docker

一定要安装的东西,之后不论是部署开源项目还是部署自己做的神秘小项目,docker都是很好的安装方式。即插即用,配置少而且清晰。一般来说在1Panel安装的时候也会默认进行安装。

# 这是官方推荐的快捷安装命令
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

安装后,为了让你的普通用户也能直接使用 docker 命令(否则每次都要加 sudo),执行:

# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER
# 执行完这条命令后,你需要退出服务器重新登录一次才能生效。

四、我现在安装了的项目