这篇文章上次修改于 331 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
本文共 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 用户名
指令,然后他会让你执行一系列操作,跟着指示执行即可。
然后要给这个用户添加 sudo
权限,在root用户下执行 visudo
指令,然后在 root ALL=(ALL:ALL) ALL
这行之后添加一行,格式如下图:
然后按 Ctrl+O
后按回车即可。
1. 安全措施
更改默认ssh端口
防止被爆破,要不然每次登录看见几万个失败尝试会很难受的
执行 sudo vim /etc/ssh/sshd_config
(或者 nano
之类的你喜欢的编辑器),找到 Port 22
这一行,改成一个你喜欢的数字,建议>100。
禁止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看看会不会出现以下图片,如果出现了那么恭喜你,没出现的话去看一下防火墙关了吗。
安装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
先写到这,之后再更新!
已有 10 条评论
很好,我刚刚买了台 Pre-BF 的优惠服务器,然后正在发蒙的时候第一时间想到了这篇文章 (/ω\)
@Chlorine 我都快忘了我写过这东西了hhh,好久没给新机子开荒了
@Chlorine 很好,在确定 1 G 的内存连 Docker 都很难跑之后,我把 VPS 销了 (/ω\)
不过楼长老友这篇文章确实蛮有用的捏,寒假准备搞块树莓派,肯定能再用上这篇文章 (/ω\)
@Chlorine 如果不用树莓派的硬件功能的话建议买x86的小主机,树莓派性价比不咋样说实话,如果硬件开发的话也可以看看国产的派比如香橙派之类的
@没有楼的楼长 硬件玩不了一点 >﹏<
@Chlorine 那最好买x86主机吧,树莓派做服务器性价比还是太低了
@没有楼的楼长 没钱,所以我选择买一堆旧手机练习 fastboot (/ω\)
@Chlorine 刚修好,换了个cdn🤗
@Chlorine 嗯哼?字体加载突然正常了,之前 Zen 上字体一直是默认的。
@Chlorine 好想法(/ω\)