外网下载内网部署:Yum离线升级Linux软件包

近期安全扫描发现我们的生产环境存在多个系统漏洞,需要紧急升级相关安装包。然而,生产服务器部署在内网隔离环境中,无法直接访问外部软件仓库。面对这一挑战,团队同事推荐了一个高效的解决方案:使用 yum install --downloadonly 命令进行离线包外下内部。今天,我将分享一种高效的方法:利用yum install --downloadonly功能在外网环境下载所需RPM包,然后在内网环境中进行安全部署。

ScreenShot_2025-12-11_103952_066.png

🛠️downloadonly:离线包管理的利器

  • 命令解析
ini 复制代码
# 基本语法
yum install --downloadonly --downloaddir=/home/offline-packages   vsftpd -y

# 参数说明
--downloadonly    # 仅下载,不安装
--downloaddir     # 指定下载目录
-y # 自动 yes

⬇️ 离线包下载流程

  • 单包下载
ini 复制代码
# 下载单个包及其依赖
yum install --downloadonly --downloaddir=/home/offline-packages/ vsftpd  -y

# 如果已安装,使用reinstall参数
yum reinstall --downloadonly --downloaddir=/home/offline-packages/ vsftpd  -y
  • 批量下载多个包
bash 复制代码
# 创建需要升级的包列表
cat > package-list.txt << EOF
openssl
openssh-server
kernel
vsftpd
EOF

# 批量下载
while read pkg; do
    yum install --downloadonly --downloaddir=/home/offline-packages/ $pkg  -y
done < package-list.txt 
  • 下载特定版本
ini 复制代码
# 下载指定版本的包
yum install --downloadonly --downloaddir=/home/offline-packages/ vsftpd-3.0.3  -y

⏳依赖处理

  • 检查下载完整性
bash 复制代码
# 查看下载的包
ls -lh /home/offline-packages/*.rpm

# 统计数量
find /home/offline-packages/ -name "*.rpm" | wc -l

# 生成包列表(用于审计)
rpm -qip /home/offline-packages/*.rpm | grep -E "Name|Version|Release" > package-info.txt

💻内网部署

  • 传输包到内网
bash 复制代码
# 打包压缩
tar -czf offline-packages.tar.gz -C /home/offline-packages/ .
# 将此问文件通过介质传输到内网,在内网服务器操作

# 1. 创建本地仓库目录
mkdir -p /opt/local-repo

# 2. 解压传输的包
tar -xzf offline-packages.tar.gz -C /opt/local-repo/
  • 内网服务器使用rpm直接安装
bash 复制代码
# 直接安装所有下载的rpm包
rpm -Uvh /opt/local-repo/*.rpm

# 或者按需安装
rpm -Uvh /opt/local-repo/vsftpd*.rpm /opt/local-repo/openssl*.rpm

🚀总结

通过yum install --downloadonly命令,我们可以轻松构将升级部署包在外网下载,然后传输到内网升级。这种方法不仅适用于安全升级,还可用于:

  • 新建内网服务器的快速部署
  • 多服务器批量更新
  • 特定版本软件的标准化部署
  • 紧急漏洞的快速响应

掌握这一技能,你将能够在内网环境中游刃有余地管理Linux服务器的软件包,既保证了安全性,又不失灵活性。


温馨提示:生产环境操作前,请务必在测试环境充分验证,并制定详细的回滚方案。安全无小事,谨慎每一步!

相关推荐
无小道1 小时前
深入解析操作系统文件缓冲区:页缓存、基数树与f_pos的协同设计
linux·缓存·文件缓冲区
AOwhisky2 小时前
Linux(CentOS)系统管理入门笔记(第十二期)——系统管理工具与软件包管理(上篇):Cockpit 与 RPM 包管理
linux·运维·笔记·centos·云计算
寒水馨2 小时前
Linux下载、安装godot-4.7.1-stable(附安装包Godot_v4.7.1-stable_linux.x86_64.zip)
linux·游戏引擎·godot·游戏开发·2d游戏·3d游戏·godot engine
念恒123062 小时前
Socket编程UDP(中)
linux·网络协议·udp
深耕运维十八载云架构实务2 小时前
系统故障玄学之内存明明显示空闲,服务器却频繁卡顿卡死?拆解被忽略的 Linux 隐性内存陷阱
linux
qetfw3 小时前
CentOS 7 搭建 Sendmail + Dovecot 邮件服务器:SMTP、POP3、IMAP 与 TLS
linux·centos
明日清晨3 小时前
printf(“%p\n“,&((struct A *)NULL)->m_float)的原理
linux·服务器·前端
Android系统攻城狮4 小时前
Linux PipeWire深度解析之pw_context_add_spa_lib调用流程与实战(二十九)
linux·运维·服务器·音频进阶·pipewire音频进阶
Dovis(誓平步青云)4 小时前
《如何在CentOS 7中添加Plex官方软件源:解决文件磁盘难管理难题》
linux·运维·服务器·后端·生成对抗网络·centos
草莓熊Lotso5 小时前
【Linux网络】深入理解Linux IO多路复用:select服务器完善、内核原理与poll实战
linux·运维·服务器·c语言·网络·c++