1

ситуация

В моей локальной сети есть сервер, на котором работает сервер LAMP, я использую его для TeamSpeak, nextcloud, личного веб-хостинга и т.д.

Я владею доменом "через" cloudflare, перенаправляя на мой публичный IP-адрес.

Я получаю доступ к серверу из локальной сети и снаружи.

моя проблема / что я хочу изменить

Поскольку мой сервер находится в локальной сети, он имеет тот же публичный IP-адрес, что и мой клиент (очевидно, только когда я дома). Поэтому я не могу получить доступ к своему серверу, потому что проверка моего публичного IP-адреса не работает (нормальное поведение, я думаю).

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

И это также работает только на нескольких устройствах, на которых я могу редактировать этот файл. Так, например, на моем телефоне (Android) я не могу получить доступ к своим веб-сайтам или другим предметам.

Есть ли способ преодолеть эту проблему?

У меня действительно есть некоторые идеи

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

редактировать (17.03.17)

Я забыл упомянуть, что я также хочу использовать этот сервер для почты в будущем. Так что к этому нужно быть готовым.

Теперь я установил DNS-сервер, который разрешает мой домен в локальный IP-адрес сервера (используя bind9 ; также для обратного). Это прекрасно работает, но для этого мне пришлось вручную настроить свои DNS-серверы (те, которые запрашивает мой компьютер), что привело к более медленному времени загрузки (других веб-сайтов). Но это также не идеальное решение, потому что тогда кто-то, как мои друзья, не может получить доступ к серверу, потому что у него нет моего собственного DNS-сервера в их списке. Решит ли эта проблема изменение DNS-серверов по умолчанию на моем маршрутизаторе?

К сожалению, у меня динамический публичный IP-адрес, он меняется каждые три недели. До сих пор я изменял свою запись DNS вручную, но это должно измениться (поэтому я перешел на cloudflare, для этого они предлагают API).

Чтобы вообще получить доступ к моему серверу, мне пришлось перенаправить / перенаправить на него некоторые порты. Вот скриншот из них:

2 ответа2

0

Мне жаль, что мне понадобилось так много времени, чтобы наконец написать этот окончательный ответ.

(уже упоминалось в редактировании вопроса)
Идеальным способом было бы иметь маршрутизатор, который поддерживает шпильку /NAT. Но мой нет. Вот почему я решил использовать DNS-сервер. Мне нужно было только изменить DNS-серверы по умолчанию на моих компьютерах и телефоне и т.д. (Что, кстати, возможно в любой распространенной операционной системе). Это привело к небольшому, но заметному (по крайней мере, мне так кажется) более медленному времени загрузки. Но это не большая проблема.

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

О проблеме с моим изменением IP-адреса:
Я написал небольшой скрипт, который каждые пять секунд смотрит, есть ли у меня новый IP-адрес, и если это так, он автоматически меняет его через вышеупомянутый API-интерфейс cloudflare. Если кому-то это нужно, и он ленится писать сам, я могу его опубликовать.

Спасибо @Beracah за ваш ответ :)

0

Ответ зависит от вашей полезности. Если вы используете http только для связи с сервером по внутренней сети (по общедоступному имени), то вы можете изменить поведение в зависимости от порта. Вы также можете выполнить перенаправление с вашего локального индикатора, например, на основе IP-адреса источника. (например, если он имеет адрес источника в качестве внешнего шлюза, он может перенаправить запрос на внутренний IP-адрес). Это не даст вам сопоставления имен.

Даже с учетом вышесказанного звучит так, как будто неправильно настроена переадресация портов в маршрутизаторе. Я не говорю о закреплении, которое мои маршрутизаторы также не поддерживают, но я использую переадресацию портов и могу подключаться к внутренним серверам изнутри или за пределами нашей локальной сети путем маршрутизации через внешний домен / интерфейс. например, у меня есть DNS-запись home.domain.com, которая указывает на интерфейс wan маршрутизатора. Будь я внутри или снаружи, запросы к home.domain.com отправляются на интерфейс wan, а затем перенаправляются через порт на правильный целевой сервер. Это все еще косвенно в некоторых отношениях, но это работает, так что это должно работать и для вас.

Это также вопрос того, сколько других серверов предоставляют порт / службу внутри вашей локальной сети. Это только один?

Наконец, я тоже время от времени рассматриваю эту проблему, так как мне нужна политика имени хоста, которая также зависит от сети, к которой я подключен. Возможно, простой вариант - {(a) написать скрипт планировщика (если вы работаете в windows) или (b) добавить скрипт в ifup/ifcfg}, который пингует конкретный хост linux или другие известные ресурсы внутри локальной сети, а затем устанавливает основанная на нем ценность хостов. Это не так элегантно, как запуск собственного DNS-сервера со своими собственными внутренними правилами (с которым, между прочим, может быть так же легко справиться, поскольку dhcp может предоставить внутренний LAN-DNS-сервер).

Возможно, это не работает для вас, потому что вы используете перенаправление IP для вашего доменного имени, а не динамический DNS? Например, наш общедоступный IP-адрес является динамическим, поэтому мои внутренние серверы периодически обновляют мой поддомен / домен dnsmadeeasy внешним / общедоступным IP-адресом. Затем поиск имени хоста идет прямо на правильный IP-адрес, он не перенаправляется туда.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .