Debian 12 主机初始配置
远程登录主机
配置 SSH
在使用 SSH 远程连接时,如果长时间没有操作,连接可能会自动断开(通常由于网络超时或服务器配置),可在客户端修改用户 SSH 配置(每 60 秒发送一次心跳包,如果 3 次心跳无响应,则断开):
vim ~/.ssh/config
插入配置:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
登录主机
使用 Terminal 远程登录主机:
ssh root@<ip> -p 22
<ip>
为主机 IP 地址。
第一次使用该 IP 地址登录会提示:
......
Are you sure you want to continue connecting (yes/no)?
输入 yes
回车即可。
如果之前在该设备登录过此 IP 的主机,且有重置系统等操作导致主机公钥发生变化,须先在 ~/.ssh/known_hosts
文件中删除此 IP 相关的记录行之后才能正常登录。
系统设置
修改主机名
根据需要修改主机名:
sudo hostnamectl set-hostname <host-name>
<host-name>
为新主机名。
重启主机:
reboot
禁用 IPv6
如果不需要 IPv6,可以禁用:
sudo vim /etc/sysctl.conf
添加以下配置:
# disabe IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
从配置文件加载并立即应用内核参数:
sudo sysctl -p
修改 DNS
Debian 10+ 默认使用 systemd-resolved
来管理网络,需要修改 systemd-resolved
配置文件:
sudo vim /etc/systemd/resolved.conf
取消注释并填写 DNS 配置:
[Resolve]
# 主用 DNS(优先使用)
DNS=223.5.5.5 1.1.1.1
# 备用 DNS(主用不可用时触发)
FallbackDNS=119.29.29.29 8.8.8.8
# 解析所有域名时尝试附加搜索域
Domains=~.
# 启用 DNSSEC(但允许降级)
DNSSEC=allow-downgrade
# 尝试使用 DNS-over-TLS
DNSOverTLS=opportunistic
重启服务:
sudo systemctl restart systemd-resolved
检查当前 DNS 设置:
resolvectl status
尝试手动解析域名:
resolvectl query github.com
nslookup github.com
默认编辑器
Debian 12 系统默认的编辑器一般为 nano
,可修改成更好用的 vim
:
sudo update-alternatives --set editor /usr/bin/vim.basic
测试编辑 visudo
是否直接调用 vim
(默认编辑器):
sudo visudo
vim
基本编辑操作(打开文件时默认为普通模式):
i
:进入插入模式(光标前插入)o
:进入插入模式(光标行下插入新行)Esc
:退出插入模式,进入到普通模式:wq
:保存并退出:q!
:不保存退出:q
:直接退出(无修改时可用)
vim
光标跳转基本操作(普通模式下):
^
:光标跳到行首$
:光标跳到行尾gg
:光标跳到文件第一行G
:光标跳到文件最后一行
软件设置
软件更新
更新 APT 软件包索引:
sudo apt update
升级 APT 安装的软件包:
sudo apt upgrade -y
清理无用软件包:
sudo apt autoremove -y
修改 SSH 端口号
打开 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
找到 #Port 22
,取消注释,修改端口号:
Port <port>
<port>
为新端口号,范围为 1024-65535(注意回避一些常用软件端口号)。
重启 SSH 服务:
sudo systemctl restart sshd
VPS 如果自带了网络防火墙服务,还需要修改对应的防火墙端口配置。
退出当前用户:
exit
使用新端口登录测试:
ssh root@<ip> -p <port>
安装 ufw 防火墙
安装 ufw
防火墙:
sudo apt install -y ufw
如果不需要使用 IPv6,可关闭 ufw
默认的 IPv6 支持,编辑 ufw
默认配置文件:
sudo vim /etc/default/ufw
找到 IPV6
选项,并将其值改为 no
即可:
IPV6=no
开放 SSH 服务端口(默认 22):
sudo ufw allow <port>/tcp
如果没有修改过 SSH 端口号,可以直接使用服务:
sudo ufw allow ssh
启动防火墙:
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
确保已经开启了 SSH 端口,输入 y 即可启动。
查看防火墙详细状态:
sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
22/tcp ALLOW IN Anywhere
创建新用的 sudo 用户
创建新用户
添加一个用户:
sudo adduser <user>
<user>
为新建用户的用户名,输入两次密码,后续信息可以留空。
添加该用户到 sudo
组:
sudo usermod -aG sudo <user>
之后该用户可以使用 sudo
权限执行命令(需要输入该用户自己的密码)。
免密使用 sudo 权限
如果希望用户使用 sudo
命令时不需要输入自己的密码,需要编辑 sudo
权限配置文件:
sudo visudo
找到该用户的配置:
<user> ALL=(ALL) ALL
修改成如下配置(如果没有则直接新建一条):
<user> ALL=(ALL) NOPASSWD:ALL
保存退出,如需使用 root 权限执行命令,使用 sudo <command>
即可。
禁止 root 用户登录
打开 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
找到 PermitRootLogin yes
,改为:
PermitRootLogin no
重启 SSH 服务:
sudo systemctl restart sshd
退出当前用户:
exit
打开一个新的终端窗口,使用新用户登录主机:
ssh <user>@<ip>
切换和登出用户
如需切换至 root
用户:
su -
输入 root
用户密码。
如需切换至其他用户:
su - <user>
输入用户密码。
如需登出当前用户:
exit
会返回到之前的用户登录状态(之前没有登录用户则关闭 SSH 连接)。