Pouvez-vous forcer un port en avant sans accès au routeur et UPNP probablement désactivé?

StackOverflow https://stackoverflow.com/questions/19836475

  •  25-07-2022
  •  | 
  •  

Question

Je veux transférer un port pour mon serveur Web sur un routeur auquel je n'ai pas accès. Je doute fortement que UPNP soit activé.

Était-ce utile?

La solution

En fait, vous pouvez (en quelque sorte)

C'est un peu compliqué et ne fonctionnera pas tout le temps, mais voici l'essentiel de son fonctionnement:

Donné:

Routera avec IP publique 1.2.3.4

PC1 avec IP privé ABCD (derrière le routeur A)

Routerb avec IP publique 5.6.7.8

PC2 avec IP privé Efgh (derrière le routeur B)

Maintenant, étant donné une solution idéale (c'est-à-dire pas de pat) ...

Étape A:

Envoyez n'importe quel message de PC1 sur n'importe quel port (10000 pour cet exemple) à l'IP publique pour Routerb (4.5.6.7). Cela enregistrera ABCD: 10000 -> 4.5.6.7:10000 sur le NAT et PAT pour Routera. Routerb jettera ce paquet (comme prévu car il n'a pas été demandé).

Étape B: En même temps, envoyez en continu un paquet de PC2 à l'IP publique du routeur A (1.2.3.4) sur le même port (10000). Cela enregistrera EGFH: 10000 -> 1.2.3.4:10000 sur Nat et Pat de Routerb.

Étape C:

Maintenant, voici où se produit la magie:

PC2 envoie constamment du paquet à Routera, gardant le «trou» ouvert dans Routerb pour qu'une réponse revienne. Lorsque PC1 envoie son paquet unique à Routerb, il apparaîtra à Routerb en réponse et sera donc transmis à PC2. Une fois que PC2 reçoit cette «réponse», assurez-vous qu'un paquet de plus s'éteint et arrêtez d'envoyer des paquets continus. Ce dernier paquet agira comme une «réponse» à PC1 et passera par le «trou» créé à l'étape A. et le tour est joué! Vous avez maintenant NAT transversal. Il vous suffit d'envoyer un seul paquet chaque minute environ les deux directions pour garder le «trou» ouvert.

Remarque: Cela ne fonctionne qu'avec UDP car il est sans connexion (les paquets supprimés sont OK).

Maintenant, presque tous les routeurs utilisent PAT, vous devez donc «deviner» quel port à «répondre» à la plupart des routeurs fera un décalage de + -10 (IABCD: 10000 -> 5.6.7.8:10010).

Essayez simplement quelques-uns dans cette plage (-10 à +10 jusqu'à ce que vous obteniez une réponse)

Les autres routeurs sont aléatoires sur leur tapis. Si c'est le cas, vous êtes vissé ... essayez l'autre direction (c'est-à-dire init la connexion dans l'autre direction). Si cela échoue, vous ne pouvez pas vous connecter ... désolé)

Autres conseils

Donc, d'après ce que je comprends, vous avez un serveur Web en cours d'exécution où les choses doivent être transmises et un port de routeur auquel vous n'avez aucun accès; Et vous voulez connecter ces deux.

Je doute fortement qu'il y ait un moyen de le faire, si seulement vous aviez un accès sudo à votre routeur, vous pouvez utiliser les iptables pour rediriger

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top