Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'accès port conteneur docker hors local

Problème d'accès port conteneur docker hors réseau local conventionnel

Sujet résolu
    5 mars 2022 à 0:32:25

    Bonjour, j'ai récemment installer l'image haugene/docker-transmission-openvpn qui permet d'avoir transmission sur un VPN dans un conteneur.

    Voici mon compose.yml :

    version: '3.3'
    services:
      transmission-openvpn:
        container_name: Transmission
        restart: always
        image: haugene/transmission-openvpn:latest
        cap_add:
          - NET_ADMIN
        volumes:
          - 'transmission:/config'
          - '/home/media/seedbox:/data'
        environment:
          - OPENVPN_PROVIDER=NORDVPN
          - NORDVPN_COUNTRY=FR
          - OPENVPN_USERNAME=************************
          - OPENVPN_PASSWORD=************************
          - LOCAL_NETWORK=192.168.0.0/24
          - TRANSMISSION_WEB_UI=combustion
          - TRANSMISSION_DOWNLOAD_DIR=/data
          - TRANSMISSION_INCOMPLETE_DIR=/data/incomplete
          - TRANSMISSION_RPC_USERNAME=**********
          - TRANSMISSION_RPC_PASSWORD=**********
          - TRANSMISSION_RPC_AUTHENTICATION_REQUIRED=true
          - PUID=999
          - PGID=999
        logging:
          driver: json-file
          options:
            max-size: 10m
        ports:
          - '9091:9091'
        image: haugene/transmission-openvpn
        dns:
          - 8.8.8.8
          - 8.8.4.4
    volumes:
      transmission:
        driver: local

    Mes machines en réseau local conventionnel sont dans la plage d'ip 192.168.0.0/24. J'ai aussi un serveur VPN que j'ai configuré pour avoir accès au réseau local exactement comme si j'était à la maison.

    J'arrive à me connecter à l'adresse 192.168.0.46:9091 que je suis en local conventionnel.

    Je n'arrive pas à me connecter depuis l'adresse du routeur ni en me connectant au VPN.

    Tout fonctionnait avant que je passe sur haugene/docker-transmission-openvpn pour ajouter un VPN seulement à Transmission.

    Je me suis renseigné et j'ai lu que c'est sans doutes un problème de la valeur de la variable d'environnement LOCAL_NETWORK mais je ne vois pas quoi mettre d'autre à pars 192.168.0.0/24. J'ai aussi essayé 10.8.3.0/24 (interface tun0 du conteneur).

    J'ai un autre conteneur portainer qui fonctionne très bien même par connexion par l'adresse du routeur, le VPN et en local. Quelqu'un aurait une idée pour résoudre ce soucis ?

    • Partager sur Facebook
    • Partager sur Twitter
      5 mars 2022 à 12:27:54

      Bonjour,

      «Conventionnel» ne veut rien dire appliqué à «réseau local». Il manque énormément de précision pour comprendre ce que tu as exactement comme topologie/architecture. On devine que ton hôte docker à l'adresse 192.168.0.46, le reste on n'en sait rien: adresse du routeur? Conf du serveur VPN?

      De ce que je comprends tu as

                                       |----Serveur VPN
                                       |
      | Routeur Internet | ----LAN---- |
               |                       |
               |                       |----Hôte Docker
               |
            Internet
               |
               |
               |
           VPN NordVPN
      

      Par défaut, un container docker est sur son propre réseau géré par Docker. Donc ton container transmission-openvpn ne connaît pas la route spécifique pour atteindre tout autre réseau. Il choisit alors la première route qui match: celle en passant par le tunnel vers ton VPN NordVPN. C'est d'ailleurs bien décrit dans la doc: https://haugene.github.io/docker-transmission-openvpn/vpn-networking/.

      La variable d'environnement LOCAL_NETWORK permet de définir un réseau pour lequel le routage ne passe pas par le tunnel NordVPN.

      La meilleure solution semble être de déployer le reverse proxy fourni avec plutôt que d'utiliser la variable d'environnement, ce qui donnerait un docker-compose.yml du type:

      version: '3.3'
      services:
        transmission-openvpn:
          container_name: Transmission
          restart: always
          image: haugene/transmission-openvpn:latest
          cap_add:
            - NET_ADMIN
          volumes:
            - 'transmission:/config'
            - '/home/media/seedbox:/data'
          environment:
            - OPENVPN_PROVIDER=NORDVPN
            - NORDVPN_COUNTRY=FR
            - OPENVPN_USERNAME=************************
            - OPENVPN_PASSWORD=************************
            - TRANSMISSION_WEB_UI=combustion
            - TRANSMISSION_DOWNLOAD_DIR=/data
            - TRANSMISSION_INCOMPLETE_DIR=/data/incomplete
            - TRANSMISSION_RPC_USERNAME=**********
            - TRANSMISSION_RPC_PASSWORD=**********
            - TRANSMISSION_RPC_AUTHENTICATION_REQUIRED=true
            - PUID=999
            - PGID=999
          logging:
            driver: json-file
            options:
              max-size: 10m
          image: haugene/transmission-openvpn
          dns:
            - 8.8.8.8
            - 8.8.4.4
        transmission-openvpn-proxy:
          image: haugene/transmission-openvpn-proxy
          restart: always
          depends_on:
            - "transmission-openvpn"
          links:
            - "transmission-openvpn:transmission"
          ports:
            - "8080:8080"
      volumes:
        transmission:
          driver: local


      EDIT: un exemple de docker-compose.yml avec proxy (et flux rss) est officiellement donné sur le github du projet: https://github.com/haugene/docker-transmission-openvpn/blob/master/docker-compose.yml.

      -
      Edité par KoaTao 5 mars 2022 à 12:31:54

      • Partager sur Facebook
      • Partager sur Twitter
        7 mars 2022 à 19:50:31

        Salut, 

        Le problème s'est résolu tout seul je ne sais pas comment ni pourquoi (pas de reboot ni rien)

        Le problème était :

        Client A et C ne pouvait pas accéder à 192.168.0.46:9091 uniquement, tout les autres services des deux serveurs étaient accessibles. Client B avait accès à tout.

        Bonne journée, Nicolas

        • Partager sur Facebook
        • Partager sur Twitter

        Problème d'accès port conteneur docker hors local

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown