第1章:Linux基础环境搭建
各位同学,咱们开始动手了。这一章是整个风电AI工具链的基石——Linux环境搭建。说白了,后面所有的高阶操作、模型训练、数据采集,都得跑在Linux上。我个人习惯用Ubuntu Server 22.04 LTS,稳定、社区活跃、坑少。今天咱们就把这第一步走扎实。
1.1 为什么选Ubuntu Server 22.04 LTS?
你可能要问,为什么不是CentOS?不是Debian?嗯,这里有个现实原因。风电AI工具链里很多依赖包,比如TensorFlow、PyTorch的CUDA版本,Ubuntu的兼容性测试做得最全。我在项目里遇到过CentOS上编译OpenCV三天三夜没搞定,换Ubuntu半小时完事。所以,别跟自己过不去。
Ubuntu Server 22.04 LTS是长期支持版,到2027年才结束支持。对于工业现场的风电项目,稳定压倒一切。你想想看,风机塔筒里那台工控机,一跑就是好几年,谁有空天天升级系统?
核心要点:Ubuntu Server 22.04 LTS = 稳定 + 生态好 + 长期支持。风电AI场景首选。
1.2 安装Ubuntu Server 22.04 LTS
安装过程其实不复杂,但有几个细节我提醒你注意。我装过不下50台机器,踩过的坑都写在下面了。
1.2.1 下载镜像
去官网下载ubuntu-22.04.3-live-server-amd64.iso。别下成Desktop版,Server版没有图形界面,省资源。风电现场的工控机配置一般不高,能省一点是一点。
1.2.2 制作启动盘
用Rufus(Windows)或者dd命令(Linux/Mac)写盘。我个人习惯用dd,简单粗暴:
# 注意:/dev/sdX是你的U盘设备,千万别写错!
sudo dd if=ubuntu-22.04.3-live-server-amd64.iso of=/dev/sdX bs=4M status=progress
警告:我曾经有一次把of参数写成了/dev/sda,结果把硬盘数据全清了。血的教训!写盘前一定用lsblk确认设备名。
1.2.3 安装过程关键步骤
启动后进入安装界面,有几个地方我重点说一下:
- 语言选择:选English。虽然中文也支持,但终端里很多报错信息是英文的,中文环境下显示乱码你更头疼。
- 键盘布局:选English (US)。别选中文键盘,否则@和引号位置不对,输密码时你会疯掉。
- 网络配置:建议用静态IP。风电现场很多没有DHCP服务器,你装完发现没IP,还得接显示器改,麻烦。我一般这样配:
IP地址:192.168.1.100
子网掩码:255.255.255.0
网关:192.168.1.1
DNS:8.8.8.8, 114.114.114.114
- 磁盘分区:新手直接选"Use Entire Disk"就行。老手可以手动分区,建议分一个/boot(1GB)、一个swap(内存大小)、剩下全给/。
- 用户名和密码:别用root直接登录。创建一个普通用户,比如叫windai。密码别太简单,我见过有人设123456,结果被扫了当肉鸡。
- 安装OpenSSH Server:这一步很重要!在安装界面会问你要不要装SSH,一定要勾上。否则装完你没法远程连,还得跑机房。
小技巧:安装时可以把"Ubuntu Pro"的勾去掉,那是收费服务,个人用不上。
1.3 SSH远程连接配置
装完系统,你肯定不想天天蹲在机房。SSH就是你的远程遥控器。我平时在办公室连风机塔筒里的工控机,全靠它。
1.3.1 确认SSH服务状态
安装时勾了OpenSSH的话,系统已经自动启动了。验证一下:
sudo systemctl status ssh
看到active (running)就对了。如果没装,手动来:
sudo apt update
sudo apt install openssh-server -y
sudo systemctl enable ssh
sudo systemctl start ssh
1.3.2 配置SSH安全
默认的SSH配置其实不太安全。我建议你改几个地方:
sudo vim /etc/ssh/sshd_config
找到并修改以下参数:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| Port | 2222(或其他非22端口) | 改端口防扫描,22端口天天被机器人扫 |
| PermitRootLogin | no | 禁止root直接登录,用普通用户登录再su |
| PasswordAuthentication | no | 禁用密码登录,改用密钥登录 |
| PubkeyAuthentication | yes | 开启密钥认证 |
改完重启服务:
sudo systemctl restart ssh
注意:改端口前,先确认防火墙放行了新端口。我曾经改完端口忘了开防火墙,结果把自己锁在外面,大半夜跑了一趟机房。嗯,这种事一次就够了。
1.3.3 配置密钥登录
密码登录不安全,也麻烦。用密钥对,一劳永逸。在客户端(你的笔记本)上生成密钥:
ssh-keygen -t rsa -b 4096 -C "windai@windfarm"
然后把公钥传到服务器:
ssh-copy-id -p 2222 windai@192.168.1.100
之后登录就不用输密码了:
ssh -p 2222 windai@192.168.1.100
1.4 基础网络与防火墙设置
风电现场的网络环境比较复杂。有的在偏远山区,4G信号都断断续续。有的在海上平台,网络延迟高得离谱。所以网络配置要稳。
1.4.1 配置静态IP
Ubuntu Server 22.04用netplan管理网络。配置文件在/etc/netplan/下:
sudo vim /etc/netplan/00-installer-config.yaml
内容示例:
network:
version: 2
ethernets:
enp0s3:
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
小技巧:如果你不确定网卡名字,用ip a查看。我见过有人把enp0s3写成eth0,结果网络起不来。
1.4.2 防火墙设置
Ubuntu默认用ufw管理防火墙。简单好用:
# 启用防火墙
sudo ufw enable
# 放行SSH端口(你改过的端口)
sudo ufw allow 2222/tcp
# 放行其他服务端口(比如后面要用的Jupyter 8888、TensorBoard 6006等)
sudo ufw allow 8888/tcp
sudo ufw allow 6006/tcp
# 查看状态
sudo ufw status verbose
如果你需要更精细的控制,可以用iptables。但说实话,风电AI场景下ufw够用了。我一般只开SSH和几个必要端口,其他全关。安全第一。
1.4.3 网络连通性测试
配置完网络,一定要测试:
# 测试内网
ping 192.168.1.1
# 测试外网
ping 8.8.8.8
# 测试DNS解析
ping baidu.com
如果内网通外网不通,检查网关和DNS。如果外网通但域名解析不了,大概率是DNS问题。我在海上平台遇到过,运营商给的DNS经常挂,换成114.114.114.114就好了。
1.5 本章知识体系
下面这张图帮你理清本章的核心逻辑:
1.6 避坑指南
最后,我把这些年踩过的坑总结一下,你遇到类似问题可以少走弯路:
- 安装时网卡没驱动:有些工控机的网卡比较老,Ubuntu Server可能不认。解决办法是插一个USB网卡,或者用兼容的Intel网卡。我曾经在某个国产工控机上折腾了俩小时,最后换了个USB网卡搞定。
- SSH连不上:先ping一下看网络通不通。如果通,检查SSH端口是否放行、服务是否启动。如果还是不行,看看是不是防火墙把端口拦了。我遇到过ufw规则写错,把SSH端口deny了。
- 密钥登录失败:检查公钥文件权限。~/.ssh/authorized_keys的权限必须是600,~/.ssh目录权限必须是700。否则SSH会拒绝读取。这个坑我至少踩过三次。
- netplan配置不生效:YAML文件对缩进极其敏感。用空格不要用Tab。我建议用vim的set expandtab把Tab转成空格。
好了,这一章的内容就到这。环境搭好了,后面咱们才能在上面跑风电AI工具链。记住,基础不牢,地动山摇。把这一步走稳,后面就顺了。
公众号:蓝海资料掘金营,微信deep3321