内网环境福音:CentOS 局域网 YUM 源搭建全指南(有外网 / 无外网双方案)
在企业级 Linux 运维场景中,很多现场服务器处于纯内网环境,无法直接访问外网 YUM 源,导致系统包更新、软件安装等操作举步维艰;即便部分服务器能连通外网,也可能因官方源速度慢、版本老旧影响运维效率。针对这些痛点,本文整理了一套完整的局域网 YUM 源搭建方案,分别适配 “有外网” 和“无外网”两种场景,帮助运维人员实现内网服务器的高效包管理。
一、前期准备:关闭 SELINUX(必做步骤)
无论是哪种搭建场景,首先需要关闭 SELINUX,避免其对后续操作产生权限限制:
-
查询 SELINUX 状态
getenforce -
临时关闭(无需重启,立即生效)
setenforce 0 -
永久关闭(修改配置文件,需重启服务器生效)
vim /etc/selinux/config将配置项
SELINUX=enforcing改为SELINUX=disabled,保存后重启服务器即可永久关闭。
二、场景一:有外网服务器搭建局域网 YUM 源
此方案适用于有一台可连通外网的服务器,可通过同步外网源包搭建内网 YUM 仓库,供其他内网服务器使用。
1. 配置国内 YUM 源(提升同步速度)
-
先备份历史 YUM 源,避免冲突
sudo mv /etc/yum.repos.d/* /root/ -
下载阿里云 CentOS 7 YUM 源(无 wget 可换 curl)
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo #或curl命令 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo -
清理并生成缓存
yum clean all && yum makecache
2. 安装并配置 httpd 服务(提供仓库访问)
-
先更新 YUM 源,再安装 httpd
yum update -y yum install -y httpd -
修改端口(默认 80 端口,若被占用可改为 8080)
vim /etc/httpd/conf/httpd.conf将
Listen 80改为Listen 8080,保存退出。 -
启动 httpd 并设置开机自启
systemctl start httpd systemctl enable httpd -
配置防火墙(建议直接关闭,简化操作)
systemctl stop firewalld systemctl disable firewalld
3. 同步外网源包,创建 YUM 仓库
-
创建仓库目录,用于存放同步的 RPM 包
mkdir -p /var/www/html/repo -
过滤架构(可选,节省磁盘空间)
编辑/etc/yum.repos.d/CentOS-Base.repo,在[base]、[updates]、[extras]段下添加过滤配置,只同步 x86_64 架构包:
exclude=*.i?86 *.athlon *.ppc* *.sparc*
arch=x86_64
-
安装同步工具并拉取 RPM 包
yum install -y createrepo yum-utils reposync -a x86_64 -l -d -m -n -p /var/www/html/repo --download-metadata -
生成仓库元数据(让 YUM 能识别仓库)
createrepo -p /var/www/html/repo/base createrepo -p /var/www/html/repo/updates createrepo -p /var/www/html/repo/extras -
测试访问:浏览器打开
http://服务器IP:8080/repo,能看到仓库目录即配置成功。
4. 配置内网客户端服务器
在需要使用局域网 YUM 源的内网服务器(如 192.168.101.102)上创建 repo 文件:
vim /etc/yum.repos.d/Base.repo
写入以下内容(替换为实际仓库服务器 IP):
[base]
name=base
baseurl=http://192.168.101.150:8080/repo/base
enabled=1
gpgcheck=0
[updates]
name=updates
baseurl=http://192.168.101.150:8080/repo/updates
enabled=1
gpgcheck=0
[extras]
name=extras
baseurl=http://192.168.101.150:8080/repo/extras
enabled=1
gpgcheck=0
清理并重建缓存后,即可测试安装软件:
yum clean all && yum makecache
yum install -y wget
三、场景二:无外网环境搭建本地 YUM 源
若所有服务器均无外网访问权限,可通过 “外网提前同步包 + 内网迁移” 的方式搭建 YUM 源。
1. 提前在外网服务器同步 RPM 包
在有外网的 Linux 服务器上,按场景一的步骤同步阿里云源包,然后打包为repo.tar.gz,通过 U 盘、内网传输工具等方式迁移到内网 YUM 源服务器(如 192.168.101.150)。
2. 内网服务器创建本地仓库
-
解压迁移的包并生成元数据
tar -zxvf repo.tar.gz -C /home createrepo -p /home/repo/base createrepo -p /home/repo/updates createrepo -p /home/repo/extras -
创建本地 repo 配置文件
vim /etc/yum.repos.d/Base.repo写入本地仓库路径:
[base] name=base baseurl=file:///home/repo/base enabled=1 gpgcheck=0 [updates] name=updates baseurl=file:///home/repo/updates enabled=1 gpgcheck=0 [extras] name=extras baseurl=file:///home/repo/extras enabled=1 gpgcheck=0 -
清理缓存并测试安装
yum clean all && yum makecache yum install -y wget
3. 扩展为局域网共享仓库(可选)
若需供多台内网服务器使用,可安装 httpd 服务(步骤同场景一),然后将本地仓库迁移到 httpd 目录:
mkdir -p /var/www/html/repo
mv /home/repo/* /var/www/html/repo
内网客户端服务器按场景一的客户端配置方式,使用http://仓库IP:8080/repo作为源地址即可。
四、总结
无论是有外网还是无外网场景,搭建局域网 YUM 源的核心都是 “仓库目录 + 元数据 + 客户端配置” 三步。有外网时可直接同步外网源,效率更高;无外网时通过离线迁移包也能实现内网包管理。该方案解决了内网服务器软件安装、系统更新的痛点,大幅提升企业内网 Linux 运维的便捷性和稳定性。