О помощи вопрошаю
Исходные данные
хост А хочет подключиться к хосту Б на порт 5222/5223 через squid с поддержкой метода CONNECT только на 443 порт
При этом есть хост В (ВЭэ, а не БЭ) в интернете, к которому есть полный доступ.
Вроде, казалось бы, задача тривиальная. джаббер клиент соединяется с проксей и говорит, мол, конекти ка меня на порт 443 на хост В (ВЭэ) - ну потому что сквид на проксе только на 443 порт и разрешает - а уже хост ВЭ после iptables -t nat -I PREROUTING -p tcp --dport 443 -s СКВИД -j DNAT --to-destination Б:5222 (или Б:5223) с соответсвующей записью в FORWARD все прокинет
после попытки соединиться видиться следующее в iptables -L FORWARD -v -n --line-numbers
3 8 432 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport ports 5222:5223 LOG flags 0 level 4 4 8 432 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport ports 5222:5223
т.е. 8 пакетов прошло. лог пишет что пакеты действительно прошли. IN=eth0 OUT=eth0 SRC=ПРОКСИ DST=ХОСТ Б LEN=48 TOS=0x00 PREC=0x00 TTL=55 ID=19420 DF PROTO=TCP SPT=60262 DPT=5222 WINDOW=65535 RES=0x00 SYN URGP=0
Около минуты ожидания приводят к сообщению джаббер клиента вот о чем:
Не удалось установить соединение с сервером: Ошибка соединения с HTTP-прокси 503
При всем этом
nc 193.138.244.40 5222
d <?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='none' from='jabber.com.ua' version='1.0'><stream:error><xml-not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error></stream:stream>
А теперь внимание вопрос: что я делаю не так?