Je veux accéder à un Raspberry Pi Zero W sur le réseau local via Traversée du NAT . Je suivais ce tutoriel (en chinois) mais je rencontre le problème décrit ci-dessous.
L'idée est de transférer le port SSH sur le Raspberry Pi local vers une machine distante avec une IP publique, puis d'accéder au Pi à partir de là. Pour des raisons de sécurité, j'ai remplacé les valeurs réelles par nalzok@remote-ip
.
Sur Raspberry Pi (accès depuis le réseau local)
pi@nalzoks-pi:~ $ autossh -M 30000 -o "StrictHostKeyChecking=false" -o "ServerAliveInterval 10" -o "ServerAliveCountMax 3" -NR 20000:localhost:22 nalzok@remote-ip
Sur le serveur distant
Je n'ai aucun problème à me connecter au Pi depuis le serveur distant.
nalzok@iZuf68c45z6sk19lln4zvsZ:~$ ssh -p20000 pi@localhost
Linux nalzoks-pi 4.19.66+ #1253 Thu Aug 15 11:37:30 BST 2019 armv6l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Sep 8 10:12:30 2019 from ::1
pi@nalzoks-pi:~ $
Sur mon ordinateur (en dehors du réseau local)
Cependant, je ne peux pas y accéder directement depuis mon ordinateur.
$ ssh -p20000 pi@remote-ip
ssh: connect to host remote-ip port 20000: Connection refused
Sur le serveur distant
Je suis pratiquement sûr que le pare-feu est ouvert pour les ports 20000 et 30000 sur le serveur distant. En essayant de me dépanner, j'ai réalisé que ces ports ne sont disponibles que pour l'accès local.
nalzok@iZuf68c45z6sk19lln4zvsZ:~$ sudo lsof -i -P -n | grep LISTEN
[sudo] password for nalzok:
sshd 601 root 3u IPv4 13223 0t0 TCP *:22 (LISTEN)
sshd 12503 root 8u IPv4 879255 0t0 TCP 127.0.0.1:1234 (LISTEN)
sshd 13026 nalzok 9u IPv4 885817 0t0 TCP 127.0.0.1:30000 (LISTEN)
sshd 13026 nalzok 10u IPv4 885818 0t0 TCP 127.0.0.1:20000 (LISTEN)
Comment ouvrir le port 20000 pour l'accès public ?