楼层: 首页/ 软件技术/ Linux/ 网络配置、防火墙与 SSH
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 ufwsudo ufw enable 开启;sudo ufw allow 80 开端口;sudo ufw allow 443/tcp;sudo ufw allow from 192.168.1.0/24 允许某网段;sudo ufw status 看规则。
Rocky firewalldsudo 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,再开其他规则;改完别关当前终端,新开一个窗口验证能连上,再走。否则你只能去云控制台"远程救砖"。

常用端口速查,防火墙放行时照这个开
端口服务
22SSH 远程登录。
80HTTP 网站。
443HTTPS 加密网站。
3306MySQL。
5432PostgreSQL。
6379Redis(默认只绑本机,别对公网开)。
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 直登、改默认端口。