2

Я хотел бы предоставлять услуги с нескольких внутренних машин, через внутренний DNS для внешних клиентов.

Это от домашнего внешнего IP-адреса, на маршрутизаторе уровня потребителя, я ожидаю, что мне придется обеспечить внутреннюю маршрутизацию от машины внутри сети.

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

Тем не менее, если я пытаюсь разрешить эти имена / использовать службы от внешних клиентов, они просто разрешают шлюз / DNS-окно, вместо этого мне нужно разрешить внутренние машины.

Переадресация портов не помогает, потому что у меня есть несколько ящиков, предоставляющих похожие сервисы (ssh, http/https, почта и т.д.)

Эта диаграмма может помочь объяснить настройку и то, что я хотел бы сделать ... (или как это называется;))

Любая помощь приветствуется.

Наконец, мне просто нужно сделать это с обратным прокси?

сеть

2 ответа2

3

Проблема не в DNS, проблема в IP.

Если вам нужен внешний доступ, вам нужны внешние IP-адреса. Для одной машины переадресация портов делает свое дело. Для нескольких машин вы можете, например, перенаправить порт 22 на одном компьютере в порт 22 маршрутизатора, а в порт 22 другой машины сказать порт 122 маршрутизатора. Вы будете ssh к example.com:122.

Если точное указание порта не является опцией, для протоколов http/https подойдет обратный прокси-сервер, для одного почтового компьютера должно быть достаточно. Для SSH и большинства других протоколов ваш единственный способ - иметь несколько публичных IP-адресов.

0

Итак, я решил добавить свой собственный ответ, так как данные ответы не дали четкого ответа на вопрос.

Используя Nginx, я настраиваю обратный прокси, который разрешает имена по внутреннему DNS. Это касается веб-сервисов (вы можете добавить больше портов прослушивания, например, для доступа к веб-администратору или почтовым сервисам). (У меня только один почтовый сервер, что довольно типично, так что это просто переадресация портов, и мне не нужен прокси)

server {
    listen       80;

    server_name  a.example.com b.example.com c.example.com;
    access_log   /var/log/nginx/proxy.access.log;

    location / {            
        resolver          192.168.1.102; # Local DNS resolution
        proxy_pass        http://$host$uri; # wildcard 
        proxy_redirect    off;
        proxy_set_header  Host            $host;
        proxy_set_header  X-Real-IP       $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Для обработки ssh я решил использовать переадресацию портов, однако можно настроить sshd для выполнения обратного прокси через туннель, в этом ответе есть некоторые детали:

https://serverfault.com/a/244409/56132

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