OS X Server DNS, в локальной сети перенаправляет внешний IP-адрес на внутренний IP-адрес

Я хочу, чтобы при попытке зайти на мой сервер по адресу 94.xx.xx.xx он автоматически перенаправлял меня на внутренний адрес 192.xx.xx.xx из локальной сети. Можно ли это сделать с помощью OS X DNS, и если да, то как?

Вы заглянули ssh -l?
Я не упомянул об этом, но на самом деле это для некоторых FTP-сервисов и общих ресурсов, так что я думаю, что это не может мне помочь?
Является ли адрес 94.xx.xx.xx внешним адресом в локальной сети? Например, это тот же сервер, к которому вы пытаетесь подключиться, только по другому IP-адресу? Наконец, вы обращаетесь к нему по DNS-имени или по числовому адресу?
@samh 94.xx.xx.xx — это внешний адрес, и да, тот же сервер с другим IP-адресом. И я только когда-либо пытался получить доступ численно с IP-адресами.
Пометил вопрос как неясный! В вашем вопросе отсутствуют некоторые предварительные исследования того, как работают IP-сети и DNS и как они связаны между собой.

Ответы (2)

Нет, это не может быть сделано DNS OS X или любым DNS, потому что вы не взаимодействуете с DNS в своей ситуации (согласно вашему комментарию). Служба доменных имен преобразует доменные имена в IP-адреса, и вы не используете доменные имена для доступа к серверу.

Однако если вы настроили DNS и использовали одно имя во внешнем DNS и одно и то же имя во внутреннем DNS, одно и то же имя может разрешаться в разные адреса.

  • name.pretendco.com 94.2.3.4
  • name.pretendco.com 192.168.3.4

Неважно, совпадают ли числа, но вам может быть проще сопоставить вещи или проверить правильность серверов. Настройка внутреннего DNS стоит затраченных усилий, если у вас несколько десятков хостов — в противном случае проще перегрузить локальный файл hosts на машинах, которым нужно разрешать имя «внутри», а не снаружи.

(Если вы использовали полные доменные имена, есть способы сделать это… Я не знаю, насколько они «приняты», и я недостаточно эксперт, чтобы рассказать вам обо всех возможных побочных эффектах, но это может сработать. )

Насколько я понимаю, проблема, с которой вы столкнулись, связана с маршрутизацией. Ваш общедоступный IP-адрес находится на маршрутизаторе, который не является вашим сервером. Ваш сервер использует переадресацию портов на маршрутизаторе для получения трафика. Вы хотите иметь возможность подключаться к общедоступному IP-адресу, но из локальной сети. Вам необходимо включить/настроить Hairpin NAT на вашем маршрутизаторе, если он поддерживается. Я не могу придумать никаких других решений.

Простите за большое редактирование — я хотел объяснить, как можно использовать DNS для достижения разрешения двойного IP-адреса, а также упомянуть локальное редактирование файла hosts. Не стесняйтесь отменить мое редактирование или существенно изменить его, если хотите.
@bmike Я сомневаюсь, что установка с разделенным мозгом вообще возможна в случае спрашивающего.
@klanomath, если у них должен быть IP-адрес, то вы правы. Никакой DNS не перезапишет IP.
Вот почему я не пошел туда после его комментария к исходному сообщению.
На самом деле я смогу использовать символьные адреса, так что я правильно понял, тогда я смогу это настроить? Мой маршрутизатор, к сожалению, не поддерживает loopback, что и привело меня сюда в первую очередь. Однако у меня есть только один внутренний DNS-сервер, доступный для настройки, так что я буду получать только файлы хоста, о которых вы говорите, верно? Извините, если мой вопрос был неясен с точки зрения моих требований.

Один из способов решить эту проблему — добавить запись DNS для этого IP-адреса и использовать имя вместо самого IP-адреса. Поскольку вы подключаетесь через IP, вы никогда не используете DNS.

Однако это работает только в том случае, если откуда бы вы ни обращались к этому внутри, используется внутренний DNS-сервер. Это будет означать, что вы настроите server.yourdomain.comсвой внутренний DNS-сервер так, чтобы он указывал на внутренний IP-адрес, и server.yourdomain.comна внешнем DNS-сервере, чтобы он указывал на внешний IP-адрес.

Затем, когда вы пытаетесь получить доступ server.yourdomain.comвнутри своей сети, он разрешается через внутренний DNS-сервер, а когда вы пытаетесь получить доступ из-за пределов вашей сети, он разрешается через внешний DNS-сервер.

Вместо этого я смогу использовать имена. Но я, однако, контролирую только один внешний DNS. Я полагал, что оставляет желаемый эффект недостижимым для меня.