Как сделать компьютер доступным из интернета

  • Автор темы Автор темы k0ttee
  • Дата начала Дата начала
Регистрация
09.07.24
Сообщения
1383
Реакции
774
Баллы
113
CFC
146450
USDT
69.4
Зачем это может понадобится...
Размещать дома любые тяжёлые узлы, не раскошеливаясь на аренду сервера сопоставимого с домашним компом. Снимать сервер с 64 оперативки это не дёшево, добавить в свой комп оперативки - затея беспроигрышная.

В чём отстой...
Диванный дата-центр, а может быть даже "сервер от слова серить" (по тому что в туалете), не даст гарантий работы и доступности 24 на 7. Может отвалиться интернет и вырубиться электричество.

Можно преодолеть отстой...
Современные компы и ноуты можно настроить включаться при подаче питания. Ноутбук может выключаться скриптом при разряде аккумулятора.

Как сделать свой комп доступным из интернета...​

Есть несколько путей с разной сложностью и ценой.
  1. доплачивать провайдеру за выделенный IP адрес и открытые порты
  2. проложить путь через сервисы DDNS
  3. использовать такую функцию роутера
  4. арендовать самый дешёвый VDS и соединить его с домашним компом
С первым вариантом всё просто и понятно, единственный недостаток - нельзя вставить заглушку на случай отвала сети/электричества. Второй вариант это бесплатно или за деньги (бесплатно будет тормозить и иногда отваливаться). Третий вариант как второй, но только бесплатный. Ну и четвёртый вариант исправляет недостаток первого (можно сделать на сервере заглушку на случаи отвалов дома).

Наглядно о втором варианте (всё делается мышкой по инструкциям от DDNS сервисов)...


 2025-02-21 в 17.10.19.png


Наглядно о третьем...
Как видите, я не делаю доступным из интернета сам роутер, только серверный компик (Mac Mini на серванте).

 2025-02-21 в 17.11.01.png



Общая рекомендация будет пожалуй в том, чтобы отключить раздачу случайных адресов в домашней сети. Или выключить DHCP или оставить, но задавать IP устройствам вручную.

Дешёвый VDS связанный с домашним компом​

Мне этот вариант видится как самый лучший. Это не бесплатно, но дёшево позволяет разворачивать любые узлы. На слабом серверочке можно разместить сайт, а оттуда проложить домой связь с тяжёлым и прожорливым узлом. Если домашний узел недоступен, на сайте можно сделать заглушку... Чтобы хоть что-то показывать пользователям.

Как работает связка... Домашний комп соединяется с сервером по SSH обратным туннелем, сервер проксирует запросы к тяжёлому узлу на комп.

Это может показаться жутко сложным... Но... Это одна маленькая команда в терминале.😝
Bash:
ssh name@server -i ~/.ssh/key -p 22 -v -R hostname:666:localhost:8080

Туннель это как вход по SSH для управления сервером...

name - имя пользователя (под которым "заходите" на сервер)
server - IP сервера
~/.ssh/key - путь до файла ключа (вместо пароля)
22 - стандартный порт SSH соединения (если переназначали - замените своим)

Вся магия прокладки туннеля это дописать к команде входа немного буковок с циферками.

666 - принимающий запросы порт сервера (направляйте в этот порт запросы от сервера к дому)
8080 - порт дома (дом принимает запросы этим портом)

Вкусовщина (в примере я написал словами вместо цифр, чтобы цифры портов были заметнее глазу).

hostname - хост сервера (альтернатива 0.0.0.0)
localhost - хост дома (альтернатива 127.0.0.1)

Я бы написал для облегчения понятности длинными флагами (--port вместо -p), но длинных флагов у команды ssh нету... Только короткие... Это грустненько.

SSH.png


Кроме команды ещё нужно обратить внимание на парочку настроек SSH в файле /etc/ssh/sshd_config (разрешить туннели, разрешить форвардинг, ограничить максимум сессий до достаточного вам количества).
Код:
PermitTunnel yes
AllowTcpForwarding yes
MaxSessions 10
После настроек на забудьте перезапустить демона sshd.

Соединять можно что угодно, хоть клиент на сервере с базой данных дома. В простой пример приведу серверный NGINX проксирующий запросы в туннель к сайту дома. Обойтись можно единственной proxy_pass директивой.
NGINX:
location ~ / {
        proxy_pass http://127.0.0.1:666;
}

Чтобы не было такого "все пользователи с одинакового айпишника заходят" 😆 настройте NGINX на VDS передавать реальные айпишники. Это вообще не обязательно, это если вы хотите правильную статистику.
NGINX:
location ~ / {
        proxy_pass http://127.0.0.1:666;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $host;
}
 

Создайте учетную запись или войдите

Вы должны быть зарегистрированы, чтобы отвечать в темах

Создать учетную запись

Зарегистрируйтесь на нашем Форуме. Это быстро и очень просто!

Войти

Уже есть аккаунт? Тогда войдите!

872Темы
5372Сообщения
336Пользователи
AF CapitalНовый пользователь
Назад
Сверху