Настройка обновления пакетов CentOS через PROXY-сервер на базе ОС Windows

CentOS находится в изолированной сети и непосредственный доступ к сети Интернет административно запрещён или отсутствует. Подключение можно организовать через промежуточных хост, выступающий в роли PROXY-сервера или посредника. Т.е весть трафик от CentOS пойдёт через PROXY-серверу во внешний мир.

Шаг 1. На CentOS настраиваем сетевой интерфейс, к примеру:

centos$ cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet 
BOOTPROTO=none 
DEFROUTE=yes 
IPV4_FAILURE_FATAL=no 
IPV6INIT=no 
IPV6_AUTOCONF="yes" 
IPV6_DEFROUTE="yes" 
IPV6_PEERDNS="yes" 
IPV6_PEERROUTES="yes" 
IPV6_FAILURE_FATAL="no" 
IPV6_ADDR_GEN_MODE="stable-privacy" 
NAME=ens160 
UUID=81ce3e58-9762-46fc-a9f7-6c34e4bb4bd7 
DEVICE=ens160 
ONBOOT=yes 
PROXY_METHOD=none 
BROWSER_ONLY=no 
IPADDR=10.0.1.225 
PREFIX=24 
DNS1=192.168.140.39 
DNS2=192.168.140.34

Шаг 2. Проверим, что нет маршрута по умолчанию.

centos$ netstat -rn 
Kernel IP routing table 
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface 
10.0.1.0        0.0.0.0         255.255.255.0   U         0 0          0 ens160

Шаг 3. Убедимся в отсутствии сетевой связанности с внешним миром.

centos$ ping lenta.ru 
ping: lenta.ru: Name or service not known

Шаг 4. В файл /etc/yum.conf добавляем строку: proxy=http://10.0.1.10:3128, где 10.0.1.10 IPv4-адрес PROXY-сервера

centos$ cat /etc/yum.conf
[main] 
cachedir=/var/cache/yum/$basearch/$releasever 
keepcache=0 
debuglevel=2 
logfile=/var/log/yum.log 
exactarch=1 
obsoletes=1 
gpgcheck=1 
plugins=1 
installonly_limit=5 
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum 
distroverpkg=centos-release 
proxy=http://10.0.1.10:3128 
#proxy_username=rhproxy 
#proxy_password=D5znQs4P8Rmtw 
#  This is the default, if you make this bigger yum won't see if the metadata 
# is newer on the remote and so you'll "gain" the bandwidth of not having to 
# download the new metadata and "pay" for it by yum not having correct 
# information. 
#  It is esp. important, to have correct metadata, for distributions like 
# Fedora which don't keep old packages around. If you don't like this checking 
# interupting your command line usage, it's much better to have something 
# manually check the metadata once an hour (yum-updatesd will do this). 
# metadata_expire=90m 

# PUT YOUR REPOS HERE OR IN separate files named file.repo 
# in /etc/yum.repos.d

Шаг 5. На PROXY-сервере создать папку c:/3proxy и скопировать в неё два файла 3proxy.exe и 3proxy.cfg

Шаг 6. В командной строке перейти в папку c:/3proxy

windows> cd c:/3proxy

Шаг 7. Запустить PROXY-сервер из директории c:/3proxy

windows> 3proxy.exe 3proxy.cfg

При запуске, ОС Windows может спросить разрешения на сетевые подключения для данного приложения — соглашаемся. PROXY-сервер открывает 0.0.0.0:3128 сокет и ждёт на него соединений от CentOS.

Шаг 8. На CentOS выполняем команду по обновлению пакетов. При необходимости, можно добавить новые репозитории согласно документации на пакетный менеджер yum.

centos# yum update 
Loaded plugins: fastestmirror 
base                                                                                                                                                                          | 3.6 kB  00:00:00      
epel/x86_64/metalink                                                                                                                                                          |  31 kB  00:00:00      
^Chttps://mirror.yandex.ru/epel/7/x86_64/repodata/repomd.xml: [Errno 14] curl#56 - "Network error recv()" 
Trying other mirror. 
[root@localhost ~]# yum clean 
Loaded plugins: fastestmirror 
Error: clean requires an option: headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all 
[root@localhost ~]# yum update 
Loaded plugins: fastestmirror 
epel/x86_64/metalink                                                                                                                                                          |  31 kB  00:00:00      
epel                                                                                                                                                                          | 5.4 kB  00:00:00      
extras                                                                                                                                                                        | 3.4 kB  00:00:00      
updates                                                                                                                                                                       | 3.4 kB  00:00:00      
(1/5): epel/x86_64/group_gz                                                                                                                                                   |  88 kB  00:00:00      
(2/5): epel/x86_64/updateinfo                                                                                                                                                 | 1.0 MB  00:00:00      
(3/5): extras/7/x86_64/primary_db                                                                                                                                             | 215 kB  00:00:00      
(4/5): epel/x86_64/primary_db                                                                                                                                                 | 6.8 MB  00:00:00      
(5/5): updates/7/x86_64/primary_db
Total download size: 350 M 
Is this ok [y/d/N]: y

Шаг 9. Для завершения работы необходимо выключить PROXX-сервер 3proxy, нажав сочетание клавиш CTRL+C в командной строке

Полезные ссылки:

This entry was posted in CentOS, Net. Bookmark the permalink.

Leave a Reply