CentOS 转 Ubuntu 迁移备忘录(附常见坑)
原创
ralap
ralap
网络个人修炼
2026年10月12日 10:04
陕西
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
平时Centos用的多,Ubuntu用的少,记个基础笔记汇总下从 CentOS 转 Ubuntu 22.04,常见基础命令配置。
一、启用 root
Ubuntu 默认会禁用 root 账户的直接登录。具体表现为:
- 没有密码:系统安装时不会要求你设置 root 密码,root 账户处于“锁定”状态,无法直接登录。
- 用
sudo替代:安装时创建的第一个普通用户会自动加入sudo组,需要管理员权限时,在命令前加sudo并输入你自己的密码即可。 - root密码:在普通用户下执行 sudo passwd root,然后输入并确认新密码。
二、软件包管理
Ubuntu 使用 apt 管理 .deb 包,源配置文件在 /etc/apt/sources.list 以及 /etc/apt/sources.list.d/ 目录下。
| 操作 | CentOS | Ubuntu |
|---|---|---|
| 更新软件源索引 | yum makecache |
apt update |
| 升级已安装软件 | yum update |
apt upgrade |
| 安装软件 | yum install 包名 |
apt install 包名 |
| 卸载软件 | yum remove 包名 |
apt remove 包名 |
| 清理缓存 | yum clean all |
apt clean |
注意事项:
Ubuntu 最小化安装默认没有 ping、netstat、ifconfig,需要手动安装:
apt install iputils-ping net-tools dnsutils
执行 apt upgrade 时可能弹出needrestart交互界面,询问重启哪些服务。这不是报错,也不重启系统,只是重启相关后台进程。关闭交互:修改/etc/needrestart/needrestart.conf,将#nrconfrestart=′i′;改为nrconf{restart} = 'a';(自动重启)或'l'(只列出不重启)。
三、网络配置
CentOS 用 /etc/sysconfig/network-scripts/ifcfg-ens33 配静态 IP,Ubuntu 用 Netplan,配置文件在 /etc/netplan/*.yaml,格式为 YAML。YAML 严格缩进,禁用 Tab,子级必须比父级多缩进 2 个空格。
静态 IP 配置示例network: version: 2 renderer: networkd ethernets: ens33: dhcp4: no addresses: [192.168.1.1/24] gateway4: 192.168.1.254 nameservers: addresses: [223.5.5.5]
说明:
gateway4已被标记废弃,会报 WARNING,但非常稳定,可以直接用。如要消除警告,改用单行内联写法:routes: [{to: default, via: 10.10.70.1}]。addresses和nameservers的addresses是列表,用[]或-都可以,单行[]最不容易出错。- 修改后先用
sudo netplan try测试,120 秒内自动回滚,避免断网失联;确认无误后再sudo netplan apply。
cloud-init 重置配置的坑
在虚拟机或云主机中,手动修改的 Netplan 配置可能在重启后被覆盖,原因是 cloud-init 接管了网络管理。必须需要禁用它的模块:
touch /etc/cloud/cloud-init.disabled
验证配置是否生效:
netplan apply # ovsdb-server报错是bug,不影响使用 systemctl restart systemd-resolved
四、防火墙
Ubuntu 推荐使用 ufw 替代 firewalld。先安装:
apt install ufw
启用与常用规则:
ufw status # 查看状态
ufw allow 22/tcp # 允许 HTTP
ufw enable # 启用,会提示是否允许 SSH
ufw deny 23 # 拒绝 Telnet
ufw delete allow 80 # 删除规则
ufw allow from 192.168.1.0/24 to any port 22 #仅允许192.168.1.0网段访问22端口
ufw disable # 关闭防火墙
规则修改后,即时生效,不需要 reload(注意:先放行ssh再启用防火墙)。
五、安全模块
Ubuntu 默认不使用 SELinux,getenforce 和 sestatus 命令通常不存在。Ubuntu 使用 AppArmor 作为默认安全模块。如果你没有主动干预,AppArmor 通常处于启用状态,但大多数场景下不会产生干扰,没关闭也没看到影响是正常的。
六、软件源文件位置与修改
CentOS 的源是 /etc/yum.repos.d/ 目录下的 .repo 文件,改完 yum makecache 生效。Ubuntu 的源分两个位置,apt 会同时读取:
/etc/apt/sources.list
- 系统主源文件。
- 官方仓库(
main、restricted、universe、multiverse)通常都写在这里。 - 你当前系统就是这种情况:
sources.list.d/为空,所有源都在这个文件里。
/etc/apt/sources.list.d/
- 附加源目录,默认为空。
- 每个第三方源(Nginx、MySQL 等)通常单独放一个
.list文件。 - 文件格式和
sources.list完全一样,也是deb http://... jammy main这种。 - 好处是:添加/删除第三方源时,只动一个文件,不会污染主文件。
联网时改国内源:
Ubuntu 官方针对中国区提供了 cn.archive.ubuntu.com,通过 GeoDNS 自动解析到国内合作镜像(清华、阿里云、香港 XTOM 等)。配置的官方源,实际下载走的是国内节点,通常不需要手动换源。如果非要改的话,只需将cn.archive.ubuntu.com替换为指定的源后重新update即可。
内网不联网时怎么改
内网环境下,必须把所有外网源替换成内网能访问的地址,改的文件同样是 /etc/apt/sources.list 和 /etc/apt/sources.list.d/*.list
假设内网服务器地址是 http://192.168.1.100/ubuntu:
cp /etc/apt/sources.list /etc/apt/sources.list.baktee /etc/apt/sources.list <<'EOF'deb [trusted=yes] http://192.168.1.100/ubuntu jammy main restricted universe multiversedeb [trusted=yes] http://192.168.1.100/ubuntu jammy-updates main restricted universe multiversedeb [trusted=yes] http://192.168.1.100/ubuntu jammy-security main restricted universe multiverseEOFapt update
七、其他常见命令
| 场景 | CentOS | Ubuntu 22.04 |
| 服务开机自启 | chkconfig xxx on |
systemctl enable xxx |
| 服务管理 | service xxx restart |
systemctl restart xxx |
| 系统日志 | /var/log/messages |
journalctl -u 服务名 |
参考链接
[1]https://lists.ubuntu.com/archives/foundations-bugs/2024-November/526764.html
[2]https://docs.cloud-init.io/en/latest/howto/disable\_cloud\_init.html
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论