Как сделать частный домашний сервер, подключенный к серверу wireguard в облаке vpn, общедоступным?

. По сути, я хочу сделать локальный домашний сервер общедоступным в Интернете. К сожалению, мой интернет-провайдер использует CGNAT, и чтобы получить общедоступный IP-адрес, мне нужно доплатить (около 50 долларов). Я решил, что дешевле использовать VPS.

Итак, я настроил Wireguard Server в Google Cloud через виртуальную машину Compute Engine под управлением Ubuntu 20.04. Я также настроил клиент Wireguard для своего локального сервера дома и подключил его к серверу Wirequard в Google Cloud. Наконец, я установил еще один клиент Wireguard на своем телефоне Android, подключил его к серверу, и все работает нормально. Когда я нахожусь в wireguard на своем телефоне Android, я вижу свой локальный сервер снаружи (используя мобильные данные для тестирования).

Теперь я хочу сделать локальный домашний сервер общедоступным. У меня есть домен и настроены необходимые записи. Когда я пингую его,он возвращает общедоступный IP-адрес виртуальной машины GCE, что, как я полагаю, означает, что она работает нормально. Затем я установил Nginx на свою виртуальную машину GCE. У меня это работает нормально. Я смог получить доступ к странице Nginx по умолчанию через домен и общедоступный IP-адрес. Затем я изменил конфигурацию по умолчанию, используя следующее, и после этого перезапустил Nginx.

server {
    listen 80;
    listen [::]:80;

    server_name sub.domain.org; #sample only

    location / {
            proxy_redirect http://10.200.200.2 http://sub.domain.org;
    }
}

Мой Wireguard находится в диапазоне IP-адресов 10.200.200.x (не уверен, что это правильный термин), а 10.200.200.2 — это IP-адрес wireguard моего локального домашнего сервера.

Возможно, я не понимал, как работает Nginx, но я ожидал, что через Nginx я смогу публично получить доступ к своему локальному домашнему серверу, просматриваяhttp://sub.domain.org. К сожалению, мне не удалось получить к нему доступ в открытом доступе. Он доступен только при подключении к wireguard.

Есть что-нибудь еще, что мне нужно сделать?

Будем признательны за любой отзыв.

-1
задан 13 September 2021 в 09:11
1 ответ

Вам следует прочитать документы ngx_http_proxy_moduleпо адресуhttp://nginx.org/en/docs/http/ngx_http_proxy_module.html.

Документы для proxy_redirectсостояний:

Устанавливает текст, который следует изменить в полях заголовка «Местоположение» и «Обновить» ответа проксируемого сервера.

Итак, в настоящее время вы только посоветовали nginx изменить некоторый текст в некоторых заголовках, но не пропускать трафик на цель (домашнего сервера).

Для этого вам понадобится как минимум директиваproxy_pass.

Имейте в виду, что nginx не заменяет содержимое ваших сайтов! Поэтому, если ваш сайт на домашнем сервере обслуживает абсолютные пути, вам нужно это исправить.

0
ответ дан 13 September 2021 в 13:03

Теги

Похожие вопросы