Dans la plupart des cas, vous ne pourrez pas établir de connexion entrante en utilisant les données mobiles pour les raisons suivantes CGNAT et les pare-feu au niveau des FAI, comme l'explique acejavelin en commentaire. Pour connaître le problème en détail et savoir comment le contourner, voir Comment se connecter à Android via SSH sur une IP publique 3G/4G ?
Cependant, si vous pouvez accéder à votre téléphone depuis l'internet, étendre cet accès à un hôte connecté (un PC dans votre cas) n'est pas un problème. Le transfert de port se fait avec les routeurs, et lorsqu'il est utilisé comme un point d'accès Wi-Fi (ou avec le tethering USB), votre téléphone agit en fait comme un routeur.
SOLUTION à la racine :
Afin de transférer un port, vous devez effectuer une traduction d'adresse de destination ( DNAT ) en utilisant l'outil de pare-feu intégré du noyau Linux en espace utilisateur iptables
.
Tout d'abord, assurez-vous que le noyau est configuré pour transférer le trafic Internet (déjà configuré lorsque le hotspot est activé) :
~# echo 1 >/proc/sys/net/ipv4/ip_forward
Disons que l'adresse IP assignée par le hotspot au PC est 192.168.43.10
et vous voulez transférer le port par défaut de SSH ( 22
):
~# iptables -t nat -I PREROUTING -p tcp --dport 22 -j DNAT --to 192.168.43.10
Il s'agit de la forme la plus simple de transfert de port.
Si la POLITIQUE par défaut de la chaîne FORWARD dans la table FILTER n'est pas ACCEPT, définissez des règles explicitement pour accepter les paquets transférés :
~# iptables -I FORWARD -p tcp -d 192.168.43.10 --dport 22 -j ACCEPT
Acceptez également le trafic sortant transféré si nécessaire.
SOLUTION NON-Root :
Sur les appareils non enracinés, vous pouvez utiliser adb
ou un autre minimum Serveur TCP/UDP como netcat
o socat
pour le transfert de port. Notez que cela ne fonctionnera pas pour les ports inférieurs à 1024 . Pour transférer le port 2222
:
~$ adb reverse tcp:2222 tcp:2222
Ou au téléphone :
~$ nc -lk -p 2222 -e nc 192.168.43.10 2222
* nc
est une applet busybox. Mais assurez-vous d'obtenir le bon binaire, il y a de multiples mises en œuvre de netcat
.
* Utiliser -u
option pour transférer le port UDP.
Cependant nc
n'accepte qu'une seule connexion à la fois. Utilisez socat
o ncat
pour des options plus avancées, par exemple de Termux :
~$ socat tcp-l:2222,fork,reuseaddr tcp:192.168.43.10:2222
Ver Utilisation de netcat pour le transfert de port .
Il existe également des applications comme Fwd (c'est un logiciel libre, je n'ai aucune affiliation) destiné à la redirection de port.
SOURCE :