у меня есть CentOS Linux release 7.4.1708
Дистрибутив Linux.
Мне нужно установить какой-то пакет. Первая команда, которую нужно выполнить, - добавить репоисторию:
ням установить https://extras.getpagespeed.com/release-el7-latest.rpm
Когда я запускаю его, команда зависает и через некоторое время выводит ошибки. Полный вывод из cli ниже:
# yum install https://extras.getpagespeed.com/release-el7-latest.rpm
Не могу открыть:
https://extras.getpagespeed.com/release-el7-latest.rpm. Пропуская.
Ошибка: нечего делать
P.S. Я пытаюсь установить Модуль Page Speed Nginx
Похоже, мой сервер не может загрузить файл rpm:
Сервер подключен к Интернету, wget
и ping
команды работают нормально на некоторых случайных ресурсах.
Я скачал файл https://extras.getpagespeed.com/release-el7-latest.rpm на мою рабочую станцию через браузер и загрузил его в папку домашнего сервера.
Затем я зашел в домашнюю папку сервера и выполнил команду rpm -Uvh release-el7-latest.rpm
.
#rpm -Uvh release-el7-latest.rpm
предупреждение: release-el7-latest.rpm: Заголовок V4 Подпись RSA / SHA1, идентификатор ключа 222b0e83: NOKEY
Подготовка ... Обновление / установка ...
1: getpagespeed-extras-7-3.el7.gps
Затем я поискал свою посылку через yum search
команда. Это дает мне ошибку, некоторые части огромного вывода приведены ниже.
yum search nginx-модуль
дополнительные услуги | 3.4 кБ 00:00:00
https://extras.getpagespeed.com/redhat/7/noarch/repodata/repomd.xml:
[Errno 14] curl # 7 - «Не удалось подключиться к 2606: 4700: 30 :: 6812: 31e3:
Сеть недоступна "Пробуем другое зеркало.
https://extras.getpagespeed.com/redhat/7/noarch/repodata/repomd.xml:
[Errno 14] curl # 56 - "Обратный вызов прерван" Пробуем другое зеркало.
Разобрался в чем проблемы с IPv6 и добавил ip_resolve=4
установка на /etc/yum.conf
файл.
Изменены ошибки:
yum search nginx-модуль
дополнительные услуги | 3.4 кБ 00:00:00
https://extras.getpagespeed.com/redhat/7/noarch/repodata/repomd.xml:
[Errno 14] curl # 7 - «Не удалось подключиться к extras.getpagespeed.com:443; сейчас выполняется операция»
Могут ли проблемы быть связаны с проблемами подключения https?
Ошибка в Update 2
связано с файлом https://extras.getpagespeed.com/redhat/7/noarch/repodata/repomd.xml, его нельзя скачать.
Прямая загрузка из cli тоже не имеет успеха:
# curl --verbose https://extras.getpagespeed.com/redhat/7/noarch/repodata/repomd.xml
* О подключении () к порту 443 extras.getpagespeed.com (# 0)
* Пробуем 104.18.48.227 ...
* Время соединения истекло
* Пробуем 104.18.49.227 ...
* После 86358 мс времени соединения двигайтесь дальше!
* Пробуем 2606: 4700: 30 :: 6812: 31e3 ...
* Не удалось подключиться к 2606: 4700: 30 :: 6812: 31e3: Сеть недоступна
* Пробуем 2606: 4700: 30 :: 6812: 30e3 ...
* Не удалось подключиться к 2606: 4700: 30 :: 6812: 30e3: Сеть недоступна
* Не удалось подключиться к extras.getpagespeed.com:443; сеть недоступна
* Закрытие соединения 0
curl: (7) Не удалось подключиться к 2606: 4700: 30 :: 6812: 31e3: Сеть недоступна
Я думал, что это проблема https на сервере, но curl https://www.google.com
работает отлично. Файл можно загрузить через браузер с рабочей станции.
Правила Iptables приведены ниже:
# iptables-save
*фильтр
: ВВОД ПРИНЯТЬ [71: 19593]
: FORWARD ACCEPT [0: 0]
: OUTPUT ACCEPT [81: 64337]
: MYSQL - [0: 0]
: MYSQL_WHITELIST - [0: 0]
-A ВХОД -p tcp -m tcp --dport 3306 -j MYSQL
-A MYSQL -j MYSQL_WHITELIST
-A MYSQL -j ПРИНЯТЬ
-A MYSQL_WHITELIST -s 10.100.10.6/32 -j ВОЗВРАТ
-A MYSQL_WHITELIST -j DROP
COMMIT
Вывод Traceroute:
# traceroute extras.getpagespeed.com
traceroute на extras.getpagespeed.com (104.18.48.227), не более 30 переходов, 60 байтовых пакетов
1 * * *
2 * * *
3 * * *
4 * * *
...
30 * * *
Похоже, время ожидания вашего веб-запроса истекает при попытке доступа к extras.getpagespeed.com через порт 443 для HTTPS. Этот хост фактически балансирует нагрузку с использованием DNS между парой разных IP-адресов, поэтому он пробует оба, а затем пытается использовать ipv6 (который недоступен, потому что у вас, вероятно, нет маршрута по умолчанию для ipv6, настроенного в вашей таблице маршрутизации). Вы можете проверить это, открыв TCP-соединение на 443 с помощью telnet:
telnet extras.getpagespeed.com 443
если это время истекло, вероятно, у вас есть правило брандмауэра, блокирующее ваши исходящие веб-запросы на IP-адреса, которые вы разрешаете для extras.getpagespeed.com
Вы можете проверить это, сначала проверив настройки брандмауэра на своем хосте:
iptables-save
для iptables. Если вы используете firewalld, вы также можете использовать:
systemctl status firewalld
получить состояние, а затем
firewall-cmd --list-all
если нет активного правила, блокирующего исходящие TCP-соединения с портами назначения с 443 по 104.18.49.227 или 104.18.48.227, но ваш telnet все еще истекает, следующим шагом будет выяснить, какой переход в вашей сети фильтрует HTTPS-запросы к тем конкретные IP-адреса. Вы должны легко найти следующий переход в своей сети, используя:
traceroute extras.getpagespeed.com
Я догадываюсь, что ваш маршрутизатор, брандмауэр (ACL могут быть применены из брандмауэра в вашем маршрутизаторе, который выполняет двойную функцию, или выделенного брандмауэра на границе вашей сети, в зависимости от топологии вашей сети) имеет правило, которое перехватывает ваш HTTPS запрос и сброс пакетов.
Я не думаю, что это проблема маршрутизации, потому что мы A- можем легко достичь резолверов и разрешить extras.getpagespeed.com, просто отлично, и B- мы можем получить трафик порта 80 в Google, поэтому ваш маршрут по умолчанию работает.
Восстановление DNS вроде работает. Вы уже изменили конфигурацию yum для использования IPv4.
Затем проверьте брандмауэр (сделайте акцент на ВЫХОДНОЕ / исходящее соединение). Вы можете попробовать одно из следующего:
iptables-save
iptables -S ; iptables -t nat -S
Вы упомянули, что на рабочей станции он работает. Как связаны сервер и рабочая станция? Он находится за тем же подключением? Вы используете VLAN? Есть ли ACL на маршрутизаторе / брандмауэре, обрабатывающем соединение (и / или маршрутизацию VLAN)? GW по умолчанию такой же? Где завершается связь (traceroute) - хотя бы то, что показывает ICMP ...
ip route show
ip address show
traceroute extras.getpagespeed.com
на всякий случай ... Нет ли на сервере / рабочей станции активного сеанса VPN, чтобы он мог повлиять на результат (это было бы видно в выводе предыдущих команд)?
Я пытался связаться с ним по http (порт 80), и там видно хотя бы перенаправление для схемы https. Попытайтесь связаться с ним через порт 80. Я бы не помог в конце, но могу помочь устранить неполадки, если это связано конкретно с портом 443.
$ curl -4iv http://extras.getpagespeed.com/release-el7-latest.rpm >/dev/null
* About to connect() to extras.getpagespeed.com port 80 (#0)
* Trying 104.18.49.227...
* Connected to extras.getpagespeed.com (104.18.49.227) port 80 (#0)
> GET /release-el7-latest.rpm HTTP/1.1
> User-Agent: curl/7.29.0
> Host: extras.getpagespeed.com
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Wed, 12 Dec 2018 00:42:10 GMT
< Content-Length: 0
< Connection: keep-alive
< Set-Cookie: __cfduid=d1db394ac95ecd334f0739681096b64ba1544575330; expires=Thu, 12-Dec-19 00:42:10 GMT; path=/; domain=.getpagespeed.com; HttpOnly
< X-Varnish: 1149403
< Location: https://extras.getpagespeed.com/release-el7-latest.rpm
< CF-Cache-Status: MISS
< Server: cloudflare
< CF-RAY: 487c264520a7c274-FRA
<
* Connection #0 to host extras.getpagespeed.com left intact
Примечание: поскольку он расположен в CloudFlare, могут быть некоторые ограничения на подключение в случае, если оно распознается как потенциальная атака - неправильная связь, скорость запросов и т. Д.