Здравствуйте. Подскажите, пожалуйста, каким образом можно настроить Stream в Nginx Proxy Manager, чтобы с публичного IP арендованного VPS с порта, например, 9321 шел трафик от игрового сервера, например, Minecraft, запущенного в контейнере докер и объединенного в VPN WireGuard?
(Очень кривая и примитивная схема. Пожалуйста, поправьте, если я не прав)
Пользователь --> VPS IP --> Nginx Proxy Manager --> WireGuard VPN (10.0.0.2:25565) --> Домашний сервер.
P.S. на домашнем сервере настроено так, что контейнер с запущенным игровым сервером используют полностью сеть от контейнера WireGuard (
network_mode: "container:wireguard"
в файле docker-compose), благодаря чему доступен внутри VPN WireGuard по адресу 10.0.0.2 и портом 25565 (для тестов используется Minecraft).
EDIT: P.P.S простые Proxy Host совершенно прекрасно работают. Даже с кастомными локациями (для примера запущены два контейнера nginx (10.0.0.2 -- внутри сети docker-network; 10.0.0.3 -- WG туннель на всем компьютере))
EDIT2: Есть отличная
статья на подобную тему. Но мне бы хотелось все сделать именно через NPM, чтобы была возможность удобно конфигурировать и другие вещи.
EIDT3: Ради интереса попробовал сделать все, как указано в статье, но все равно ничего не завелось. немного погуглив, пришел на вот этот
пост на реддите, сделал также, как и было там рассказано. Менял UDP на TCP (майнкрафт работает по TCP), но все равно не могу просто ввести IP VPS в строке серверов майнкрафта и подключиться. Я даже не понимаю, где может быть проблема.
Конфиг текущий nginxuser www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
stream {
upstream minecraft {
server 10.0.0.2:25565;
}
server {
listen 25565;
proxy_pass minecraft;
}
}