阅读须知
- 所有内容都基于Debian和vps拥有良好的网络环境
- 非root用户请使用sudo指令
- 本文面向小白,所以不少废话
- 本文不会及时更新,一切请以官方文档为准
- 请善用目录与搜索(
CTRL + F
)
基础设置
1.更新软件包
1 | apt update && apt upgrade && apt full-upgrade |
2.安装基础工具
1 | apt install neovim curl unzip sudo wget |
3.更换默认编辑器为Neovim
卸载nano
{.line-numbers} 1
apt-get remove nano
更换默认编辑器
运行
1
update-alternatives --config editor
出现如下界面
选择 0 (neovim automode),回车确认
4.设置时区
1 | timedatectl show #查看系统时区 |
安全配置
1.添加新用户
添加新用户
以下用户名都以asuka为例子,请自行更改
1 | adduser asuka |
添加新用户到 sudo 用户组
1 | usermod -aG sudo asuka |
检查新用户是否在sudo用户组中
1 | groups asuka |
相关补充
1 | exit # 退出当前用户登录 |
2. 修改SSH登录端口
vim基本指令介绍
- 若指令的第一个字符为
:
或/
或?
,需在normal模式下输入,通常是先按ESC
回到normal模式,然后直接输入指令,输入完按Enter
才会执行 - vim指令区分大小写
1 | :set nu # 显示行数 |
更改端口前,把 22 端口也添加上,等 ssh 能通过其他端口连接后,再注释掉22端口。
打开SSH配置文件
1 | vim /etc/ssh/sshd_config |
找到
#Port 22
(一般在14行,所以可以
14G
跳转到这)去掉注释(按
i
进入编辑模式)添加新端口号,端口号范围为 1024 - 65535,以端口号为
6543
为例Port 22
Port 6543按
ESC
退出当前模式输入
:wq
退出并保存
重启SSHD服务,让配置生效
1 | systemctl restart sshd.service |
测试是否有效
{.line-numbers} 1
2
3
4
5# 退出当前用户登陆
exit
# 以用户名为root,服务器IP地址为1.1.1.1为例
ssh -p 6543 root@1.1.1.1重新打开ssh配置文件,将22端口注释
如遇到 ssh 连接总自己断开,还可以添加添加配置:
1 | ClientAliveInterval 30 # 每30S服务器向客户端发送一个"alive"消息 |
3.配置SSH免密登录
Windows终端工具建议使用Git Bash
或Cmder
,避免出现默认终端识别不出命令的情况
本机指当前使用机器(你在操作的机器)
服务器指需要远程服务器(你需要远程连接的机器)
1.生成密钥
在本机终端下下输入
1 | ssh-keygen # 用户在 ~/.ssh 目录生成公钥和私钥 |
根据需要设置,可一路回车全默认
2.上传公钥
将本机公钥文件上传到远程服务器
1 | # 进入.ssh文件夹 |
例子
1 | # 绝对路径例子 |
3.登录验证
1 | ssh -p 6543 root@1.1.1.1 |
4.更快捷的登录(SSH登录名配置)
在密钥文件所在文件夹创建配置文件config
文件名为config,无后缀
- 密钥文件默认位于
~/.ssh
文件夹,例如C:\Users\本机用户名\.ssh
内容如下
1 | Host 一个别名 # 随便取,用于ssh登录的名字 |
保存后,登录一下试试
1 | ssh 一个别名 |
4.限制root用户ssh登录或密码登录
进入配置文件:
1 | vim /etc/ssh/sshd_config |
找到并修改PermitRootLogin:
1 | # 默认为yes,若修改为no,则限制root用户通过ssh登录 |
重启ssh服务,使修改生效:
1 | systemctl restart sshd |
5.启用防火墙
安装ufw
1 | apt install ufw |
打开ssh应用的默认端口
1 | ufw allow ssh |
如果 ssh 监听其他端口,就打开那个端口
1 | ufw allow 端口 |
启用防火墙(启用之前一定要保证,SSH 的端口已经开了,不然登出之后就登不进来了)
1 | ufw enable |
添加SWAP
1 | # 创造1G的swap |
设置开机自启用swap
1 | vim /etc/fstab |
添加/mnt/swap swap swap defaults 0 0
配置LNMP环境
安装Nginx
1 | # 更新Debian系统内的软件包 |
安装并配置MySQL
安装MySQL
安装 Mysql 的源。可以从这个网页获取最新版本的链接:https://dev.mysql.com/downloads/repo/apt/
点击Download
复制No thanks,just start my download
链接地址。这就是要用wget下载的包
获取软件包
1 | # 安装 Mysql 时,需要判断你的发行版,因此需要 lsb-release |
安装
1 | #更新软件包 |
安装过程会提示你设置Mysql的root用户密码,输入即可
然后就可以使用了
1 | mysql --version # 检查版本 |
配置MySQL
假设你在安装 Mysql 时,按照提示设置了 root 用户的密码
1.
1 | # 使用root用户连接 |
本示例中密码以Mysql@1234
为例,示例命令:
1 | ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234'; |
面板安装(可选)
安装Podman
1 | sudo apt-get -y install podman |
安装Cockpit
1 | . /etc/os-release |
命令解释
1
cat /etc/os-release
- 这条命令会显示当前系统的发行版信息,包括版本号、代号等。输出内容通常包含类似于以下的键值对:
1
2PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
VERSION_CODENAME=bullseye1
echo "deb http://deb.debian.org/debian ${VERSION_CODENAME}-backports main" > /etc/apt/sources.list.d/backports.list
- 这条命令利用
echo
命令将一个字符串写入到文件/etc/apt/sources.list.d/backports.list
中。该字符串定义了Debian backports软件源的地址。 ${VERSION_CODENAME}
是一个变量,它的值来自于/etc/os-release
文件中的VERSION_CODENAME
,例如,bullseye
。
- 这条命令利用
1
apt update
- 这条命令更新系统中可用的软件包列表,使得新的backports源中的软件包可以被系统识别和使用。
cockpit默认监听9090端口,让防火墙打开9090端口
1 | ufw allow 9090 |
启动cockpit并设置为自动启动
1 | sudo systemctl start cockpit.socket |
查看状态
1 | systemctl status cockpit.socket |
启动后就可以在本机浏览器输入https://服务器ip地址:9090
控制服务器了
用户名 服务器用户名
密码 服务器密码
用Cockpit管理Podman
安装cockpit-podman
1 | apt install cockpit-podman |
打开浏览器进入Cockpit
左侧就有Podman容器
了