在企业级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](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](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运维的便捷性和稳定性。