需求,某内网Linux02服务器需连接镜像源,安装软件,但出于网络安全考虑不能连接外网。 解决办法: 通过一台可以临时连接外网的Linux01服务器,镜像开源镜像站,搭建本地镜像服务器,供Linux02使用

关闭防火墙,关闭SElinux

实验环境: 2台Linux 服务器,配置均为300G硬盘,CentOS 7.4 64位操作系统 其中一台Linux01服务器,I外网IP:59.196.118.111,内网IP:10.49.128.96 ,可连接外网 另一台linux02服务器,内网IP:10.49.128.93 ,无法连接外网 需要提前安装的程序包: yum-utils (包含reposync命令)(CentOS7.4 默认安装,可直接使用) createrepo 编辑yum库工具 (CentOS7.4 默认安装,可直接使用) plugin-priorities 控制yum源更新优先级工具,这个工具可以用来控制进行yum源检索的先后顺序,建议可以用在client端

nginx 或httpd (在配置好YUM源后,yum 方式安装)

删除/etc/yum.repos.d/下的原有.repo文件 touch rhel-debuginfo.repo 编辑rhel-debuginfo.repo 输入以下内容:

[base] name=CentOS-$releasever - Base baseurl=http://mirrors.163.com/centos/7/os/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

#released updates [updates] name=CentOS-$releasever - Updates baseurl=http://mirrors.163.com/centos/7/updates/$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

[extras] name=CentOS-$releasever - Extras baseurl=http://mirrors.163.com/centos/7/extras//$basearch/ gpgcheck=1 gpgkey=http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

刷新缓存: yum clean all yum makecache

yum install epel-release -y yum install yum-utils createrepo plugin-priorities -y yum install nginx -y 或者yum install httpd -y

yum repolist

建立rpm库存放目录: mkdir -p /home/wangyi163yum/CentOS764

开始同步下载rpm包: reposync --repoid=base -p /home/wangyi163yum/CentOS764 reposync --repoid=extras -p /home/wangyi163yum/CentOS764 reposync --repoid=updates -p /home/wangyi163yum/CentOS764

reposync --repoid=epel -p /home/wangyi163yum/CentOS764 reposync --repoid=epel-debuginfo -p /home/wangyi163yum/CentOS764

( 使用--repoid 选项会镜像相应程序包,并创建与--repoid=xx 指定值 同名的文件夹)

创建索引:( createrepo -po 源目录 索引元数据的输出位置目录) cd /home/wangyi163yum/CentOS764/base/Packages createrepo ./ cd /home/wangyi163yum/CentOS764/extras/Packages createrepo ./ cd /home/wangyi163yum/CentOS764/updates/Packages createrepo ./

cd /home/wangyi163yum/CentOS764/epel/Packages createrepo ./ cd /home/wangyi163yum/CentOS764/epel-debuginfo/Packages createrepo ./

设置http服务的根目录:

方案一:使用nginx提供http服务;

server { listen 80; server_name localhost; root /home/benddijingxiangyuan; #charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
}

启动Nginx服务

方案二:使用httpd(apache)提供http服务:

注释/etc/httpd/conf/httpd.conf文件中的 DocumentRoot "/var/www/html" 这行

修改 Listen 80 为 Listen 8080

将#ServerName www.example.com:80 的#删除,修改为ServerName localhost:8080

创建目录/var/log/httpd/bengdiyumyuam/ 在/var/log/httpd/bengdiyumyuam/中创建文件,yum_access_log和yum_error_log

在/etc/httpd/conf.d中创建文件Bendiyumyuan.conf,内容如下:

<VirtualHost 10.49.128.96:8080> ServerName localhost DocumentRoot "/home/wangyi163yum/CentOS764" CustomLog /var/log/httpd/bengdiyumyuam/yum_access_log combined ErrorLog /var/log/httpd/bengdiyumyuam/yum_error_log LogLevel warn

<Directory "/home/wangyi163yum/CentOS764"> Options Indexes AllowOverride None Require all granted </Directory>

</VirtualHost>

检查配置文件语法:

httpd -t

重启httpd服务,配置开机自启

systemctl restart httpd systemctl status httpd systemctl enable httpd

Linux01服务器上的/etc/yum.repos.d/下删除local-163.repo文件,创建local-new01.repo文件 内容如下:

[base] name=Base baseurl=file:///home/wangyi163yum/CentOS764/base/Packages enabled=1 gpgcheck=0

[updates] name=Updates baseurl=file:///home/wangyi163yum/CentOS764/extras/Packages enabled=1 gpgcheck=0

[extras] name=Extras baseurl=file:///home/wangyi163yum/CentOS764/updates/Packages enabled=1 gpgcheck=0

[epel] name=elel baseurl=file:///home/wangyi163yum/CentOS764localyum/epel/Packages enabled=1 gpgcheck=0

[epel-debuginfo] name=epel-debuginfo baseurl=file:///home/wangyi163yum/CentOS764/epel-debuginfo/Packages enabled=1 gpgcheck=0


在Linux01服务器上执行: yum clean all yum makecache yum repolist

断掉Linux01的内网

在Linux02服务器/etc/yum.repos.d/下创建local.repo文件,内容如下:

[base] name=Base baseurl=http://10.49.128.96:8080/base/Packages enabled=1 gpgcheck=0

[updates] name=Updates baseurl=http://10.49.128.96:8080/updates/Packages enabled=1 gpgcheck=0

[extras] name=Extras baseurl=http://10.49.128.96:8080/extras/Packages enabled=1 gpgcheck=0

[epel] name=elel baseurl=http://10.49.128.96:8080/epel/Packages enabled=1 gpgcheck=0

[epel-debuginfo] name=epel-debuginfo baseurl=http://10.49.128.96:8080/epel-debuginfo/Packages enabled=1 gpgcheck=0

在Linux02服务器上执行: yum clean all yum makecache yum repolist