LINUX.ORG.RU
ФорумAdmin

Глюк с прозрачным прокси


0

0

Стоит iptables и squid. Если работать не как прозрачный прокси (без редиректа 80 на 3128), а в IE прописывать в ручную прокси и порт, то все нормально, инет идет. А если на iptables включить редирект портов в prerouting то squid начинает обрезать адреса. Выглядит в логах это так: вместо
GET http://www.domaim.com/rus/index.html он запрашивает просто
GET /rus/index.html и соотвественно браузер ругается на неправильный адрес.
В чем тут может быть траблы. Может в iptables надо помимо preroutingа еще что-то дописывать?

anonymous

> В чем тут может быть траблы.
Траблы могут быть в том, что сам squid не настроен на прозрачный режим. Для этого в конфиге должно быть примерно следующее:
httpd_accel_host virtual
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

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

Т.е. мы включаем режим акселератора? А что бы просто кешировал интернет и был прозрачным так нельзя сделать? У меня нет своего вебсервера и мне не нужен режим акселератора.

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

> У меня нет своего вебсервера и мне не нужен режим акселератора.
:-))))))))))) Вы не поняли, здесь этот режим используется для акселерации всех web-серверов internet, что другими словами и создает из squid-а прозрачного посредника. По-другому можно сделать, но только ЗАЧЕМ ???
Если вы все таки упорно не хотите добавить эти 3 строчки, то есть вариант N2. Вся разница при работе в обычном и прозрачном режимах в том, что в обычном режиме browser знает, что он общается с proxy, поэтому шлет http запросы понятные proxy, а в прозрачном - нет, поэтому посылает http запросы понятные web-серверу. Эти запросы похожи между собой, но в них все таки есть отличие, поэтому squid-у нужен посредник для трансляции запросов в понятную форму. Этим посредником может быть либо режим акселерации, либо программа tproxy. При использовании этой программы все запросы от browser-ов нужно перенаправлять на нее, а ей в свою очередь рассказать где находится squid. Я когда-то так делал, все работало, вот только мне не нравилось, что к squid-у все запросы приходили от этой программы, т.е. от localhost, поэтому в access.log вместо действительных IP клиентов был только один - 127.0.0.1.

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

> А что бы просто кешировал интернет и был прозрачным
Вот как раз после добавления приведенных выше 3-х строчек он и становится прозрачным (httpd_accel_host virtual, httpd_accel_uses_host_header on), но при этом не переставая выполнять функции обычного кеширующего прокси (httpd_accel_with_proxy on). Т.е. одновременно работает и в том, и в другом режиме.

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

Строки дописал, все работает, спасибо :)) Кроме одного, фтп перестал открывалься. Я переправлял только 80 порт, дописал httpd_accel_port 80 но все равно, не окрывается. IE сообщает
illegal PORT range rejected
invalid adress rejected

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