2

Я помню, когда я учился в университете, я мог получить удаленный доступ к отдельным рабочим станциям в компьютерном классе, указав p1.someuniversity.edu или p2.someuniversity.edu через ssh.

Теперь дома у меня есть что-то вроде этого:

  • Статический IP: 123.123.321.321
  • Домен: mydomain.com
  • Несколько компьютеров, включая домашний сервер, все подключены к маршрутизатору
  • Маршрутизатор настроен с помощью dd-wrt

Я могу удаленно подключиться к домашнему серверу, используя переадресацию портов на моем маршрутизаторе, а затем указать регистратору домена указать www.mydomain.com на мой статический ip. Но что, если я хочу получить доступ к другим компьютерам в моей сети? Например, если у меня есть рабочий стол Ubuntu в сети, как я могу подключиться к нему через wkst1.mydomain.com? Кроме того, есть ли название для типа настройки сети, которое было в моей университетской компьютерной лаборатории?

4 ответа4

3

Ваша университетская лаборатория была полностью стандартной - в этом не было ничего особенного. В вашей домашней ситуации вы проходите через один IP-адрес, чтобы добраться до всех ваших машин, поэтому ваша отправная точка - хорошая, но затем вам нужно перенаправить альтернативные порты в другие системы. Пример: перенаправьте порт 2022 на порт 22 на рабочем столе Ubuntu, затем ssh на то же имя хоста, но на порт 2022, чтобы получить доступ к SSH на вашем компьютере с Ubuntu. В этой ситуации вы будете хорошо выполнять рекомендации Алекса и настраивать статический внутренний DHCP-лизинг.

2

URL-адреса предназначены для указания трех вещей - протокола, хоста и расположения ресурса на этом хосте, а не только хоста. Не все протоколы используют URL-адреса или имеют смысл с ними, SSH является одним из них (SFTP, конечно, отличается).

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

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

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

Я никогда не был слишком ясен в отношении "доменного" параметра DHCP, но он не влияет и не может повлиять на что-либо, что доступно вне вашей сети в этом сценарии.

Для вашего единственного общедоступного IP-адреса вы можете получить для него доменное имя, и есть такие провайдеры, как no-ip.com, которые предоставляют вам бесплатное имя - вам нужно запустить клиент где-нибудь в вашей сети, который обновит провайдера с изменениями в ваш публичный IP-адрес. Я считаю, что no-ip.com позволяет вам иметь до двух доменов, указывающих на любой компьютер, который вам нравится. Но, если вы укажете им обоим один и тот же общедоступный IP-адрес, они действительно указывают на одно и то же место, поскольку домены не имеют никакого понятия, кроме «эта строка = этот IP-адрес».

Итак, с такими вещами, как SSH, вы застряли с переадресацией портов. Вы должны указать маршрутизатору переадресовывать входящий трафик на что-то вроде TCP 1000 на частный IP вашей первой рабочей станции, порт 22, а затем на TCP 1001 на частный IP вашей второй рабочей станции, порт 22.

С помощью HTTP многие веб-серверы могут выполнять функцию, называемую "обратное проксирование", когда один URL-адрес фактически является внешним интерфейсом для другого веб-сервера. Итак, если вы работаете с веб- сервером на рабочей станции 1 (т . Е. Http://mypublicname.no-ip.invalid) - вы можете настроить Apache на обратный прокси-сервер, похожий на каталог "workstation2", на вторую рабочую станцию, на которой также работает Apache. Итак, конечный результат заключается в том, что http://mypublicname.no-ip.invalid общается с веб- сервером на рабочей станции 1, а http://mypublicname.no-ip.invalid/workstation2 сообщает веб- серверу на рабочей станции 1, с которым необходимо связаться веб-сервер на рабочей станции 2 и перешлите результат обратно к вам. Это зависит от протокола, и я не уверен, что слишком много, кроме HTTP, может быть "обратным прокси". Вы не можете использовать RDP через обратный прокси-сервер HTTP, если у вас нет скриптов или плагинов Apache, поддерживающих это.

Вы также можете захотеть взглянуть на SSL VPN, такие как Adito или OpenVPN ALS. Он позволяет вам устанавливать туннели и предоставляет очень хороший интерфейс для этого. Это очень удобно и стоит потрудиться пройти настройку.

0

Вам необходимо включить службу dnsmasq и назначить статическую аренду DHCP (необязательно) и доменные имена для ваших компьютеров.

0

Компьютеры в вашем университете работали как большая часть обычного Интернета: каждый компьютер имеет свой уникальный IP-адрес. Кроме того, они настроили DNS так, чтобы вы могли подключаться к компьютеру по имени, а не вводить IP-номер.

Вы можете сравнить это с каждым человеком, имеющим номер телефона, который указан в глобальной телефонной книге iba.

Вы можете сделать что-то подобное дома. Однако большинство домашних настроек поставляются только с одним IP-адресом v4. Это означает, что вы либо:

  1. Используйте только один компьютер одновременно, или
  2. Вам нужно сделать немного «обмана».

Обман здесь обычно NAT . Телефонная аналогия - иметь один телефонный номер. Добавить портье в дверь. Каждый звонок сделан не человеку в здании, а администратору. Затем вы просите его или ее подключить вас к одному из внутренних телефонов.

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

В этом случае putting the call though является переадресацией порта.

Соединение с вашим IP: портом будет распознаваться вашим брандмауэром, и вместо установления локального соединения оно будет перенаправлено на один из ваших компьютеров.

Поскольку каждая комбинация IP:port является уникальной, вы можете переслать ее только на один компьютер.

Если вы хотите подключиться к нескольким компьютерам в сети с NAT, вам нужно настроить межсетевой экран с несколькими правилами переадресации для отдельных портов.

Пример:
Переслать все соединения (my_ip:port_2022) на компьютер A:, порт 22.
Переслать все соединения (my_ip:port_3022) к компьютеру B: порт 22.
Переадресация всех подключений к (my_ip:port_4022) на компьютер C:, порт 22.

Единственное потенциальное исключение - HTTP, поскольку он не только отправляет запрос на порт IP:, но и упоминает имя хоста в своем пакете. Однако это исключение, большинство протоколов не упоминают имя хоста назначения.

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