Описание тега culture
То, что я пытаюсь добиться
У меня в CentOS (6.8) коробка 1.1.1.1 и удаленный прокси-сервера squid 2.2.2.2
Я пытаюсь эмулировать результаты завиток http://google.com -х 2.2.2.2:3128
с приложениями, которые не имеют HTTP-прокси опции, и не уважать при
переменной (например, Телеграф)
То, что я до сих пор пробовал
Я пробовал настройка правил iptables перенаправлять трафик на прокси:
в iptables -Т физ -это следующее -Я как eth0 ! -с 2.2.2.2 -п протокол tcp --dport 80 -j и ДНАТ-на 2.2.2.2:3128
в iptables -Т физ-а POSTROUTING -O в интерфейсе eth0 -с 1.1.1.1 -2.2.2.2 ди-джей СНАТ --до 1.1.1.1
в iptables -это вперед-s 1.1.1.1 -2.2.2.2 д-Я через eth0 -о интерфейсе eth0 -п протокол tcp --dport 3128 -J будет принимать
Потом я обнаружил, что ДНАТ не работает должным образом, если один посылает трафик на удаленный ящик, как вернуть трафик не правильно маршрут. Исходя из этого, я переместил приложение в контейнере Docker (172.17.0.9) на поле CentOS и планировали держать в iptables конфигурации на хост, вносящий изменения в iptables в конфиге так:
в iptables -Т физ -это следующее -Я как eth0 ! -с 2.2.2.2 -п протокол tcp --dport 80 -j и ДНАТ-на 2.2.2.2:3128
в iptables -Т физ-а POSTROUTING -O в интерфейсе eth0 -с 172.17.0.0/16 -д 2.2.2.2 -Джей СНАТ --до 1.1.1.1
в iptables -вперед -с 172.17.0.0/16 -д 2.2.2.2 -я из eth0 -о интерфейсе eth0 -п протокол tcp --dport 3128 -J может принимать
Я также попробовал следующий набор правил:
в iptables -Т физ -это следующее -Я как eth0 -с 172.17.0.0/16 -П по tcp --dport 80 -j и ДНАТ --в пунктом 2.2.2.2:3128
в iptables -Т физ-а POSTROUTING -O в интерфейсе eth0 -д 2.2.2.2/32 -й маскарад
В результате обоих этих правил было то, что HTTP-трафик был по-прежнему пытаются идти прямо к месту назначения, а не через прокси.
[корень@хост ~]# тсрйитр -ННН хозяина 216.58.201.35
тсрйитр: подробный вывод подавляется, используйте -V или -VV для полного декодирования протоколов
слушать на eth0, соединени-тип EN10MB (локальных сетей), захват размер 65535 байт
15:26:24.536668 ИС 1.1.1.1.38566 > 216.58.201.35.80: флаги [с], сл 3885286223, выиграть 14600, параметры [МСС 1460,sackOK,TS и Валь 2161333858 ККМ 0,на nop,wscale 9], Длина 0
Шлюз по умолчанию в контейнере Docker-это правильно установить на хост, IP-пересылки включена на хозяина.
[корень@докер /]# IP-маршрута
по умолчанию через 172.17.0.1 в dev eth0 в
[корень@хост ~]# sysctl-переменной нет.протокол IPv4.ip_forward
чистая.протокол IPv4.ip_forward = 1
Я упускаю что-то очевидное?