На FreeBSD 7.0 стоит Squid 2.6.20 и ipfw.В squid.conf есть (192.168.2.61 - адрес прокси в локалке):
*****
http_port 192.168.2.61:3128 transparent
#http_port 3128 transparent #по сути, аналогично строке выше
*****
В ipfw.sh так (естественно, укорочено):
*****
$cmd 0200 divert natd ip from any to any in via $out_if
...
# как только я не извращался...
#$cmd 0202 fwd 127.0.0.1,3128 tcp from $user_IP to any 80 via $out_if
#$cmd 0202 fwd 127.0.0.1,3128 tcp from $user_IP to any 80 recv $local_if
$cmd 0202 fwd 127.0.0.1,3128 tcp from $user_IP to any 80
...
*****
При попытке открыть сайт без указания прокси получаю в ответ (в броузере):
*****
ОШИБКА
Запрошенный URL не может быть доставлен.
Во время обработки запроса:
GET /?clid=139085 HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 6.1; U; Yandex Browser; ru)
Host: www.yandex.ru
...
Произошла следующая ошибка:
Неверный запрос.
Некоторые аспекты HTTP запроса неправильны. Возможные проблемы:
Отсутствует либо неизвестен метод запроса (GET, POST)
Отсутствует URL
Отсутствует HTTP идентификатор (HTTP/1.0)
Запрос слишком велик
Не указан Content-Length для запросов POST или PUT
Недопустимый символ в имени сервера; подчёркивания недопустимы.
_____
Generated Thu, 03 Feb 2011 07:48:00 GMT by InternetPC (squid/2.6.STABLE20)
*****
Т.е. судя по ответу, мои запросы к проксе доходят (т.е. форвардинг работает, Squid получает запрос). Но вот почему вместо сайта я получаю ошибку - не ясно. Если проксю указать вручную, все работает.
ВОПРОС: че я делаю не так?