services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
# Uncomment the next line if you uncomment anything in the section
# environment:
# Uncomment this if you want to change the location of
# the SQLite DB file within the container
# DB_SQLITE_FILE: "/data/database.sqlite"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Все круто, но вижу только один минус в архитектуре когда reverse proxy на vps, у меня dns-ом сейчас AdGuardHome, на нем сейчас 4 задачи:
кэширующий dns, балансировщик (ходит только к DoH, DoT)
режет рекламу, ежу понятно по спискам dns
сам является DoH dns для телефона когда я не дома (в iphone вроде это встроено, но я нормальный и у меня Android поэтому приложение Intra), т.е. трафик сначала идет домой там проходит фильтрацию, а уже потом на телефон
заворачивает трафик к моим ресурсам сразу на NPM который в доме, т.е. находясь в доме я даже не выхожу в большую сеть, особенно это касается телефонов, где в приложениях не всегда можно прописать несколько адресов, внешний и внутренний.
Не до конца понимаю в контексте связки с AdGuardHome… Сам использую AGH в тех же сценариях как вы указали. Но у меня AGH используется перед роутером в домашней сети. У вас AGH публично доступен (как это сделать?), чтобы “является DoH dns для телефона когда я не дома (intra), т.е. трафик сначала идет домой там проходит фильтрацию, а уже потом на телефон”?
Тут же ниже прописываются сертификаты, выдираем из NPM что получали для AGH, как обновлять его на автомате я еще не придумал, поэтому делаю это вручную по напоминанию раз в два месяца.
А и еще у меня AGH стоит в entware прям на роутере (keenetic) и он полностью подменяет встроенный в роутер dns, т.е. по 53 порту отвечает именно AGH
Но это вроде не должно влиять.
Класс! И все таки <домен до AGH> публично доступен? Как телефон, подключенный к сети мобильного оператора доберется до локального NPM? Или NPM все таки публичный на VPSке? У меня нет публичного домена. Для себя я вижу реализацию этой схемы так: подключаюсь к netbird сети на телефоне - попадая тем самым в свою домашнюю сеть. В этом случае AGH становиться для меня доступным по доменному имени через NPM. Ну и через схему как вы показали трафик будет ходить через домашний DNS AGH.
Поставил Intra на телефон. Но наверное все таки он мне не нужен. Как я понял, он поднимает VPN канал до необходимого DNS. При этом отваливаются все остальные vpn подключения (в том числе netbird). Публично доступного адреса до ADH у меня нет. Но при подключенном клиента Netbird у меня нормально резолвятся все мои локальные доменные адреса.
Понравился ролик, я вот по привычке почему-то до сих пор использую Apahce а не NPM)
Но с подобной схемой есть нюанс, не для всех сервисов обратный прокси будет применим, для веб-интерфейсов да, а вот для Apache Guacamole например обратный прокси на VPS не взлетел, точнее взлетел, но через туннель пинг между сервером guacamole и VPS 10-15 мс и этого уже было достаточно чтобы картинка RDP сыпалась.
В итоге пришел к решению простого проброса портов, VPS условно слушает порт 1234 и перенаправляет запросы на сервер в домашней сети через тунель, а на том конце уже Tomcat с ssl-сертификатами, не знаю если честно насколько это безопасно, но работает прекрасно и нет дополнительной нагрузки на реверс прокси.
Отличный ролик, меня прям спас, огромное спасибо! У меня домашний сервер на truenas, были проблемы с установкой клиента wiregurd. Netbird по ролику встал легко, но теперь другая проблема - весь трафик моего домашнего сервера теперь идет через тунель нетбёрда на VPS сервер, а там ограничения по трафику. Можете рассказать как netbird устанавливать в теле другого контейнера? Чтобы в туннель netbird шел трафик только от этого контейнера.