ithuang
ithuang
发布于 2025-05-30 / 3 阅读
0

CentOS 切换到 Ubuntu

CentOS 切换到 Ubuntu

从 CentOS 切换到 Ubuntu,最核心的变化是:包管理、防火墙、安全策略和部分系统配置路径。


1. 包管理:yum → apt

操作CentOSUbuntu
更新软件包列表yum updateapt update
升级所有软件yum upgradeapt upgrade
安装软件yum install <pkg>apt install <pkg>
移除软件yum remove <pkg>apt remove <pkg>
搜索软件yum search <pkg>apt search <pkg>
清理缓存yum clean allapt clean

💡 注意:Ubuntu 需要先执行 apt update 刷新源,再执行 apt upgrade。而 CentOS 的 yum update 会自动刷新源。


2. 服务管理:基本相同(都用 systemd)

操作CentOS 7+ / Ubuntu说明
启动服务systemctl start <name>一致
停止服务systemctl stop <name>一致
重启服务systemctl restart <name>一致
查看状态systemctl status <name>一致
开机自启systemctl enable <name>一致

⚠️ 唯一要注意的是:老 CentOS 6 的 service 和 chkconfig 命令在 Ubuntu 上依然存在但已过时,请统一用 systemctl。


3. 防火墙:firewalld → ufw 或 iptables

  • CentOS 默认使用 firewalld(底层 iptables)
  • Ubuntu 默认没有安装 firewalld,推荐使用 ufw(Uncomplicated Firewall)

常用对比:

操作CentOS (firewalld)Ubuntu (ufw)
查看状态firewall-cmd --stateufw status
开启防火墙systemctl start firewalldufw enable
开放端口firewall-cmd --add-port=80/tcp --permanentufw allow 80/tcp
重载规则firewall-cmd --reloadufw reload
删除规则firewall-cmd --remove-port=80/tcpufw delete allow 80/tcp

💡 如果你习惯 firewalld,也可以直接 apt install firewalld 装上,用法和 CentOS 完全一样。


4. 网络配置:ifcfg-* → netplan 或 /etc/netplan/

项目CentOSUbuntu 18.04+
配置文件位置/etc/sysconfig/network-scripts/ifcfg-eth0/etc/netplan/01-netcfg.yaml
重启网络服务systemctl restart networknetplan apply
查看 IPip addr(通用)ip addr 或 netplan ip leases eth0

⚠️ 注意:不要手动编辑 /etc/network/interfaces(旧方式),Ubuntu 现在用 YAML 格式的 netplan。
如果你在云上(阿里云),一般不需要手动改网络配置,DHCP 自动分配即可。


5. 安全策略:SELinux → AppArmor

项目CentOSUbuntu
强制访问控制SELinux(默认 enforcing)AppArmor(默认对部分程序启用)
查看状态getenforceaa-status
临时关闭setenforce 0systemctl stop apparmor
配置文件/etc/selinux/config/etc/apparmor.d/

💡 对建站来说,大部分情况下 AppArmor 不会像 SELinux 那样频繁阻止服务(如 Nginx、PHP)。如果你不熟悉 SELinux,改用 Ubuntu 反而更省心。


6. 文件系统与路径差异

用途CentOSUbuntu
网页根目录/var/www/html//var/www/html/(一致,但 Ubuntu 的 Apache 默认是 /var/www/html)
Nginx 配置/etc/nginx/nginx.conf一致
Apache 配置/etc/httpd//etc/apache2/
PHP 配置/etc/php.d//etc/php/8.1/cli/conf.d(版本号路径)
环境变量文件/etc/profile、~/.bashrc一致
定时任务/etc/crontab一致

⚠️ Apache 注意:Ubuntu 的 Apache 配置文件拆分更细,主配置 /etc/apache2/apache2.conf,站点配置在 /etc/apache2/sites-available/,启用站点用 a2ensite 而不是手动创建软链接。


7. 日志系统

两者都用 systemd-journald 和 rsyslog,日志查看方式基本一致:

操作命令(通用)
查看系统日志journalctl -xe
查看内核日志dmesg
查看特定服务日志journalctl -u nginx
查看传统日志文件tail -f /var/log/syslog(Ubuntu)
tail -f /var/log/messages(CentOS)

💡 Ubuntu 的传统日志文件是 /var/log/syslog,而不是 /var/log/messages。


8. 默认用户与 sudo

  • CentOS:创建普通用户后,通常需要手动加入 wheel 组并配置 sudo。
  • Ubuntu:默认 root 用户没有密码(无法直接登录),安装系统时创建的第一个用户自动拥有 sudo 权限,推荐始终使用 sudo 执行管理命令。
# CentOS 风格(不推荐在 Ubuntu 上直接启用 root)
su -

# Ubuntu 推荐方式
sudo -i   # 获取临时 root 环境
sudo <命令>

⚠️ 不要试图在 Ubuntu 上 passwd root 设置 root 密码来登录,这会破坏安全模型。坚持用 sudo。


9. 常用命令速查对照表

操作CentOSUbuntu
安装 EPEL / 额外源yum install epel-releaseapt install software-properties-common && add-apt-repository
查看发行版版本cat /etc/redhat-releaselsb_release -a 或 cat /etc/os-release
开启/关闭防火墙端口firewall-cmdufw
重启网络systemctl restart networknetplan apply
设置主机名hostnamectl set-hostname相同

🎯 迁移小贴士(建议收藏)

  1. 提前安装常用工具
    Ubuntu 最小化安装可能缺 vim、net-tools(ifconfig)、curl 等,先执行:

    sudo apt update && sudo apt install vim net-tools curl wget git -y
    
  2. 忘记 ifconfig,用 ip addr
    Ubuntu 倾向使用 ip 命令,虽然装了 net-tools 也能用 ifconfig,但建议适应 ip addr。

  3. 网站文件权限
    Ubuntu 默认使用 www-data 用户和组(CentOS 是 apache 或 nginx)。如果你的脚本需要写权限,记得:

    sudo chown -R www-data:www-data /var/www/html
    sudo chmod -R 755 /var/www/html
    
  4. 定时任务 crontab 用法完全一致,放心使用。

  5. SSH 配置路径:两者都是 /etc/ssh/sshd_config,没有差异。

  6. 遇到命令找不到时:先尝试 apt search <关键词> 找出对应的包名,再安装。


✅ 总结

方面核心差异适应难度
包管理yum → apt⭐⭐(需要习惯)
防火墙firewalld → ufw⭐(可装回 firewalld)
网络配置ifcfg → netplan⭐⭐(云上基本不动)
安全策略SELinux → AppArmor⭐(更省心)
默认用户root 可用 → sudo 必须⭐(小习惯)
服务管理systemd 一致无差异

一句话建议:把你原来的 yum 脑内替换成 apt,把 firewall-cmd 替换成 ufw,把 SELinux 相关操作忘掉,然后记住 sudo 大法,你就能在 Ubuntu 上愉快建站了。

如果你有写好的 shell 脚本或一键安装包,建议先在测试机上跑一遍,因为包名和路径可能有细微差别(例如 httpd 变成了 apache2)。