Назад | Перейти на главную страницу

Подключиться к мыльному сервису через прокси на разных портах

Мне нужно подключиться с сервера к серверу веб-службы, чтобы использовать SOAP но из-за действующих ограничений я не могу подключиться напрямую.

Тем не менее, они предоставили мне прокси-сервер, который может, но он работает в службе на другом порту:

[webserver] ----- [proxy:48650] ----- [webservice:8601]

Примечание (если это еще не ясно): я упростил имена хостов как их очень длинные корпоративные вещи и без необходимости усложнил бы вопрос.

Большая проблема в том, что WSDL веб-сервиса содержит много рефералов с абсолютным URL-адресом (поэтому webservice:8601). Включаемые элементы идут более чем на 1 уровень (так что загрузка WSDL и выполнение поиска / замены не продвинут меня дальше).

Я добавил правило к /etc/hosts на веб-сервере:

127.0.0.1 webservice

Основная идея состоит в том, чтобы каким-то образом проксировать порт 8601 на localhost и заставить мыльный клиент думать, что он действительно подключается к веб-сервису (через прокси).

An SSH tunnel К сожалению, прокси-сервер не работает по тем же причинам. Я не могу установить SSH-соединение с прокси.

iptables есть возможность, но я могу найти набор правил, который берет порт на localhost (8601) и перенаправляет его на внешний хост / другой порт (прокси: 48650). Большинство из них предназначены для входящего трафика.

Я тратил на это много времени и уже отчаялся. Есть ли здесь кто-нибудь, кто может дать мне несколько советов / решений?

Довольно, пожалуйста?

Удалите запись из файла hosts и используйте iptables для DNAT трафика.

На вашем локальном компьютере:

iptables -t nat -A OUTPUT -d webservice -p tcp --dport 8601 -j DNAT --to proxy:48650

ИЛИ на промежуточном маршрутизаторе вам понадобится PREROUTING цепь вместо OUTPUT цепочка:

iptables -t nat -A PREROUTING -d webservice -p tcp --dport 8601 -j DNAT --to proxy:48650

НОТА: Вы должны использовать IP-адрес прокси в --to аргумент; iptables не выполняет там разрешение имен. Вы можете использовать хостинг webservice в качестве аргумента -d хотя.