VPS开荒
VPS初始化
前提条件
VPS:具备独立IPv4(
xx.xx.xx.xx)的Ubuntu 22.04实例登陆:客户端有SSH,通过
ssh root@xx.xx.xx.xx并输入密码登陆VPS轮询:避免登陆后长时间未操作被VPS自动踢出,客户端配置
~/.ssh/config1
2
3Host *
ServerAliveInterval 60
ServerAliveCountMax 3
更新系统
- VPS更新软件包索引:
apt update - 升级软件包:
apt upgrade -y - 清除无用依赖:
apt autoremove -y
创建管理员
- VPS创建管理员:
adduser arvin,输入密码后一直回车 - 添加管理权限:
usermod -aG sudo arvin - 切换到新用户:
su - arvin- 终端提示符变为
arvin@hwo-tokyo-vps - arvin用户下输入
sudo whoami,打印root
- 终端提示符变为
SSH登陆
公钥登陆
- 客户端确认设备公钥:
cat ~/.ssh/id_xxx.pub- 公钥默认为
id_rsa.pub,也可使用其他加密算法 - 私钥本地保管,避免泄露,必要时重新生成
- 公钥默认为
- 复制公钥到VPS:
ssh-copy-id arvin@xx.xx.xx.xx- 也可以复制其他公钥到VPS:
ssh-copy-id -i ~/.ssh/id_xxx.pub arvin@xx.xx.xx.xx
- 也可以复制其他公钥到VPS:
- 再次登陆VPS:
ssh arvin@xx.xx.xx.xx,可以发现这次登陆不在需要输入密码
禁用密码
VPS打开或创建配置文件:
sudo vim /etc/ssh/sshd_config.d/50-cloud-init.conf1
2
3
4
5
6
7
8
9
10
11# 禁用root通过SSH登陆
PermitRootLogin no
# 禁用密码登陆
PasswordAuthentication no
# 禁用键盘交互认证`,防止变种密码登陆
KbdInteractiveAuthentication no
# 允许公钥认证
PubkeyAuthentication yes检查配置:
sudo sshd -t,无输出则语法无误重启SSH服务:
sudo systemctl restart ssh
SSH会先加载
/etc/ssh/sshd_config中的官方主配置文件,后加载刚才创建的50-cloud-init.conf,覆盖掉主配置文件中的相关配置;创建用户配置文件,可以避免直接修改官方配置文件,利于后续版本更新
登陆验证
- 认证客户端登陆
root:ssh root@xx.xx.xx.xx,提示Permission denied (publickey) - 认证客户端登陆
arivn:ssh arvin@xx.xx.xx.xx,无需密码直接进入 - 陌生客户端登陆
arvin:ssh arvin@xx.xx.xx.xx,提示Permission denied (publickey)
防火墙
放行端口
安装基础防火墙(UFW):
sudo apt install ufw -y,系统通常自带并启用了UFMVPS确认SSH端口:
sudo ss -tlnp | grep ssh
- SSH服务同时监听IPv4和IPv6,端口号默认均为
22
- SSH服务同时监听IPv4和IPv6,端口号默认均为
放行必要端口:SSH(默认TCP 22)、WireGuard(默认UDP 51820)
- 启用防火墙必须放行SSH,否则VPS断连
1
2sudo ufw allow 22/tcp
sudo ufw allow 51820/udp
TCP(Transmission Control Protocol)可靠,UDP(User Datagram Protocol)低延迟
1
2
3
4
5
6
7 应用(SSH / WireGuard)
↓
传输协议层(TCP / UDP)
↓
网络层(IP)
↓
物理网络
- 若开放端口改变需删除旧端口
- 线检查当前规则:
sudo ufw status numbered - 删除上述命令输出的对应需要的端口:
sudo ufw delete <number>
- 线检查当前规则:
出入站策略
设置出入站策略
1
2sudo ufw default deny incoming
sudo ufw default allow outgoing入站:默认拒绝除放行端口外的所有入站流量
出站:允许服务器主动访问外部,保证系统更新和服务正常运行
启用UFW:
sudo ufw enable检查命令:
sudo ufw status verbose
Logging: on (low)表示防火墙已开启基础日志routed是流量转发策略,UFW默认不参与处理New profiles: skip表示新安装了一个带 UFW profile 的服务时,UFW 不会自动启用它,避免端口自动开放