Linux 主机名有静态(static)、瞬态(transient)、灵活(pretty)三种形式。日常使用中我们最常配置的是静态主机名。
方法一:nmtui 图形界面
直接执行 nmtui 命令,在图形界面中选择"设置系统主机名"即可修改。适合不熟悉命令行的场景。
方法二:hostnamectl(推荐)
查看主机名:
设置新主机名:
hostnamectl set-hostname my.server.com
方法三:nmcli 命令行
查看和修改主机名:
nmcli general hostname
nmcli general hostname Server01
systemctl restart systemd-hostnamed
修改后需重启 hostnamed 服务让 hostnamectl 感知变化。
任务一:nmtui 图形界面配置
执行 nmtui,依次操作:
编辑连接 → 选中网卡(如 ens160)→ 填充 IP/掩码/网关 → 确定 → 启用连接(前面出现 * 号表示激活)。
验证:用 ifconfig 查看 ens160 是否拿到 IP。
任务二:nmcli 命令配置
常用查询命令:
nmcli connection show# 显示所有连接
nmcli connection show --active# 显示活动连接
nmcli device status# 查看设备状态
nmcli device show ens160# 查看接口属性
创建新连接(静态 IP):
nmcli connection add con-name test2 ipv4.method manual ifname ens160 autoconnect no type Ethernet ipv4.addresses 192.168.10.100/24 gw4 192.168.10.1
参数说明:con-name=连接名 / ipv4.method=获取IP方式 / ifname=网卡名 / autoconnect=是否自动启动
修改连接设置:
nmcli connection modify test2 connection.autoconnect yes# 设为自动启动
nmcli connection modify test2 ipv4.dns 192.168.10.1# 修改 DNS
nmcli connection modify test2 +ipv4.dns 114.114.114.114# 添加 DNS
nmcli connection modify test2 -ipv4.dns 114.114.114.114# 删除 DNS
nmcli connection modify test2 ipv4.addresses 192.168.10.200/24 gw4 192.168.10.254
启用/禁用/删除:
nmcli connection up test2# 启用连接
nmcli connection down test2# 禁用连接
nmcli connection delete test2# 删除连接
nmcli connection reload# 重新加载配置
nmcli 命令与 /etc/sysconfig/network-scripts/ifcfg-* 文件对应关系
ipv4.method manual ↔ BOOTPROTO=noneipv4.method auto ↔ BOOTPROTO=dhcpipv4.addresses 192.0.2.1/24 ↔ IPADDR=192.0.2.1 / PREFIX=24gw4 192.0.2.254 ↔ GATEWAY=192.0.2.254ipv4.dns 8.8.8.8 ↔ DNS0=8.8.8.8connection.autoconnect yes ↔ ONBOOT=yesconnection.interface-name eth0 ↔ DEVICE=eth0
firewalld 是银河麒麟操作系统的动态防火墙管理器,基于区域(zone)概念管理规则。支持 CLI(firewall-cmd)和 GUI 两种管理方式。
状态与区域管理
firewall-cmd --state# 查看防火墙状态
firewall-cmd --get-default-zone# 查看默认区域
firewall-cmd --get-active-zones# 查看生效区域
firewall-cmd --set-default-zone=public# 设置默认区域
firewall-cmd --list-all --zone=work# 查看指定区域策略
服务管理(Service)
firewall-cmd --get-services# 查看可设定的服务列表
firewall-cmd --zone=public --query-service=ssh# 查询 ssh 是否允许
firewall-cmd --zone=public --add-service=https# 临时允许 https
firewall-cmd --permanent --zone=public --add-service=https# 永久允许
firewall-cmd --permanent --zone=public --remove-service=https# 永久拒绝
firewall-cmd --reload# 重载使永久配置生效
关键记忆点:不加 --permanent = 临时生效(重启丢失);加了 = 永久生效,需 --reload 才能立即生效。
端口管理(Port)
firewall-cmd --zone=public --add-port=8088-8089/tcp# 放行 8088~8089 端口
firewall-cmd --zone=public --list-ports# 查看已放行端口
应急模式(Panic)
firewall-cmd --panic-on# 阻断一切网络连接
firewall-cmd --panic-off# 恢复正常
紧急情况下一键断网,比手动删规则安全高效。
网卡区域切换
firewall-cmd --permanent --zone=external --change-interface=ens33
将 ens33 网卡永久绑定到 external 区域,不同区域可配置不同安全策略。
firewalld 的 nat 表支持 3 种操作:SNAT(源地址转换,固定公网 IP)、DNAT(目标地址转换,外网访问内网服务)、MASQUERADE(地址伪装,适用于动态 IP 如 ADSL 拨号)。
企业场景
内网使用 192.168.10.0/24,Linux 服务器作为网关连接互联网,外网 IP 为固定 202.112.113.112。
需求:内网用户能上网(SNAT) + 外网用户能访问内网 Web 服务器(DNAT)。
配置 SNAT(内网→外网)
第 1 步:网关服务器(Server02)安装双网卡,ens160 连内网(192.168.10.20),ens224 连外网(202.112.113.112)。
第 2 步:开启路由转发。
echo 1 > /proc/sys/net/ipv4/ip_forward
第 3 步:外网网卡加入 external 区域并开启伪装。
firewall-cmd --permanent --zone=external --change-interface=ens224
firewall-cmd --permanent --zone=external --add-masquerade
firewall-cmd --reload
第 4 步:内网网卡加入 internal 区域。
firewall-cmd --permanent --zone=internal --change-interface=ens160
firewall-cmd --reload
第 5 步:验证。内网 Server01 ping 外网 Client1 的 202.112.113.113,通即为成功。
配置 DNAT(外网→内网)
第 1 步:内网 Server01 装好 Web 服务器(httpd),确保 80 端口正常。
第 2 步:在网关 Server02 添加端口转发规则。
firewall-cmd --permanent --zone=external --add-forward-port=port=80:proto=tcp:toaddr=192.168.10.1
firewall-cmd --reload
第 3 步:外网 Client1 执行 curl 202.112.113.112,能访问到内网 Server01 的 Web 页面即为成功。
NAT 配置速查表
开启转发:echo 1 > /proc/sys/net/ipv4/ip_forward网卡加区域:firewall-cmd --permanent --zone=external --change-interface=网卡名开启伪装:firewall-cmd --permanent --zone=external --add-masqueradeDNAT 转发:firewall-cmd --permanent --zone=external --add-forward-port=port=80:proto=tcp:toaddr=内网IP重载生效:firewall-cmd --reload删除 DNAT:firewall-cmd --permanent --zone=external --remove-forward-port=port=80:proto=tcp:toaddr=内网IP网卡恢复默认:firewall-cmd --permanent --zone=public --change-interface=网卡名
修改主机名 hostnamectl set-hostname 新名称查看主机名 hostnamectl status创建连接 nmcli connection add con-name 名称 ...修改连接 nmcli connection modify 名称 参数启用/删除 nmcli connection up/down/delete 名称防火墙状态 firewall-cmd --state查看策略 firewall-cmd --list-all添加服务 firewall-cmd --permanent --zone=public --add-service=服务名添加端口 firewall-cmd --zone=public --add-port=端口/tcp重载生效 firewall-cmd --reload开启转发 echo 1 > /proc/sys/net/ipv4/ip_forward开启伪装 firewall-cmd --permanent --zone=external --add-masqueradeDNAT 转发 firewall-cmd --permanent --zone=external --add-forward-port=port=80:proto=tcp:toaddr=内网IP应急断网 firewall-cmd --panic-on
拓展阅读:雪人计划与 IPv6
2019 年 11 月 26 日,全球 43 亿个 IPv4 地址正式耗尽。我国推出的"雪人计划"正是面向 IPv6 时代的重大布局,旨在让中国在下一代互联网中拥有更多话语权和发展空间。学好网络基础,就是为信创事业贡献力量。
掌握了这些命令,Linux 网络配置和防火墙管理就不再是难事。如果觉得有帮助,欢迎收藏备用!
—— 全文完 ——
整理不易,如有帮助欢迎分享给更多需要的朋友