3、Linux基础环境搭建:操作系统安装(Ubuntu/Debian)、网络配置、SSH远程访问
好,咱们正式开始动手了。这一章要解决的是「地基」问题——把Linux系统装好,把网络调通,让你能远程连上去干活。别小看这一步,我见过太多人在现场折腾半天,结果发现是网线没插紧,或者SSH服务没开。咱们一次搞定,后面就省心了。
本章核心目标:在一台工控机或虚拟机上,完成Ubuntu Server 22.04 LTS的安装,配置静态IP,并启用SSH远程访问。整个过程控制在30分钟内。
3.1 操作系统选型:Ubuntu vs Debian
做工业协议转换网关,操作系统选型其实没那么玄乎。我个人习惯用Ubuntu Server LTS版本,原因很简单:社区活跃,驱动全,遇到问题搜起来快。Debian当然更稳定,但它的软件包更新慢,有时候你需要的网卡驱动或者新内核特性,得自己折腾半天。
咱们这门课统一用Ubuntu Server 22.04 LTS。为什么是这个版本?
- LTS支持到2027年——工业设备一跑就是好几年,你不想中途被迫升级系统吧?
- 内核版本5.15——对主流工业网卡(Intel I210/I350、Realtek RTL8111)支持很好,不用额外装驱动。
- 软件源稳定——Modbus工具、PROFINET协议栈依赖的库,apt直接装,省事。
| 对比项 | Ubuntu Server 22.04 LTS | Debian 11/12 |
|---|---|---|
| 内核版本 | 5.15(较新) | 5.10(较保守) |
| 软件包更新频率 | 中等,安全更新及时 | 慢,但极稳定 |
| 硬件驱动兼容性 | 好,尤其网卡 | 一般,老硬件没问题 |
| 社区支持 | 非常活跃 | 活跃但偏专业 |
| 适合场景 | 工业网关、边缘计算 | 服务器、嵌入式 |
我的建议:如果你是在现场部署,手头只有一台老旧的工控机,内存只有2GB,那可以考虑Debian。但咱们课程为了统一环境,都用Ubuntu。你学会了,换Debian也就是apt命令的区别。
3.2 操作系统安装实战
安装过程其实不复杂,但有几个坑我得提前跟你说。我曾经在一台研华工控机上装Ubuntu,结果装完发现网卡没驱动,折腾了俩小时才找到原因——BIOS里有个「网络堆栈」选项没开。
3.2.1 准备工作
- 镜像下载:去Ubuntu官网下载ubuntu-22.04.3-live-server-amd64.iso
- 制作启动盘:用Rufus(Windows)或dd命令(Linux)写入U盘
- BIOS设置:
- 关闭Secure Boot(否则第三方驱动加载不了)
- 启动模式选UEFI(别选Legacy,除非你机器太老)
- 开启Intel VT-x/AMD-V(后面跑虚拟化用)
3.2.2 安装步骤(精简版)
- 语言选择:选English,别选中文。终端下中文乱码够你喝一壶的。
- 键盘布局:默认English (US),除非你用的是德式键盘。
- 网络配置:这里先选DHCP自动获取,装完再改静态IP。别在安装界面纠结IP,容易卡住。
- 磁盘分区:我建议手动分区,给个参考方案:
/boot:1GB,ext4/:20GB,ext4(系统够用)/var:10GB,ext4(日志和数据库)/opt:剩余全部,ext4(放你的协议转换程序和配置文件)
- 用户名和主机名:主机名我习惯用
modbus-gw-01这种格式,一看就知道是干什么的。 - 安装OpenSSH server:这一步一定要勾选!很多人装完发现连不上,就是因为忘了装SSH。
注意:安装过程中会让你创建用户。别用root直接干活,创建一个普通用户,比如iotadmin,后面用sudo提权。这是安全底线。
3.3 网络配置:从DHCP到静态IP
装完系统重启,你会发现IP是DHCP自动分配的。这在实验室没问题,但到了现场,PLC和上位机都指着固定IP找你的网关呢。所以必须改成静态IP。
Ubuntu从18.04开始用Netplan管理网络,不再是以前的/etc/network/interfaces了。我第一次用Netplan也懵了一下,习惯就好。
3.3.1 查看当前网络状态
ip a
# 或者
ip addr show
你会看到类似enp2s0或ens33这样的接口名。记下来,后面要用。
3.3.2 配置Netplan
Netplan的配置文件在/etc/netplan/目录下,通常叫00-installer-config.yaml。
sudo nano /etc/netplan/00-installer-config.yaml
把内容改成这样(假设你的网卡叫enp2s0):
network:
version: 2
ethernets:
enp2s0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 114.114.114.114
然后应用配置:
sudo netplan apply
避坑指南:YAML文件对缩进极其敏感,必须用空格,不能用Tab。我曾经因为一个空格没对齐,导致网络配置不生效,排查了半小时。建议用nano编辑,别用vi,vi的Tab默认是8个空格,容易乱。
3.3.3 验证网络连通性
ping -c 4 192.168.1.1 # 测试网关
ping -c 4 8.8.8.8 # 测试外网
ping -c 4 baidu.com # 测试DNS解析
如果网关能通但外网不通,八成是DNS没配好。检查/etc/resolv.conf,确认nameserver地址正确。
3.4 SSH远程访问配置
网关装好了,网络通了,接下来你肯定不想每次都搬个显示器去现场操作吧?SSH就是你的远程遥控器。
3.4.1 检查SSH服务状态
sudo systemctl status ssh
如果显示active (running),恭喜你,安装时勾选的SSH已经自动启动了。如果没有,手动安装:
sudo apt update
sudo apt install openssh-server -y
sudo systemctl enable ssh
sudo systemctl start ssh
3.4.2 安全加固(必做)
默认的SSH配置太宽松了,直接暴露在公网上很危险。我建议至少做这几步:
- 禁止root直接登录:编辑
/etc/ssh/sshd_config,找到PermitRootLogin,改成no。 - 修改默认端口:把
Port 22改成Port 2222或别的端口,避开扫描器。 - 仅允许密钥登录:设置
PasswordAuthentication no,然后用ssh-keygen生成密钥对。
# 在客户端生成密钥
ssh-keygen -t rsa -b 4096
# 把公钥复制到网关
ssh-copy-id -p 2222 iotadmin@192.168.1.100
重要提醒:修改SSH配置后,一定要先sudo systemctl restart ssh,然后不要关闭当前终端,另开一个窗口测试新配置能否连上。确认没问题再关。否则你把自己锁在外面,就得跑现场了——我干过这种事,大冬天跑机房,别提多酸爽。
3.5 本章知识结构图
下面这张图把咱们这一章的核心逻辑串起来了。你可以把它当作一个检查清单,部署时对照着来。
3.6 常见问题与排障
最后,我把这些年遇到最多的几个问题列出来,你碰到了直接对照着查。
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 安装时找不到硬盘 | BIOS中SATA模式设为RAID | 进BIOS改成AHCI模式 |
| netplan apply报错 | YAML缩进错误 | 用sudo netplan --debug apply查看具体错误行 |
| SSH连不上,提示Connection refused | SSH服务没启动,或防火墙拦截 | sudo systemctl status ssh检查;sudo ufw allow 2222/tcp放行端口 |
| SSH能连但密码错误 | 键盘布局不对,输错字符 | 安装时选English (US)布局;或通过IPMI/KVM用虚拟键盘输入 |
| ping网关通,ping外网不通 | DNS配置错误或网关没开NAT | 检查/etc/resolv.conf;用traceroute 8.8.8.8看路由在哪断 |
我的经验:如果你在现场部署,手边最好带一个USB转串口模块和一根Console线。万一网络配置搞砸了,SSH连不上,你还能通过串口登录救急。别问我怎么知道的——有一次我在客户机房把网口配置写错了,重启后彻底失联,最后是靠Console线救回来的。
好了,到这步,你的Linux基础环境应该已经跑起来了。系统装好了,网络配通了,SSH也能远程连了。接下来咱们就可以往里面装Modbus和PROFINET的工具链了。记住,地基打得牢,后面盖楼才稳当。