Возможный дубликат:
Как использовать DNS для перенаправления домена на определенный порт на моем сервере
Прямо сейчас у меня есть запись DNS CNAME, которая делает ftp.angryoctopus.net
псевдоним для фактического URL-домена FTP, который angryoctopus.net:65021
Цель состоит в том, чтобы клиент мог печатать ftp://ftp.angryoctopus.net/
в адресной строке браузера и перенаправляться на FTP-сайт Angry Octopus на моем сервере, который размещен на порту 65021.
Конечно, имя хоста не разрешится.
Можно ли каким-то образом добиться такого псевдонима, или я просто бью дохлую лошадь? Это напоминает мне DynDNS, который я использовал несколько лет назад для чего-то другого. Каким образом DynDNS подделывает порты, и могу ли я имитировать его, чтобы это работало?
Я должен добавить, что это работает на автономном сервере, на котором размещено несколько FTP-сайтов. Я использую Windows Server 2003 с пакетом обновления 2 для DNS и IIS 6.0.
Это невозможно сделать для всех протоколов. Единственная причина, по которой это можно сделать для HTTP, заключается в том, что Location
Заголовок ответа может использоваться для направления HTTP-клиента на произвольный URL-адрес. Большинство протоколов не имеют такой возможности перенаправления, и вместо этого необходимо использовать что-то вроде SNAT.
DNS не подходит для этого. DNS связывает имена с IP-адресами. Вы используете DNS, чтобы сообщить Интернету, что angryoctopus.net находится на 1.2.3.4, а ftp.angryoctopus.net находится в том же месте по адресу angryoctopus.net. DNS не заботится о портах.
Это можно сделать с помощью Трансляция сетевых адресов (NAT). Установите брандмауэр между Интернетом и ftp-сервером, который может транслировать стандартный ftp-трафик на нужные вам порты. Механика того, как это делается, различается в зависимости от брандмауэра. Если у вас есть брандмауэр, он вполне может это сделать. Если нет, есть сотни хороших вариантов .. Мне нравится Astaro.