第3章:Linux系统环境搭建——Ubuntu Server 22.04 LTS安装、网络配置与SSH远程管理
工控网关这东西,说白了就是个“翻译官”。一头连着Modbus RTU/ASCII的现场总线,另一头要跟OPC UA服务器对话。操作系统选什么?我个人习惯是Ubuntu Server 22.04 LTS。为什么?稳定、驱动全、社区活跃,而且工控项目一跑就是三五年,LTS版本刚好对味。
这一章咱们就把底子打好。别小看安装和配置,我在现场见过太多因为系统装得马虎,后面调试抓狂的案例。嗯,咱们一步步来。
3.1 安装前的准备工作
先列个清单,省得到时候手忙脚乱。
| 项目 | 推荐配置 | 说明 |
|---|---|---|
| CPU | x86_64,双核以上 | ARM架构也行,但驱动兼容性要提前验证 |
| 内存 | ≥ 4GB | 跑OPC UA Server + 数据库,4GB是底线 |
| 硬盘 | ≥ 64GB SSD | 工控日志增长很快,建议分区时预留/var空间 |
| 网络 | 双网卡 | 一张接工厂内网(Modbus),一张接办公网(OPC UA) |
| USB口 | 至少2个 | 一个插安装U盘,一个留给USB转485调试器 |
3.2 安装Ubuntu Server 22.04 LTS
下载ISO镜像,用Rufus或balenaEtcher写进U盘。启动后你会看到一个紫色的安装界面。这里有几个关键点,我踩过坑,你注意一下。
3.2.1 语言与键盘布局
选English。别选中文。为什么?因为终端报错信息、日志文件、脚本路径全是英文,你选中文后有些工具会乱码。键盘布局选English (US),除非你确定现场用的是德式或法式键盘。
3.2.2 磁盘分区策略
我建议手动分区。自动分区会把所有空间给根分区,万一日志写满,系统直接挂掉。
# 推荐分区方案(64GB SSD为例)
/boot → 1GB (ext4)
/ → 20GB (ext4)
/var → 30GB (ext4) # 日志、数据库、OPC UA历史数据
swap → 4GB (交换分区,内存不够时保命用)
3.2.3 软件包选择
安装时只选“OpenSSH server”和“Standard system utilities”。别勾“Ubuntu Desktop”或“Docker”之类的,后面咱们手动装,更可控。
3.3 网络配置——双网卡隔离
工控网关最核心的网络设计就是“物理隔离”。一张网卡接工厂控制网(Modbus TCP/RTU),另一张接管理网(OPC UA客户端访问)。
Ubuntu Server 22.04默认用Netplan管理网络。配置文件在/etc/netplan/下,一般是00-installer-config.yaml。
3.3.1 查看网卡名称
ip link show
# 常见名称:enp0s3(NAT)、enp0s8(桥接)、enp0s9(内部网络)
3.3.2 配置示例(双网卡静态IP)
# /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
enp0s3: # 接工厂控制网(Modbus侧)
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
enp0s8: # 接管理网(OPC UA侧)
dhcp4: no
addresses:
- 10.0.0.100/24
# 注意:这张网卡不设网关,避免路由冲突
配置完执行:
sudo netplan apply
验证一下:
ip addr show
ping -c 3 192.168.1.1 # 测试控制网网关
ping -c 3 10.0.0.1 # 测试管理网网关(如果有)
3.4 SSH远程管理——安全第一
工控网关通常放在机柜里,没显示器没键盘。SSH是你唯一的窗口。但默认配置太危险,咱们得加固一下。
3.4.1 安装与启动
安装时如果没选OpenSSH server,现在补上:
sudo apt update
sudo apt install openssh-server -y
sudo systemctl enable ssh
sudo systemctl start ssh
3.4.2 安全加固(必做)
编辑/etc/ssh/sshd_config,改这几个参数:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| Port | 2222(或其他非标准端口) | 别用22,扫描器第一个扫的就是22 |
| PermitRootLogin | no | 禁止root直接登录,用普通用户+sudo |
| PasswordAuthentication | no | 关闭密码登录,只用密钥 |
| PubkeyAuthentication | yes | 开启密钥认证 |
| AllowUsers | 你的用户名 | 只允许特定用户登录 |
3.4.3 配置密钥登录
在客户端生成密钥对:
ssh-keygen -t ed25519 -C "工控网关密钥"
# 一路回车,生成 ~/.ssh/id_ed25519 和 id_ed25519.pub
把公钥传到网关:
ssh-copy-id -p 2222 用户名@网关IP
# 或者手动复制:
cat ~/.ssh/id_ed25519.pub | ssh -p 2222 用户名@网关IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
测试登录:
ssh -p 2222 用户名@网关IP
如果一切正常,再回去把PasswordAuthentication改成no,然后重启SSH服务:
sudo systemctl restart ssh
3.5 本章知识体系
下面这张图把咱们这一章的核心逻辑串起来了。你保存下来,以后部署新网关时对照着做。
3.6 验证与测试
装完别急着跑。做几个快速验证,确保环境没问题。
- 网络连通性: 从网关ping一下Modbus设备的IP,再ping一下OPC UA客户端的IP。两边都能通才算合格。
- SSH远程登录: 从你的笔记本用密钥登录网关,确认能正常执行sudo命令。
- 磁盘空间:
df -h检查分区挂载是否正确,特别是/var。 - 系统更新:
sudo apt update && sudo apt upgrade -y,把内核和补丁打上。