Возможный дубликат:
Как использовать 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 ** данные вашего исходного запроса **