Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

thread 'main' panicked at 'Quering Public IP failed!: Quering gateway failed!', src/main.rs:15:35 #1

Closed
skuizy opened this issue Jul 23, 2023 · 8 comments
Labels
question Further information is requested wontfix This will not be worked on

Comments

@skuizy
Copy link
Contributor

skuizy commented Jul 23, 2023

Désolé, je n'y connais rien à rust...
Je ne peux que fournir la stack et expérimenter au besoin.

J'exécute le MOD depuis le container linuxserver/qbittorrent qui est connecté au VPN proton via le container linuxserver/wireguard (je ne sais pas si cette configuration est supportée ?).

stack backtrace:
   0:     0x7fbeea3e37ad - std::backtrace_rs::backtrace::libunwind::trace::h4357556c585d650a
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fbeea3e37ad - std::backtrace_rs::backtrace::trace_unsynchronized::h154a98bf0ddedacd
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fbeea3e37ad - std::sys_common::backtrace::_print_fmt::h2979687f6ef1950e
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x7fbeea3e37ad - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h32d04e59e827f4fb
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x7fbeea41b38c - core::fmt::write::hc90753bb4142f112
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/fmt/mod.rs:1197:17
   5:     0x7fbeea3de401 - std::io::Write::write_fmt::ha52e2782f4a3bd92
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/io/mod.rs:1672:15
   6:     0x7fbeea3e4f55 - std::sys_common::backtrace::_print::h036f40a453c9603b
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x7fbeea3e4f55 - std::sys_common::backtrace::print::h967f2f389d0661f9
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x7fbeea3e4f55 - std::panicking::default_hook::{{closure}}::hb0388c1054df5ebe
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:295:22
   9:     0x7fbeea3e4c76 - std::panicking::default_hook::hb4a5679f0641e8af
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:314:9
  10:     0x7fbeea3e54e6 - std::panicking::rust_panic_with_hook::h55da91f28ae9c97c
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:698:17
  11:     0x7fbeea3e53d7 - std::panicking::begin_panic_handler::{{closure}}::ha6d5d75e3abde1ad
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:588:13
  12:     0x7fbeea3e3c64 - std::sys_common::backtrace::__rust_end_short_backtrace::hae84a849d394aed2
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:138:18
  13:     0x7fbeea3e5109 - rust_begin_unwind
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:584:5
  14:     0x7fbeea25ff33 - core::panicking::panic_fmt::hf5f62850456bf94c
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/panicking.rs:142:14
  15:     0x7fbeea260023 - core::result::unwrap_failed::haedd83c0cc63aa9c
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/result.rs:1805:5
  16:     0x7fbeea260d0e - core::result::Result<T,E>::expect::he50d671f66136108
  17:     0x7fbeea260ed8 - natpmp_setup::main::h1a6c59fac8b76ec2
  18:     0x7fbeea264e43 - std::sys_common::backtrace::__rust_begin_short_backtrace::ha1dace6a5cf795e6
  19:     0x7fbeea265129 - std::rt::lang_start::{{closure}}::h7496ce2b271880d0
  20:     0x7fbeea3da5f2 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h9b744c0fefdc9393
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/ops/function.rs:280:13
  21:     0x7fbeea3da5f2 - std::panicking::try::do_call::h59d084564bdc9764
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:492:40
  22:     0x7fbeea3da5f2 - std::panicking::try::h2fac5eedc085d56a
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:456:19
  23:     0x7fbeea3da5f2 - std::panic::catch_unwind::h9421814242205f2b
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panic.rs:137:14
  24:     0x7fbeea3da5f2 - std::rt::lang_start_internal::{{closure}}::h8a22d2e3a34292ac
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/rt.rs:128:48
  25:     0x7fbeea3da5f2 - std::panicking::try::do_call::h1de2ec4bfbe13450
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:492:40
  26:     0x7fbeea3da5f2 - std::panicking::try::hcd7e19b491fbdedd
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:456:19
  27:     0x7fbeea3da5f2 - std::panic::catch_unwind::he7eb357483743dba
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panic.rs:137:14
  28:     0x7fbeea3da5f2 - std::rt::lang_start_internal::h37683b205c9af4e4
                               at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/rt.rs:128:20
  29:     0x7fbeea261db2 - main
@fusetim
Copy link
Owner

fusetim commented Jul 31, 2023

Il me semble qu'il s'agit de la configuration que j'utilise (je ne peux pas confirmer en ce moment cela dit). Avez-vous testé si la connexion VPN est bien établie ? De plus, avez-vous bien utilisé une configuration Wireguard avec la fonctionnalité Port-Forwarding (et un serveur P2P) ?

@skuizy
Copy link
Contributor Author

skuizy commented Jul 31, 2023

Oui la connexion est bien établie, je vois mon IP changer en exécutant la commande curl https://am.i.mullvad.net/ip
J'ai choisi la connexion Wireguard FR#172 qui est indiquée P2P en activant le NAT-PMP depuis la page de génération de configuration.

@fusetim
Copy link
Owner

fusetim commented Aug 10, 2023

Après vérification, je ne peux malheureusement pas aider sur ce point car je n'utilise pas la même configuration que vous.
Pour ma part, la création du tunnel wireguard a lieu en dehors de docker (en utilisant directement les Linux Namespace et le client wireguard) puis il est déplacé sur le Network Namespace du conteneur au démarrage.

Il s'agit donc sans doute d'un problème de structure de réseau de votre coté.

       ip -n vpn addr
       echo Container PID: $(docker inspect -f '{{.State.Pid}}' "vpn-container")
       ip -n vpn link set wg0 netns $(docker inspect -f '{{.State.Pid}}' "vpn-container")
       echo "Wireguard interface moved!"
       docker exec --privileged vpn-container ip addr add 10.2.0.2/32 dev wg0
       echo "Wireguard addr added!"
       docker exec --privileged vpn-container ip link set wg0 up
       echo "Wireguard link set up!"
       docker exec --privileged vpn-container ip route replace default via 10.2.0.2
       echo "Wireguard default route setup!"

@fusetim fusetim added the question Further information is requested label Aug 10, 2023
@skuizy
Copy link
Contributor Author

skuizy commented Aug 11, 2023

OK, je vais monter une machine avec une configuration similaire (wireguard en baremetal et qbittorrent en docker).
Je verrais ce que ça donne.

Sinon, est-il possible de faire la même chose que le script rust depuis un shell ? Peut-être que le retour des commandes nous fournira des informations.

@fusetim
Copy link
Owner

fusetim commented Aug 12, 2023

Il existe des clients (en cli) qui pourrait potentiellement permettre ça. Néanmoins ils sont pour la plupart non maintenu et il peut être dur d'en trouver un fiable.
Je suis à peu près sur que le problème vient du fait que docker crée un réseau virtuel entre les deux containers en utilisant un bridge qui empêche d'utiliser l'interface NATPMP.

@skuizy
Copy link
Contributor Author

skuizy commented Aug 12, 2023

J'ai en effet réussi après avoir pas mal galéré à monter le tuyau WG... Je pose les commandes utilisées ici, au cas où :

docker-compose up -d
ip netns add vpn
ip -n vpn link set lo up
ip link add tun0 type wireguard
ip link set tun0 netns vpn
ip netns exec vpn wg setconf tun0 /etc/wireguard/wg1.conf
ip -n vpn link set tun0 netns $(docker inspect -f '{{.State.Pid}}' "qbittorrent")
docker exec --privileged qbittorrent ip addr add 10.2.0.2/32 dev tun0
docker exec --privileged qbittorrent ip link set tun0 up
docker exec --privileged qbittorrent ip route replace default dev tun0

J'ai ensuite dû désactiver l'autehntification pour le client localhost et je tombe sur une nouvelle erreur : #3

J'ai donc ouvert le port manuellement et pu vérifié qu'il était atteignable via la commande curl https://am.i.mullvad.net/port/xxxxx

@skuizy
Copy link
Contributor Author

skuizy commented Aug 12, 2023

Je suis à peu près sur que le problème vient du fait que docker crée un réseau virtuel entre les deux containers en utilisant un bridge qui empêche d'utiliser l'interface NATPMP.

En fait je ne configure pas de bridge entre mes deux containers, ils utilisent le même réseau. Voici un extrait du docker-compose utilisé :

version: "3.8"
services:
  wireguard:
    image: linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    env_file: .env
    volumes:
      - ./wireguard/config:/config
      - /usr/src:/usr/src
    ports:
      - "51820:51820/udp"   #wireguard
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: always
    networks:
      backend:
        aliases:
          - qbittorrent
  qbittorrent:
    image: linuxserver/qbittorrent
    container_name: qbittorrent
    env_file: .env
    environment:
      - PUID=33
      - PGID=33
      - UMASK_SET=002
      - DOCKER_MODS=ghcr.io/fusetim/external_natpmp_qbittorrent:8b9e4e0a4e832433b5a974a5bbde355cb916d16a
      - NATPMP_GATEWAY_IP=10.2.0.1
    volumes:
      - ./qbittorrent/config:/config
    network_mode: "service:wireguard"
    depends_on:
      - wireguard
    restart: always

@skuizy
Copy link
Contributor Author

skuizy commented Aug 12, 2023

J'ai demandé de l'aide sur le forum de linuxserver : https://discourse.linuxserver.io/t/wireguard-nat-pmp-support/7915

@fusetim fusetim added the wontfix This will not be worked on label Aug 13, 2023
@fusetim fusetim closed this as not planned Won't fix, can't repro, duplicate, stale Oct 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

2 participants