1

В настоящее время я не могу подключиться к моей машине под номером 2 за пределами локальной сети. Смотрите следующее изображение для обзора.

Изображение моей установки:

Я хотел бы ssh к этой машине, не находясь в локальной сети.

Мои DNS-настройки с DNS-сервера

@    Type  TTL   Prio Data
     A     300   0    1.2.3.4

foo  Type  TTL   Prio Data
     CNAME 3600  0    192.168.0.15

bar  Type  TTL   Prio Data
     A     3600  0    192.168.0.15

Я пробовал и CNAME и A для частного ip, но я не могу подключиться к нему с помощью ssh.

У меня также есть следующее правило для переадресации портов

IP            Local port External port 
192.168.0.15  22 - 22    33 - 33 
192.168.0.04  22 - 22    22 - 22

Следующие работы(из-за пределов сети):

$ ssh user@example.com

Следующее не работает (из-за пределов сети):

$ ssh user@foo.example.com

или же

$ ssh user@bar.example.com 

РЕДАКТИРОВАТЬ 1:

Изменены неисправные IP-адреса.

Изменена переадресация портов. Порт 33 теперь перенаправлен на 192.168.0.15 .

Теперь он работает до $ ssh -p 33 user@example.com . Но не с поддоменом.

2 ответа2

1

Опять же, я не могу просто комментировать ... в любом случае. Вы, вероятно, не сможете получить это так же просто, как использование субдомена, если только вы не используете вуду на своем роутере.

Проблема в том, что единственный доступный адрес от внешней точки доступа - это ваш интернет-IP (1.2.3.4), поэтому ваши субдомены должны будут также указывать на этот адрес. Что уже работает, так это то, что вы можете использовать разные порты.

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

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

Еще один способ обойти это - настроить целую VPN, чтобы вы действительно были "в сети" и, следовательно, могли разрешать эти частные IP-адреса.

Редактировать: Как мне было любопытно, я немного покопался (мои знания DNS не самые сильные), но похоже, что вы можете использовать запись SRV, чтобы указать свой поддомен на ваш домен верхнего уровня на другом порту. Таким образом, foo.exmaple.com разрешит example.com:33, по крайней мере, в соответствии с этой веткой: https://stackoverflow.com/questions/19015138/how-to-redirect-dns-to-different-ports

Вероятно, это не совсем обычная установка ... так что вы можете столкнуться с некоторыми стенами.

1

Позвольте мне сказать это немного яснее:

IP-адреса RFC1918 не маршрутизируются через Интернет. По дизайну.

Зачем?
У меня дома диапазон 192.160.0.x/24? Вы пытаетесь направить на мои серверы?
Или мой сосед, который, вероятно, тоже что-то есть в 192.168 ..?
Или его сосед? ...
и т. д.

Этот диапазон предназначен только для вашего локального использования. Это не доступно через Интернет.

Если вы назначите foo.example.com для 192.168.0.15, тогда можете свободно использовать этот локальный сервер имен для вашей локальной сети, и все будет в порядке. Но вы не можете использовать его за пределами вашей локальной сети.

Следующее не работает (из-за пределов сети):$ ssh user@foo.example.com

Как и должно (нет). Если IP-адрес разрешает, что вы делаете SSH к 192.168.0.15 (порт 22). Для любых локальных сайтов 192.168.0.15 (ни ПК на вашем месте, ни NAT-маршрутизатор!)
Так что роутер ничего не получает. Игнорировать переадресацию портов. Если вы ничего не получаете, то нечего его применять.


Теперь о том, что вы можете сделать:

Если у вас есть только один публичный IP-адрес, то вы можете иметь только один IP-порт: кортеж. С одним IP адрес фиксирован. Таким образом, вы можете только перенаправить порт.

Например:
ssh 1.2.3.4 2022 и portforward это к 192.168.0.15
ssh 1.2.3.4 3022 и portforward это к 192.168.0.4

При наличии только одного IP-адреса весь домен должен соответствовать вашему IP-адресу 1.2.3.4.


Кроме того, получить больше IP-адресов. По крайней мере, один уникальный общедоступный IP-адрес для каждого хоста был тем, что было разработано в Интернете. Вы сталкиваетесь с этой проблемой только потому, что используете NAT, который позволяет нам обойтись без IP- адресов v4 .

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

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