Я хочу, чтобы при попытке зайти на мой сервер по адресу 94.xx.xx.xx он автоматически перенаправлял меня на внутренний адрес 192.xx.xx.xx из локальной сети. Можно ли это сделать с помощью OS X DNS, и если да, то как?
Нет, это не может быть сделано DNS OS X или любым DNS, потому что вы не взаимодействуете с DNS в своей ситуации (согласно вашему комментарию). Служба доменных имен преобразует доменные имена в IP-адреса, и вы не используете доменные имена для доступа к серверу.
Однако если вы настроили DNS и использовали одно имя во внешнем DNS и одно и то же имя во внутреннем DNS, одно и то же имя может разрешаться в разные адреса.
Неважно, совпадают ли числа, но вам может быть проще сопоставить вещи или проверить правильность серверов. Настройка внутреннего DNS стоит затраченных усилий, если у вас несколько десятков хостов — в противном случае проще перегрузить локальный файл hosts на машинах, которым нужно разрешать имя «внутри», а не снаружи.
(Если вы использовали полные доменные имена, есть способы сделать это… Я не знаю, насколько они «приняты», и я недостаточно эксперт, чтобы рассказать вам обо всех возможных побочных эффектах, но это может сработать. )
Насколько я понимаю, проблема, с которой вы столкнулись, связана с маршрутизацией. Ваш общедоступный IP-адрес находится на маршрутизаторе, который не является вашим сервером. Ваш сервер использует переадресацию портов на маршрутизаторе для получения трафика. Вы хотите иметь возможность подключаться к общедоступному IP-адресу, но из локальной сети. Вам необходимо включить/настроить Hairpin NAT на вашем маршрутизаторе, если он поддерживается. Я не могу придумать никаких других решений.
Один из способов решить эту проблему — добавить запись DNS для этого IP-адреса и использовать имя вместо самого IP-адреса. Поскольку вы подключаетесь через IP, вы никогда не используете DNS.
Однако это работает только в том случае, если откуда бы вы ни обращались к этому внутри, используется внутренний DNS-сервер. Это будет означать, что вы настроите server.yourdomain.com
свой внутренний DNS-сервер так, чтобы он указывал на внутренний IP-адрес, и server.yourdomain.com
на внешнем DNS-сервере, чтобы он указывал на внешний IP-адрес.
Затем, когда вы пытаетесь получить доступ server.yourdomain.com
внутри своей сети, он разрешается через внутренний DNS-сервер, а когда вы пытаетесь получить доступ из-за пределов вашей сети, он разрешается через внешний DNS-сервер.
возможно, может быть,
ssh -l
?Эмиль Л.
сам
Эмиль Л.
кланомат