内网环境福音:CentOS 局域网YUM源搭建全指南(有外网/无外网双方案)

在企业级Linux运维场景中,很多现场服务器处于纯内网环境,无法直接访问外网YUM源,导致系统包更新、软件安装等操作举步维艰;即便部分服务器能连通外网,也可能因官方源速度慢、版本老旧影响运维效率。针对这些痛点,本文整理了一套完整的局域网YUM源搭建方案,分别适配"有外网"和"无外网"两种场景,帮助运维人员实现内网服务器的高效包管理。

一、前期准备:关闭SELINUX(必做步骤)

无论是哪种搭建场景,首先需要关闭SELINUX,避免其对后续操作产生权限限制:

  1. 查询SELINUX状态

    复制代码

    getenforce

  2. 临时关闭(无需重启,立即生效)

    复制代码

    setenforce 0

  3. 永久关闭(修改配置文件,需重启服务器生效)

    复制代码

    vim /etc/selinux/config

    将配置项SELINUX=enforcing改为SELINUX=disabled,保存后重启服务器即可永久关闭。

二、场景一:有外网服务器搭建局域网YUM源

此方案适用于有一台可连通外网的服务器,可通过同步外网源包搭建内网YUM仓库,供其他内网服务器使用。

1. 配置国内YUM源(提升同步速度)

  1. 先备份历史YUM源,避免冲突

    复制代码

    sudo mv /etc/yum.repos.d/* /root/

  2. 下载阿里云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

  3. 清理并生成缓存

    复制代码

    yum clean all && yum makecache

2. 安装并配置httpd服务(提供仓库访问)

  1. 先更新YUM源,再安装httpd

    复制代码

    yum update -y yum install -y httpd

  2. 修改端口(默认80端口,若被占用可改为8080)

    复制代码

    vim /etc/httpd/conf/httpd.conf

    Listen 80改为Listen 8080,保存退出。

  3. 启动httpd并设置开机自启

    复制代码

    systemctl start httpd systemctl enable httpd

  4. 配置防火墙(建议直接关闭,简化操作)

    复制代码

    systemctl stop firewalld systemctl disable firewalld

3. 同步外网源包,创建YUM仓库

  1. 创建仓库目录,用于存放同步的RPM包

    复制代码

    mkdir -p /var/www/html/repo

  2. 过滤架构(可选,节省磁盘空间)

  1. 编辑/etc/yum.repos.d/CentOS-Base.repo,在[base][updates][extras]段下添加过滤配置,只同步x86_64架构包:

    复制代码

    exclude=*.i?86 *.athlon *.ppc* *.sparc* arch=x86_64

  1. 安装同步工具并拉取RPM包

    复制代码

    yum install -y createrepo yum-utils reposync -a x86_64 -l -d -m -n -p /var/www/html/repo --download-metadata

  2. 生成仓库元数据(让YUM能识别仓库)

    复制代码

    createrepo -p /var/www/html/repo/base createrepo -p /var/www/html/repo/updates createrepo -p /var/www/html/repo/extras

  3. 测试访问:浏览器打开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. 内网服务器创建本地仓库

  1. 解压迁移的包并生成元数据

    复制代码

    tar -zxvf repo.tar.gz -C /home createrepo -p /home/repo/base createrepo -p /home/repo/updates createrepo -p /home/repo/extras

  2. 创建本地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

  3. 清理缓存并测试安装

    复制代码

    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运维的便捷性和稳定性。

相关推荐
牛奶咖啡1318 小时前
国产服务器系统的PXE无人值守自动化安装部署——以银河麒麟、统信UOS、OpenEuler这三类服务器系统为例
运维·自动化·银河麒麟服务器系统自动化安装·统信uos服务器系统自动化安装·欧拉服务器系统自动化安装·国产x86架构系统自动化安装·国产arm架构系统自动化安装
晚晶18 小时前
【Linux】opencv4.9.0静态库编译,开启opencl和EIGEN矩阵运算
linux·c++·opencv·矩阵·opencl
没有名字的鬼18 小时前
Linux 下的静态库和动态库(C语言)
linux·c语言
ayaya_mana18 小时前
从零开始部署求生之路2 (L4D2) 专属服务器,Linux端SteamCMD详细部署过程
linux·服务器·l4d2·求生之路2
wusam18 小时前
计算机网络传输层应用层综合实验5:DHCP服务
linux·服务器·计算机网络·应用层服务
hnlq18 小时前
高性能异步io机制io_uring(二) ——io_uring的简单实现
linux·服务器·网络
wusam18 小时前
计算机网络传输层应用层综合实验7:Web网站架设
运维·服务器·计算机网络·应用层服务
tianyuanwo18 小时前
服务器操作系统SBOM实践:基于RPM生态的大规模组件透明化管理
运维·服务器·rpm·sbom
不会书18 小时前
Linux字符设备驱动的演进:从传统框架到现代实践
linux·运维·服务器·c语言·驱动开发