LINUX.ORG.RU

Ошибка Squid ERR_CANNOT_FORWARD

 , ,


0

1

Я вообще новичек в Squid. Настроил его на локалхосте чтоб работал с корпоративным прокси и небыло петушни с паролями в env.

Однако есть проблема, после включения машины squid отдает страничку ошибки с HTTP кодом 500 Internal Server Error и HTTP заголовком

X-Squid-Error: ERR_CANNOT_FORWARD

В официальной документации есть небольшая статья с упоминанием ошибки: https://wiki.squid-cache.org/KnowledgeBase/FailedToSelectSource

У меня в конфигурации вот так:

# godirect — acl для интранета
always_direct allow godirect
always_direct deny all

# потом ниже

always_direct deny all
never_direct allow all

Проблема магически пропадает после рестарта squid

sudo systemctl restart squid

Версия squid:

$ apt policy squid
squid:
  Installed: 3.5.23-5ubuntu1.1
  Candidate: 3.5.23-5ubuntu1.1
  Version table:
 *** 3.5.23-5ubuntu1.1 500
        500 http://pl.archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu artful-security/main amd64 Packages
        100 /var/lib/dpkg/status
     3.5.23-5ubuntu1 500
        500 http://pl.archive.ubuntu.com/ubuntu artful/main amd64 Packages

Помогите разобраться почему squid так странно себя ведет

Ответ на: комментарий от aidaho

В access.log имеется вот такое:

1518190105.148      0 127.0.0.1 TCP_MISS/500 4504 GET http://apt.llvm.org/artful/dists/llvm-toolchain-artful-4.0/InRelease - HIER_NONE/- text/html
1518190105.149      0 127.0.0.1 TCP_MISS/500 4504 GET http://apt.llvm.org/artful/dists/llvm-toolchain-artful-5.0/InRelease - HIER_NONE/- text/html
1518190105.150      0 127.0.0.1 TCP_MISS/500 4495 GET http://security.ubuntu.com/ubuntu/dists/artful-security/InRelease - HIER_NONE/- text/html
1518190105.153      0 127.0.0.1 TCP_MISS/500 4474 GET http://pl.archive.ubuntu.com/ubuntu/dists/artful/InRelease - HIER_NONE/- text/html

(часть выхлопа после запуска apt update)

KennyMinigun ★★★★★
() автор топика
Ответ на: комментарий от KennyMinigun

HIER_NONE через 0 милисекунд. Значит в сеть не ходил вообще.

Нужно думать почему. Возможно resolv.conf ещё не был сгенерирован во время запуска, просто не знает, куда за этим идти.

В systemd-параллельщине не разбираюсь, стоит попробовать переставить его в самый конец процесса загрузки.

aidaho ★★★★★
()
Ответ на: комментарий от KennyMinigun

Поскольку после рестарта squid проблема исчезает, что-то мне подсказывает, что порядок интциализации чего-то (network?) и squid есть неправильный.

Т.е. предположение таково, что сразу после старта системы squid подключается к нерабочему сокету(?) и потому выглядит как будто есть некие проблемы с сетью.

Для ситуации уточню, что в данном случае squid находится в виртуалке (VirtualBox) с одним сетевым адаптером «attached to NAT». На адаптере выполнены следующие манипуляции:

VBoxManage modifyvm «$VM_NAME» --natdnsproxy1 on
VBoxManage modifyvm «$VM_NAME» --natdnshostresolver1 on

(взято отсюда: https://www.virtualbox.org/manual/ch09.html#nat-adv-dns)

KennyMinigun ★★★★★
() автор топика
Ответ на: комментарий от aidaho

Нужно думать почему. Возможно resolv.conf ещё не был сгенерирован во время запуска, просто не знает, куда за этим идти.

В systemd-параллельщине не разбираюсь, стоит попробовать переставить его в самый конец процесса загрузки.

О, именно то, о чем я думал

KennyMinigun ★★★★★
() автор топика
Ответ на: комментарий от aidaho

Кстати, вот что нашел в /etc/resolvconf/update-libc.d/squid

#!/bin/sh

PATH="/usr/sbin:/usr/bin:/sbin:/bin"

# Make squid aware of changes to resolv.conf
# Avoid reload before /usr is mounted
if [ -d /usr/sbin ] ; then
   invoke-rc.d squid reload || true
fi

Т.е. должно работать вне зависимости от порядка запуска.

KennyMinigun ★★★★★
() автор топика
Ответ на: комментарий от KennyMinigun

А это точно выполняется?

Если отребутить VM и на отлынивающем сквиде скомандовать reload, что получается?

aidaho ★★★★★
()
Ответ на: комментарий от aidaho

Ха, как по закону подлости не работает (в смыcле squid все равно возвращает HTTP/500), а вот через systemd норм:

systemctl reload squid

Наверное надо написать баг на launchpad

KennyMinigun ★★★★★
() автор топика
Ответ на: комментарий от KennyMinigun

В debian та же ерунда: внесли systemd и назначили за главного.
Если даже его вынести, то потом оказывается что, к примеру, хуки pm-utils то не работают.

А зачем их вызывать откуда-либо ещё, если теперь их можно вызвать из systemd?

aidaho ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.