1. 为什么服务器需要配置静态IP
在工业现场、EMS边缘网关、服务器部署环境中,服务器通常不能依赖 DHCP 动态获取 IP。
典型场景:
- EMS边缘控制器;
- 工业服务器;
- Docker部署服务器;
- Modbus TCP设备网络;
- PLC/PCS/BMS通信网络;
- 局域网管理服务器。
如果 IP 地址变化,会导致:
- SSH无法连接;
- Web页面无法访问;
- MQTT连接失败;
- Modbus TCP通信失败;
- 设备点表IP失效。
因此生产环境通常需要配置:
固定IP 固定网关 固定DNS 固定网口2. Linux网络基础概念
配置静态IP之前,需要先理解几个概念。
2.1 网卡(Network Interface)
Linux中,每一个物理网口都会对应一个网络接口名称。
例如:
enp3s0 enp4s0 eth0 ens160 eno1这些名字就是 Linux 看到的网卡名称。
例如:
服务器:
物理网口1 | | Linux 显示: enp3s02.2 IP地址
例如:
192.168.110.101表示服务器在局域网中的地址。
2.3 子网掩码
常见:
255.255.255.0Linux写法:
/24对应关系:
| 掩码 | CIDR |
|---|---|
| 255.255.255.0 | /24 |
| 255.255.0.0 | /16 |
| 255.0.0.0 | /8 |
例如:
192.168.110.101/24表示:
网络: 192.168.110.0 可用范围: 192.168.110.1 ~ 192.168.110.2542.4 网关 Gateway
网关负责访问其他网络。
例如:
服务器 192.168.110.101 | | 路由器 192.168.110.1 | | Internet那么:
Gateway = 192.168.110.13. 第一步:查看服务器有哪些网口
方法1:ip命令(推荐)
执行:
iplink示例:
1: lo 2: enp3s0 3: enp4s0 4: enp5s0其中:
lo是 Linux 回环接口,不使用。
真正网卡:
enp3s0 enp4s0 enp5s0方法2:查看IP对应网卡
执行:
ipaddr示例:
2: enp3s0: inet 192.168.110.50/24 3: enp4s0: state DOWN说明:
enp3s0 当前已经有IP enp4s0 没有连接方法3:查看网卡状态
推荐:
ip-braddr输出:
lo UNKNOWN 127.0.0.1 enp3s0 UP 192.168.110.50/24 enp4s0 DOWN更直观。
4. 如何确认哪个物理网口对应哪个Linux网卡
这是现场最常见的问题。
例如服务器有:
LAN1 LAN2 LAN3 LAN4Linux显示:
enp3s0 enp4s0 enp5s0 enp6s0怎么对应?
方法1:拔插网线测试
执行:
watch-n1iplink然后:
- 插入某个物理网口;
- 看哪个接口状态变化。
例如:
之前:
enp3s0 DOWN插入网线后:
enp3s0 UP说明:
物理网口 = enp3s0方法2:查看网卡MAC地址
执行:
iplinkshow enp3s0输出:
link/ether 00:11:22:33:44:55然后:
查看交换机:
MAC地址表可以对应设备。
方法3:ethtool查看链路
安装:
aptinstallethtool查看:
ethtoolenp3s0结果:
Link detected: yes Speed: 1000Mb/s Duplex: Full说明:
enp3s0已经插网线5. Ubuntu手动配置静态IP
Ubuntu 20.04以后通常使用:
Netplan配置文件:
/etc/netplan/5.1 查看当前netplan配置
执行:
ls/etc/netplan/例如:
00-installer-config.yaml查看:
cat/etc/netplan/00-installer-config.yaml可能:
network:version:2ethernets:enp3s0:dhcp4:true表示:
当前:
enp3s0 使用DHCP6. 配置静态IP
编辑:
nano/etc/netplan/00-installer-config.yaml修改:
network:version:2renderer:networkdethernets:enp3s0:dhcp4:falseaddresses:-192.168.110.101/24routes:-to:defaultvia:192.168.110.1nameservers:addresses:-223.5.5.5-8.8.8.8解释:
网卡
enp3s0:表示配置哪个接口。
禁用DHCP
dhcp4:false关闭自动获取IP。
设置IP
addresses:-192.168.110.101/24设置网关
routes:-to:defaultvia:192.168.110.1设置DNS
nameservers:addresses:-223.5.5.57. 应用配置
推荐远程服务器使用:
netplan try它会:
应用配置 等待确认 失败自动恢复避免:
修改IP SSH断开 服务器失联确认:
netplan apply8. 验证静态IP
查看:
ipaddr查看路由:
iproute应该:
default via 192.168.110.1测试网关:
ping192.168.110.1测试公网:
ping8.8.8.8测试DNS:
pingwww.baidu.com9. 恢复DHCP
如果配置错误:
编辑:
nano/etc/netplan/*.yaml改:
dhcp4:true然后:
netplan apply10. 使用脚本自动配置静态IP
现场大量服务器部署时,可以使用脚本。
目标:
查看网卡 输入参数 生成netplan 备份旧配置 应用 测试创建脚本
nanoset_static_ip.sh内容:
#!/bin/bashif["$EUID"-ne0];thenecho"Please run as root"exitfiecho"Network interfaces:"ip-brlinkread-p"Interface: "IFACEread-p"IP Address: "IPread-p"CIDR: "CIDRread-p"Gateway: "GWread-p"DNS: "DNSFILE=/etc/netplan/99-static-ip.yamlcp$FILE${FILE}.bak2>/dev/null||truecat>$FILE<<EOF network: version: 2 renderer: networkd ethernets:$IFACE: dhcp4: false addresses: -$IP/$CIDRroutes: - to: default via:$GWnameservers: addresses: -$DNSEOFecho"Generated configuration:"cat$FILEread-p"Apply? yes/no:"CONFIRMif["$CONFIRM"=="yes"];thennetplan tryfi添加执行权限
chmod+x set_static_ip.sh运行:
sudo./set_static_ip.sh示例
假设服务器:
网口: enp3s0 需要: IP: 192.168.110.101 掩码: 24 网关: 192.168.110.1 DNS: 223.5.5.5输入:
Interface: enp3s0 Static IP: 192.168.110.101 CIDR: 24 Gateway: 192.168.110.1 DNS: 223.5.5.5生成:
network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: false addresses: - 192.168.110.101/24 routes: - to: default via: 192.168.110.1 nameservers: addresses: - 223.5.5.511. 工业现场推荐配置流程
实际EMS项目建议:
第一次安装
1. 查看网卡 ip -br addr 2. 插网线确认接口 3. 配置静态IP 4. 测试: ping网关 ping设备 ping云端 5. 保存网络记录网络记录表
建议现场保存:
| 项目 | 值 |
|---|---|
| 设备名称 | EMS Controller |
| 网口 | enp3s0 |
| 用途 | 客户网络 |
| IP | 192.168.110.101 |
| Mask | 255.255.255.0 |
| Gateway | 192.168.110.1 |
| DNS | 223.5.5.5 |
| MAC | xx:xx:xx |
12. EMS设备建议
对于工业EMS控制器:
建议至少:
LAN1: 客户网络 192.168.x.x LAN2: 设备网络 192.168.y.x LAN3: 调试维护 192.168.z.x不要所有设备混在一个网段。
例如:
LAN1 | 客户交换机 | 云平台 LAN2 | PCS/BMS/电表 LAN3 | 工程调试电脑这样:
- 安全;
- 易维护;
- 故障定位简单。
总结
服务器配置静态IP的标准流程:
1. 查看网卡 | ↓ 2. 确认物理网口对应接口 | ↓ 3. 查看当前网络配置 | ↓ 4. 修改netplan | ↓ 5. netplan try测试 | ↓ 6. ping验证 | ↓ 7. 保存网络配置文档自动化脚本只是把:
查看 修改 备份 应用 验证流程标准化。
对于EMS边缘控制器,最终建议开发一个:
网络管理服务(Network Manager) 功能: - 网口扫描 - DHCP/静态切换 - IP配置 - DNS配置 - 网关配置 - 连通性测试 - HMI配置页面这样现场工程师无需SSH即可完成网络调试。