Ik heb een Synology NAS (DS918+) en daar draai ik een aantal services op (zoals Vaultwarden en Immich).
Om deze services te bereiken, gebruik ik een reverse proxy (Traefik v2) en in het algemeen gaat dit wel prima. Ik zou graag voor een paar services een IP whitelist willen instellen, zodat ze alleen maar te bereiken zijn vanaf het IP adres van mijn huis.
Om een onbekende reden is het me niet gelukt om dit voor elkaar te krijgen.
Alles (incl. de reverse proxy) draait in docker-compose en het is allemaal met docker netwerken in bridge modus verbonden met elkaar.
In de traefik service heb ik de porten zo geregeld:
Ze staan dus op host mode, waardoor een evt bridge mode geen probleem is. Daarnaast is deze container in een netwerk waardoor Traefik kan communiceren met de andere docker containers op hetzelfde netwerk.
Ik gebruik trouwens een whoami container van Traefik om te kijken welke header / HTTP gegevens worden ontvangen wanneer een er een bezoeker is. Eerst was het IP adres van de client het IP adres van de Traefik container. Dat is uiteraard niet goed.
Toen dat zo was, heb ik een script van deze GitHub gist uitgevoerd in de hoop dat het het probleem zou oplossen. https://gist.github.com/p...b9112166da4a2dbf8e3a72ae9.
Dit script heeft er inderdaad voor gezorgd dat er een ander IP adres werd ontvangen; in plaats van het IP adres van de Traefik container, werd het het interne IP adres van mijn router (dus de gateway van het Wi-Fi netwerk).
Ik heb vervolgens nog erg veel gezocht naar oplossingen op het internet en vond nog een potentiële oplossing; ik heb in de docker daemon instellingen "userland-proxy" naar false gezet. Blijkbaar is userland-proxy een Docker proxy die de netwerken van containers ofzo regelt. Ik weet niet precies wat het doet, maar volgens een Reddit thread kon dit een oplossing zijn. Helaas heeft deze aanpassing niets veranderd en is het IP adres van de client nog steeds het interne IP adres van mijn router.
Heeft iemand nog ideeën hoe ik dit kan oplossen?
Om deze services te bereiken, gebruik ik een reverse proxy (Traefik v2) en in het algemeen gaat dit wel prima. Ik zou graag voor een paar services een IP whitelist willen instellen, zodat ze alleen maar te bereiken zijn vanaf het IP adres van mijn huis.
Om een onbekende reden is het me niet gelukt om dit voor elkaar te krijgen.
Alles (incl. de reverse proxy) draait in docker-compose en het is allemaal met docker netwerken in bridge modus verbonden met elkaar.
In de traefik service heb ik de porten zo geregeld:
code:
1
2
3
4
5
6
7
8
9
| ports: - target: 80 published: 80 protocol: tcp mode: host - target: 443 published: 443 protocol: tcp mode: host |
Ze staan dus op host mode, waardoor een evt bridge mode geen probleem is. Daarnaast is deze container in een netwerk waardoor Traefik kan communiceren met de andere docker containers op hetzelfde netwerk.
Ik gebruik trouwens een whoami container van Traefik om te kijken welke header / HTTP gegevens worden ontvangen wanneer een er een bezoeker is. Eerst was het IP adres van de client het IP adres van de Traefik container. Dat is uiteraard niet goed.
Toen dat zo was, heb ik een script van deze GitHub gist uitgevoerd in de hoop dat het het probleem zou oplossen. https://gist.github.com/p...b9112166da4a2dbf8e3a72ae9.
Dit script heeft er inderdaad voor gezorgd dat er een ander IP adres werd ontvangen; in plaats van het IP adres van de Traefik container, werd het het interne IP adres van mijn router (dus de gateway van het Wi-Fi netwerk).
Ik heb vervolgens nog erg veel gezocht naar oplossingen op het internet en vond nog een potentiële oplossing; ik heb in de docker daemon instellingen "userland-proxy" naar false gezet. Blijkbaar is userland-proxy een Docker proxy die de netwerken van containers ofzo regelt. Ik weet niet precies wat het doet, maar volgens een Reddit thread kon dit een oplossing zijn. Helaas heeft deze aanpassing niets veranderd en is het IP adres van de client nog steeds het interne IP adres van mijn router.
Heeft iemand nog ideeën hoe ik dit kan oplossen?