国内linux服务器一键换源脚本,centos,debian,ubuntu通用脚本
Linux教程 2024-05-09 19:45 392

国内使用

bash <(curl -sSL https://linuxmirrors.cn/main.sh)

教育网
bash <(curl -sSL https://linuxmirrors.cn/main.sh) --edu
github地址
bash <(curl -sSL https://raw.githubusercontent.com/SuperManito/LinuxMirrors/main/ChangeMirrors.sh)
gitee地址
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)

海外使用

bash <(curl -sSL https://linuxmirrors.cn/main.sh) --abroad
github地址
bash <(curl -sSL https://raw.githubusercontent.com/SuperManito/LinuxMirrors/main/ChangeMirrors.sh) --abroad
gitee地址
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) --abroad

命令选项

名称 含义 选项值
--abroad 使用海外软件源
--edu 使用中国大陆教育网软件源
--source 指定软件源地址(域名或IP) 地址
--source-security 指定 Debian 的 security 软件源地址(域名或IP) 地址
--source-vault 指定 CentOS/AlmaLinux 的 vault 软件源地址(域名或IP) 地址
--branch 指定软件源分支(路径) 分支名
--branch-security 指定 Debian 的 security 软件源分支(路径) 分支名
--branch-vault 指定 CentOS/AlmaLinux 的 vault 软件源分支(路径) 分支名
--codename 指定 Debian 系操作系统的版本名称 版本名
--web-protocol 指定 WEB 协议 http 或 https
--intranet 优先使用内网地址 true 或 false
--install-epel 安装 EPEL 附加软件包 true 或 false
--only-epel 仅更换 EPEL 软件源模式
--close-firewall 关闭防火墙 true 或 false
--backup 备份原有软件源 true 或 false
--ignore-backup-tips 忽略覆盖备份提示(即不覆盖备份)
--updata-software 更新软件包 true 或 false
--clean-cache 清理下载缓存 true 或 false
--print-diff 打印源文件修改前后差异 true 或 false
--help 查看帮助菜单

软件源格式 <指定WEB协议>://<软件源地址>/<软件源分支>

示例

指定软件源地址

若不想通过交互选择默认提供的软件源,你可以使用该命令选项指定软件源地址

bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
    --source mirror.example.com
 

指定软件源分支

使用场景:目标软件源有对应系统镜像但是不符合本脚本关于软件源分支设置的默认规则

本脚本为了适配大的环境不会针对某一镜像站独特的镜像分支名称而单独定制,最开始是为了更换国内软件源而设计适配的,默认使用的分支名称如下

Ubuntu ubuntu/ubuntu-ports
Kali Linux kali
Red Hat Enterprise Linux centos/rocky
Fedora fedora
CentOS centos/centos-stream/centos-altarch/centos-vault
Rocky Linux rocky
AlmaLinux almalinux/almalinux-vault
OpenCloudOS opencloudos
openEuler openeuler
openSUSE opensuse
Arch Linux archlinux/archlinuxarm

使用阿里云的 Rocky Linux 软件源

bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
  --source mirrors.aliyun.com \
  --branch rockylinux
 

阿里云镜像站的 Rocky Linux 镜像分支名称为 rockylinux,不符合默认规则,但是可以通过命令选项绕过脚本默认规则来实现。

什么是默认规则?参考这几个例子: Debian GNU/Linux => debianRocky Linux => rockyAlmaLinux => almalinux

单独更换 EPEL 源

有些时候你会发现想使用的镜像站没有 epel 镜像仓库,那么你可以在第一次运行脚本时不安装或不更换 epel 源然后再单独执行下面的命令

bash <(curl -sSL https://linuxmirrors.cn/main.sh) --only-epel
 

自定义 Debian Security 源

如果你想尽可能提高服务器的安全性则建议使用官方源,因为镜像同步存在延迟

bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
  --source-security security.debian.org \
  --branch-security debian-security
 

指定 Debian 系操作系统的版本名称#

你可以自定义该版本名称,大多数情况下用于升级系统版本,请看下面的例子

升级 Debian 至最新 12 版本 Bookworm

bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
  --codename bookworm
 

更换软件源后还需要执行系统更新命令才能实现更新操作,并且建议在更新完成并重启系统后重新执行本换源脚本,因为仅更换软件源配置中的系统版本名称可能会在后期使用时产生一些兼容性问题

无人值守

不通过交互完成换源操作,需要使用大量命令选项来实现,建议熟悉后再使用

参考命令

bash <(curl -sSL https://linuxmirrors.cn/main.sh) \
  --source mirror.example.com \
  --web-protocol http \
  --intranet false \
  --install-epel true \
  --close-firewall true \
  --backup true \
  --updata-software false \
  --clean-cache false \
  --ignore-backup-tips