内网环境福音: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运维的便捷性和稳定性。

相关推荐
Kina_C7 小时前
LVS-NAT 负载均衡实验从环境搭建到规则持久化
linux·运维·服务器·负载均衡·lvs
小肝一下7 小时前
7. 库制作与原理
linux·c语言·操作系统·bash·shell·动静态库
Android洋芋8 小时前
PrintFriendly网页文章转PDF插件工具及技术分析
运维·服务器·pdf·网页转pdf
Elastic 中国社区官方博客8 小时前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
大数据·运维·前端·人工智能·elasticsearch·搜索引擎·全文检索
RoboWizard8 小时前
金士顿高速闪存盘 单双接口适配多元存储需求
大数据·运维·人工智能·智能手机·云计算
hkj88088 小时前
Ubuntu 20.04 安装 OpenJDK 17
linux·运维·ubuntu
huainingning8 小时前
防火墙重启后ssl登录提示证书过期临时解决方法
linux·服务器·ssl
sulikey8 小时前
服务器安装Docker教程。如何在云服务器安装Docker容器?
运维·服务器·ubuntu·docker·安装教程·云服务器
许彰午8 小时前
17-22-运维与高级主题
运维·网络
万联WANFLOW8 小时前
外贸独立站:服务器放海外国内后台卡,放国内海外客户打不开——这道两头难怎么破?
运维·网络·数据库·经验分享