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

Перенаправление на порт на основе запрошенного (под) домена (1 IP, запрос не HTTP)

Возможный дубликат:
Как использовать DNS для перенаправления домена на определенный порт на моем сервере

Итак, я пытался выяснить, как перенаправить поддомен на определенный порт.

Предположим, приложение всегда будет запрашивать порт по умолчанию, и этот порт по умолчанию, скажем, 30000. У нас есть sub1.domain.com, sub2.domain.com и sub3.domain.com, все они указывают на один и тот же IP-адрес. Я хочу перенаправить запрос на sub1.domain.com:30000 на порт 31000, sub2 на 32000 и sub3 на 33000. Все они на одном IP.

Я пробовал socat / netcat и iptables, но все они разрешают домены по IP-адресу, который в данном случае одинаков, поэтому перенаправление нарушается.

Любые идеи? Это вообще возможно? У меня есть некоторые знания в области сетевых технологий и немного понимания слоев ... Проблема здесь в межуровневом уровне, поэтому я не уверен, что есть даже способ сделать это, если я не напишу сервер, который прослушивает этот порт и перенаправляет на основе запрошенного домена ...: \

Заранее спасибо. :)

Я не думаю, что iptables может сделать такой трюк. Это лучше подходит для работы с IP-адресами, а не с доменными именами.

Для HTTP-трафика вы можете сделать это с помощью прокси-сервера (или балансировщика нагрузки HTTP), который получит ваш запрос и перенаправит его в соответствии с определенными правилами.

Если это не HTTP-трафик, мы не сможем вам помочь, если вы не укажете более конкретно. Однако основная идея может быть такой же, учитывая, что ваш протокол ведет себя аналогично HTTP. Одно важное замечание, упомянутое @Yvette, которое добавляет информацию о хосте (например, Host заголовок в HTTP). В противном случае вы не сможете распознать запрошенное имя субдомена.

Вы можете попробовать добавить заголовок, определяющий, какой хост запрашивать в ваших запросах.

Это похоже на следующий запрос.

HOST: xxoo1 ** данные вашего исходного запроса **