Предположим, у вас есть домен example.ru, VPS, и домашний компьютер с мощным железом, который вы хотите использовать для доступа извне, например, для запуска ИИ. Ниже приведен пошаговый процесс настройки.
Шаг 1. Настройка DNS
Первым делом создайте поддомен для своего основного сайта example.ru. Это делается в панели управления хостингом.
- Добавьте A-запись, которая указывает на ваш VPS поддомен: ai.example.ru
Теперь все запросы на ai.example.ru будут перенаправляться на ваш VPS.
Шаг 2. Установка и настройка Nginx на VPS
- На VPS потребуется Nginx для проксирования запросов на домашний компьютер. Выполните следующие команды:
Установите Nginx:
bashКопировать кодsudo apt update
sudo apt install nginx
- Установите Certbot для автоматического получения SSL-сертификатов
sudo apt install certbot python3-certbot-nginx
Создайте конфигурацию для Nginx:
Создайте файл /etc/nginx/sites-available/ai.example.ru:
sudo nano /etc/nginx/sites-available/ai.example.ru
Добавьте следующий контент:
server {
listen 4443 ssl;
server_name ai.example.ru;
ssl_certificate /etc/letsencrypt/live/ai.example.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/ai.example.ru/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
location / {
proxy_pass http://localhost:11434;
proxy_set_header Host $host;
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;
}
}
server {
listen 80;
server_name ai.example.ru;
return 403;
}
Активируйте конфигурацию:
sudo ln -s /etc/nginx/sites-available/ai.example.ru /etc/nginx/sites-enabled/
- Перезапустите Nginx, чтобы применить изменения:
sudo systemctl restart nginx
Шаг 3. Получение SSL-сертификата с помощью Certbot
Теперь необходимо получить SSL-сертификат для поддомена.
- Запустите Certbot:
sudo certbot --nginx -d ai.example.ru
Сертификат автоматически настроится для вашего поддомена, и Nginx будет готов к приему HTTPS-запросов.
Шаг 4. Настройка SSH-туннеля на локальном компьютере
Теперь мы настроим обратный SSH-туннель, который будет перенаправлять запросы с VPS на домашний компьютер.
- Подключитесь по SSH к вашему VPS, используя ключ для авторизации:
Убедитесь, что на вашем домашнем компьютере есть SSH-ключи:
ssh-keygen -t rsa
- Скопируйте ключ на VPS:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@IP_VPS
Настройте SSH-туннель:
Команда для подключения:
ssh -R 11434:localhost:8080 -i /home/username/.ssh/id_rsa -o ServerAliveInterval=60 -o ServerAliveCountMax=3 root@IP_VPS
Здесь:-R 11434:localhost:8080 — создаем обратный туннель, который перенаправляет порт 11434 на VPS к порту 8080 на локальной машине.
-i — указываем путь к ключу SSH.
ServerAliveInterval=60 и ServerAliveCountMax=3 — поддерживают активность соединения.
Шаг 5. Автозапуск SSH-туннеля при старте
Чтобы SSH-туннель автоматически запускался при старте системы, сделаем скрипт и добавим его в автозагрузку.
- Создайте файл ssh-tunnel.sh:
nano ~/ssh-tunnel.sh
- Вставьте команду:
#!/bin/bash ssh -R 11434:localhost:8080 -i /home/username/.ssh/id_rsa -o ServerAliveInterval=60 -o ServerAliveCountMax=3 root@IP_VPS
- Сделайте файл исполняемым:
chmod +x ~/ssh-tunnel.sh
- Добавьте его в автозагрузку Gnome:Откройте приложение "Автозагрузка" в Gnome.
- Добавьте новый элемент:
Имя: SSH-туннель
Команда: /home/username/ssh-tunnel.sh
Теперь при каждом запуске системы SSH-туннель будет автоматически подниматься.
Готово!
Теперь вы можете использовать свой домашний компьютер с динамическим серым IP по доменному имени ai.example.ru для любых задач, таких как работа с ИИ или размещение сайтов.