这篇文章上次修改于 362 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
本文共 3322 个字,阅读时长 ≈ 9 分钟

新服务器开荒指南!

又剁手了qwq,买了cloudcone的圣诞节特惠机子,配置如下:

服务器配置

打算把自己想乱搞的东西部署在上面,延迟还可以

系统用的是Ubuntu 20.04 LTS

那么就让我们开始吧!(第一次写这种东西,如果有问题还请大佬在评论区狠狠输出!)

准备工作

记好你的服务器ip,和你的root密码

安装screen

screen是一个软件,可以让一些东西在后台运行,妈妈再也不怕我装东西的时候ssh断掉了!

首先更新下安装源:

apt update

然后直接安装!

apt install screen

用法:screen -R 名称 新建一个名为名称的后台;screen -x 名称 进入名为名称的后台

添加一个用户

这里是为了防止待会禁止root用户使用ssh登录后一不小心断连连不回去了,而且日常不用root用户是好文明,防止 rm -rf /(千万别尝试!)。

在root用户下执行 adduser 用户名 指令,然后他会让你执行一系列操作,跟着指示执行即可。

1703599710535.png

然后要给这个用户添加 sudo 权限,在root用户下执行 visudo 指令,然后在 root ALL=(ALL:ALL) ALL 这行之后添加一行,格式如下图:

1703600525351.png

然后按 Ctrl+O 后按回车即可。

1. 安全措施

更改默认ssh端口

防止被爆破,要不然每次登录看见几万个失败尝试会很难受的

执行 sudo vim /etc/ssh/sshd_config (或者 nano 之类的你喜欢的编辑器),找到 Port 22 这一行,改成一个你喜欢的数字,建议>100。1703599312540.png

禁止root用户登录

还是刚才编辑的文件,找到 PermitRootLogin 并把后面的 yes 改为 no

最后在做完以上两步后执行 sudo systemctl restart sshd 重启ssh

安装fail2ban

这个软件可以将扫描ip尝试爆破的ip进行封禁,减少被爆破概率。

国内vps请自行搜索apt换源

执行 sudo apt update 以及 sudo apt upgrade 进行软件更新(可选),然后执行 sudo apt install fail2ban 安装fail2ban。具体教程看大佬写的吧 这里 毕竟我也是照着这个来的。

暂时想到的就这些了

2. 配置环境

这里我打算配置 NSP(Nginx+Sqlite+PHP)环境,因为我自己要用的就这些,再加上一个docker。

安装Nginx

如果不想要最新版的Nginx,直接执行 apt install nginx 即可,如果想要最新版的可看以下命令

# Open Terminal (or connect via SSH)
# Ensure you have all of the prerequisites installed:
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
# Import the nginx signing key for apt:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
     | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
# Create a sources .list file for apt:
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
     http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
     | sudo tee /etc/apt/sources.list.d/nginx.list
# Pin the repository to ensure the nginx packages are installed instead of the Ubuntu-provided packages:
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
     | sudo tee /etc/apt/preferences.d/99-nginx
# Update apt:
sudo apt update
# Install nginx:
sudo apt install nginx

然后启动nginx:

sudo systemctl start nginx

如果有如下报错的话:

Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

多半是内置的Apache抢占了nginx的端口,执行以下命令:

sudo systemctl stop apache2.service
sudo systemctl restart nginx

然后在浏览器里输入你的服务器ip看看会不会出现以下图片,如果出现了那么恭喜你,没出现的话去看一下防火墙关了吗。

1703603292830.png

安装PHP

我常用的版本是7.4,这里就以这个版本举例。

首先安装这个软件包:

sudo apt install software-properties-common

然后添加存储库:

sudo add-apt-repository ppa:ondrej/php

最后更新安装包:

sudo apt update

然后你就可以直接安装php7.4了!

sudo apt install php7.4

安装sqlite

不用特别安装,装个php的驱动就好

sudo apt install php7.4-sqlite3

安装docker

确保有以下软件包:

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

添加docker官方密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

国内用户可以添加阿里云的:

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

添加docker官方库:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

国内用户:

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

更新软件源:

sudo apt update

安装docker ce:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

建议配置用户组使得不需要sudo就可以使用docker:

sudo usermod -aG docker $USER

增加swap(虚拟内存)

生成swap文件:

sudo dd if=/dev/zero of=/swapfile count=2048 bs=1024k
                   swap文件路径     数量      大小

最终swap文件大小就是数量×大小

赋予swap文件权限:

sudo chmod 0600 /swapfile

设置文件为swap:

sudo mkswap /swapfile

开启该文件的swap:

sudo swapon /swapfile

先写到这,之后再更新!