Ubuntu 配置
配置网卡信息
查看全部物理网卡信息
使用 ip addr 可以查看网卡信息。可以根据得到的信息配置 50-cloud-init.yaml ip、网关等信息。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 28:d2:44:fb:37:b5 brd ff:ff:ff:ff:ff:ff
inet 172.28.168.119/24 brd 172.28.168.255 scope global enp0s25
valid_lft forever preferred_lft forever
inet6 fe80::2ad2:44ff:fefb:37b5/64 scope link
valid_lft forever preferred_lft forever
3: wlp4s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether e8:b1:fc:0d:d3:47 brd ff:ff:ff:ff:ff:ff配置所需网卡的信息
Netplan 是 Ubuntu 18.04 及以上版本中用于网络配置的工具。你需要编辑 /etc/netplan/50-cloud-init.yaml 文件(如果该文件不存在,则需要创建它)。使用文本编辑器打开该文件,例如使用 vim。
sudo vim /etc/netplan/50-cloud-init.yamlnetwork:
ethernets:
enp0s25:
dhcp4: false
addresses:
- 172.28.168.119/24
nameservers:
addresses:
- 202.106.0.20
- 223.5.5.5
search: []
routes:
- to: default
via: 172.28.168.1
version: 2
wifis: {}应用修改
sudo netplan apply重要
如果使用 VMware 的 NAT(VMnat8) 模式需要注意以下问题
- 宿主机中的 VMnet8 网卡 IP 可以设置为
172.28.168.1(这里也可以设置为172.28.168.2,这时下面的网关 IP 就可以设置为172.28.168.1了)。 - 在 VMware 的虚拟网络编辑器中,需要修改 VMnet8 的 Nat 设置
- 子网 IP:
172.28.168.0 - 子网掩码:
255.255.255.0 - 网关 IP:
172.28.168.2
- 子网 IP:
- 虚拟机内部的
via也要配置为172.28.168.2
APT 换源
备份原来的配置文件
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak将源修改为国内源
编辑 /etc/apt/sources.list.d/ubuntu.sources 文件,修改 URIs 地址即可,使用阿里的源
Types: deb
URIs: https://mirrors.aliyun.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg修改系统时间
设置时区
将系统时区设置为 Asia/Shanghai
sudo timedatectl set-timezone Asia/Shanghai修改 /etc/timezone 配置文件中的默认 Etc/UTC 时区修改为 Asia/Shanghai,这个关系到 Java 是否可以正确获取时区
sudo vim /etc/timezone查看时区
timedatectl status禁用休眠
修改 logind.conf
sudo vim /etc/systemd/logind.conf禁止系统在空闲时采取任何动作
IdleAction=ignore如果服务器有笔记本硬件,忽略合盖动作。
HandleLidSwitch=ignore重启 systemd-logind 服务
sudo systemctl restart systemd-logind修改 GRUB
sudo vim /etc/default/grub在 GRUB_CMDLINE_LINUX_DEFAULT 配置项中添加 no_console_suspend。
可以防止控制台挂起:在某些情况下,控制台挂起可能会导致无法通过串口或其他方式访问服务器。使用该参数可以避免这种情况。
GRUB_CMDLINE_LINUX_DEFAULT="no_console_suspend"更新 GRUB 配置
sudo update-grub禁用系统自动休眠/挂起
sudo vim /etc/systemd/sleep.conf添加或修改以下行
AllowSuspend=no
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no
AllowSuspend=no: 禁止挂起(Suspend)。AllowHibernation=no: 禁止休眠(Hibernate)。AllowSuspendThenHibernate=no: 禁止先挂起再休眠的模式。AllowHybridSleep=no: 禁止混合睡眠模式。
保存后重启服务
sudo systemctl restart systemd-logindSSH 配置
sudo vim /etc/ssh/sshd_config添加以下内容,配置保活消息
ClientAliveInterval 60
ClientAliveCountMax 3sudo systemctl restart ssh.serviceCUDA 与显卡驱动安装
重要
存在集显的机器可能需要禁用集显或者将独显设置为第一优先级。
在 Ubuntu 24.04 Server(无图形界面)上安装 NVIDIA 驱动,最推荐且稳定的方法是使用 Ubuntu 官方仓库的 apt 包管理器。这种方法能自动处理内核模块编译和依赖关系。
以下是详细的操作步骤:
1. 准备工作
更新 PCI ID 数据库
警告
如果不更新,较新的显卡可能会识别不到型号。识别不到型号安装好驱动也无法正常运行编译 CUDA 程序。
sudo update-pciids查看显卡是否正确安装
lspci | grep -i nvidia在输出信息中显示显卡型号再继续安装 CUDA
❯ lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GB203 [GeForce RTX 5070 Ti] (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 22e9 (rev a1)更新软件源列表
更新软件源列表,并安装必要的工具(如 ubuntu-drivers-common)。
sudo apt update
sudo apt install ubuntu-drivers-common -y2. 查询推荐的驱动版本
使用以下命令查看系统检测到的 NVIDIA 显卡以及推荐的驱动版本:
ubuntu-drivers devices输出示例:
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001B80sv00001043sd00008613bc03sc00i00
vendor : NVIDIA Corporation
model : GP104 [GeForce GTX 1080]
driver : nvidia-driver-535 - distro non-free recommended
driver : nvidia-driver-550 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin注意寻找标记为 recommended 的版本(例如上面的 nvidia-driver-535)。如果没有标记,通常选择版本号较大的稳定版(如 535, 550 或 575,具体取决于你的显卡型号和新旧程度)。
3. 安装驱动
根据上一步查到的推荐版本进行安装。假设推荐版本是 535(请替换为你实际查到的版本号):
# 方法 A:安装推荐版本(自动选择)
sudo ubuntu-drivers autoinstall
# 或者 方法 B:指定版本安装(更可控,推荐)
sudo apt install nvidia-driver-535 -y注:Ubuntu 24.04 较新的硬件可能推荐 nvidia-driver-550 或更高版本。
4. 配置(可选但推荐)
对于服务器环境,为了防止内核更新后驱动失效,建议确保 DKMS 服务正常,并禁止开源驱动 nouveau 冲突(通常安装专有驱动时会自动处理,但手动确认更稳妥)。
检查 nouveau 是否被禁用:
lsmod | grep nouveau如果有输出,说明 Nouveau 正在运行,需要禁用它:
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u通常情况下,执行第 3 步的 apt install 后系统会自动处理黑名单,如果 lsmod | grep nouveau 无输出,则跳过此步。
5. 重启系统
安装完成后,必须重启系统以加载新的内核模块。
sudo reboot6. 验证安装
系统重启后,再次登录,使用以下命令验证驱动状态:
nvidia-smi成功标志: 如果看到一张表格,显示了 GPU 名称、显存使用情况、驱动版本(Driver Version)和 CUDA 版本,说明安装成功。
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.124.06 Driver Version: 570.124.06 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 5070 Ti Off | 00000000:01:00.0 Off | N/A |
| 38% 29C P0 37W / 300W | 1MiB / 16303MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+常见问题排查:
- 命令未找到 (
command not found):可能是路径问题,尝试/usr/bin/nvidia-smi。如果仍不存在,说明驱动未正确安装,请检查/var/log/ubuntu-drivers.log或dmesg | grep -i nvidia。 - 权限不足:确保使用
sudo或直接以 root 用户运行。 - Secure Boot(安全启动):如果在 BIOS 中开启了 Secure Boot,第三方驱动可能无法加载。如果
nvidia-smi报错提示模块未签名,请进入 BIOS 关闭 Secure Boot,或者手动签署 MOK 密钥(较复杂,服务器环境建议直接关闭 Secure Boot)。
检查 CUDA 工具包是否安装成功
在终端或命令提示符中运行以下命令:
nvcc --version如果 CUDA 安装成功,你会看到类似以下的输出:
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2023 NVIDIA Corporation Built on Sun_Apr__2_19:41:21_PDT_2023 Cuda compilation tools, release 12.1, V12.1.105如果未安装 CUDA 或路径配置不正确,可能会提示
command not found或类似的错误。
常用命令
查看已安装的 NVIDIA 驱动
apt list --installed | grep -i nvidia卸载驱动
可以通同配置卸载已安装的驱动列表
sudo apt purge "nvidia-*"回退内核
有时新内核 + 新驱动组合有 bug:使用 uname -r 可以查看当前使用的内核
# 查看可用内核
ls /boot/vmlinuz-*
# 重启时在 GRUB 选择旧内核启动
# 或设置默认启动旧内核:
sudo vim /etc/default/grub
# 修改 GRUB_DEFAULT=0 改为 GRUB_DEFAULT="1>2"(选择旧内核)
sudo update-grub
sudo reboot切换内核后需要安装当前内核的头文件和开发包,例如 uname -r 出现 6.8.0-79-generic 则需要执行以下命令安装,否则会出现安装驱动等编译后无法使用的问题。
sudo apt update
sudo apt install linux-headers-6.8.0-79-generic linux-image-6.8.0-79-generic