08
网络配置、防火墙与 SSH
Network · Firewall · SSH
服务器 99% 的时间你是通过网络远程管理的:配 IP、开端口、连 SSH。这章是"云服务器生存课",也是新手最容易把自己锁在外面的地方。
静态 IP:固定服务器的地址
Ubuntu:netplan → 改 yaml 文件
配置在
/etc/netplan/ 下的 .yaml 文件,改完 sudo netplan apply 生效。注意:yaml 对缩进极其敏感,空格错一个就配置失败。云厂商买的服务器一般 DHCP 自动分配,固定公网 IP 是在云控制台操作,不是改这里。
Rocky:nmcli → NetworkManager 命令
nmcli connection modify ens192 ipv4.addresses 192.168.1.100/24 ... 然后 nmcli connection up ens192。特点:命令行参数化,脚本化友好。
/etc/netplan/00-installer-config.yaml 示例
network:
ethernets:
eth0:
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [223.5.5.5, 8.8.8.8]
version: 2
# 改完:sudo netplan apply
DNS 与主机名
sudo hostnamectl set-hostname web01 # 永久改主机名(老办法改 /etc/hostname)
cat /etc/resolv.conf # 看 DNS 服务器
# Ubuntu 24.04 的 DNS 由 systemd-resolved 管理,别直接改 resolv.conf
防火墙:ufw vs firewalld
防火墙管"哪些端口对外开放"。服务器上只开必要端口(22 SSH、80、443),其余全关。
| 命令 | |
|---|---|
| Ubuntu ufw | sudo ufw enable 开启;sudo ufw allow 80 开端口;sudo ufw allow 443/tcp;sudo ufw allow from 192.168.1.0/24 允许某网段;sudo ufw status 看规则。 |
| Rocky firewalld | sudo firewall-cmd --add-service=http --permanent;sudo firewall-cmd --add-port=8080/tcp --permanent;改完 --reload 生效;firewall-cmd --list-all 看规则。它按 zone(信任级别)组织规则。 |
ufw / firewalld 常用命令
# Ubuntu ufw
sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 80,443/tcp
sudo ufw status verbose
# Rocky firewalld(--permanent 写入永久规则,再 --reload)
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept' --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
最大的坑:把自己锁在门外
远程服务器上,改防火墙、关 SSH 之前,千万别先关掉 22 端口。正确顺序:先 ufw allow 22 确认放行 SSH,再开其他规则;改完别关当前终端,新开一个窗口验证能连上,再走。否则你只能去云控制台"远程救砖"。
| 端口 | 服务 |
|---|---|
22 | SSH 远程登录。 |
80 | HTTP 网站。 |
443 | HTTPS 加密网站。 |
3306 | MySQL。 |
5432 | PostgreSQL。 |
6379 | Redis(默认只绑本机,别对公网开)。 |
8080 | 常用的备选 web 端口。 |
SSH:远程登录的生命线
基础用法
ssh jianma@1.2.3.4 # 登录远程服务器
ssh -p 2222 jianma@1.2.3.4 # 改了端口,用 -p 指定
scp file.txt jianma@1.2.3.4:/tmp/ # 上传文件
scp jianma@1.2.3.4:/var/log/syslog ./ # 下载文件
SSH 配置文件 /etc/ssh/sshd_config 关键项
Port 2222 # 改默认端口(减少被扫描)
PermitRootLogin no # 禁止 root 直接登录
PasswordAuthentication no # 禁用密码登录,只用密钥
PubkeyAuthentication yes # 允许密钥登录
AllowUsers jianma # 只允许这几个用户登录
# 改完 sudo systemctl restart ssh
钥密钥登录:告别密码,又安全又方便
密钥是一对:私钥留在你自己电脑(保管好,谁也别给),公钥放进服务器的 ~/.ssh/authorized_keys。配好以后 ssh 直接登录,不用输密码,也不怕被暴力破解。
三步配好:① 本地 ssh-keygen -t ed25519 生成密钥对;② ssh-copy-id jianma@1.2.3.4 把公钥推上去;③ 以后直接 ssh jianma@1.2.3.4。
记
本章小结
① 静态 IP:Ubuntu 改 netplan yaml,Rocky 用 nmcli;主机名 hostnamectl set-hostname。
② 防火墙 ufw allow / firewalld --add-service;远程操作永远先保 22 端口,别锁死自己。
③ SSH 升级三件套:密钥登录(ssh-keygen + ssh-copy-id)、禁 root 直登、改默认端口。