NGINX Port Fortward

Manchmal möchte man Ports forwarden, die aber das IP Protokoll wechseln müssen. Dafür kann man den NGINX TCP/UDP Loadbalancer missbrauchen.

https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/#upstream

Beispielconfig

mkdir /etc/nginx/ports-enabled
mkdir /etc/nginx/ports-available
/etc/nginx/nginx.conf
stream {
        include /etc/nginx/ports-enabled/*;
}
/etc/nginx/ports-available/tcp
server {
        listen 5000; # IPv4
        listen [::]:5000; # IPv6
        proxy_pass host.to.proxy:22;
}
/etc/nginx/ports-available/udp
server {
        listen 5000 udp; # IPv4
        listen [::]:5000 udp; # IPv6
        proxy_pass host.to.proxy:53;
}

Aktivieren wie gewohnt mit Symlink.

ln -s /etc/nginx/ports-available/tcp /etc/nginx/ports-enabled/