2009-08-06 7 views
3

Je souhaite me connecter à un système situé derrière un routeur. Je connais l'adresse publique du routeur ainsi que l'adresse IP privée (fixe toujours) du système. Comment puis-je établir une connexion socket avec l'ip privé?connexion à un ip privé

+0

C'est ce qu'on appelle "privé" pour une raison ... – skaffman

Répondre

4

C'est pourquoi certaines personnes disent qu'elles sont derrière un «pare-feu» lorsqu'elles sont derrière un routeur. Les virus malveillants d'Internet ne peuvent exploiter aucun logiciel sur un ordinateur derrière un routeur (à condition que l'administrateur du routeur ne l'ait pas configuré de manière amusante, par exemple en activant DMZ).

Vous avez encore quelques options:

  • Parlez-en à l'administrateur du routeur et lui faire transmettre un port pour vous
  • Prenez le routeur sur et mettez votre ordinateur « cible » où votre routeur a été, ou d'activer DMZ (cela n'a de sens que s'il y avait un seul ordinateur derrière le routeur). Warrning: installez d'abord un pare-feu sur l'ordinateur cible!
  • Tournez la prise de 180 degrés. Assurez-vous l'ordinateur derrière un routeur établir la connexion au serveur qui a une adresse IP publique
  • Utilisez quelque chose comme UPnP, si votre routeur supporte
  • Obtenir une adresse IP dédiée pour votre ordinateur et configurer le routeur pour passer tout le trafic vers cette adresse IP à votre ordinateur (ceci est similaire à DMZ, mais cela fonctionnerait si vous avez plus d'un ordinateur derrière le routeur). Warrning: installez d'abord un pare-feu sur l'ordinateur cible!
  • Utiliser la traversée NAT. Il y a un très bon article sur le sujet here. La version simplifiée est que le client établit une connexion à un serveur distant. Le serveur peut voir le numéro de port ouvert sur le routeur du client et ce port est assigné à la machine du client, donc il (ou un autre ordinateur partageant cette information) peut établir la connexion à ce port et atteindre l'application du client. Warrning: cela ne fonctionne pas avec tous les routeurs. Certains routeurs ne le laisseront pas faire.
+3

Juste une note. "NAT-piercing" comme mentionné ci-dessus est généralement appelé traversée NAT :) http://en.wikipedia.org/wiki/NAT_traversal –

1

Il s'agit plus d'une question de configuration du routeur par opposition à votre programme actuel. Si le routeur n'est pas configuré pour transférer le trafic vers le système privé, il est impossible de le forcer à vous connecter. Le système privé doit plutôt ouvrir la connexion lui-même.

1

Le plus simple est probablement de forward the port à partir du système que vous souhaitez vous connecter via le routeur.

1

Strictement parlant, la réponse à votre question est "vous ne pouvez pas". Vous pouvez toutefois activer DNAT (traduction d'adresses réseau de destination) sur votre routeur. Vous vous connectez à un certain port sur le routeur, et il transmet la connexion à l'ip interne. L'adresse IP interne (et le port) sont configurés dans les paramètres du routeur et ne sont pas connus par le client qui se connecte.

Questions connexes