Utilisation des ports spécifiques pour webRTC
Lors de la création d'un peer to peer de raccordement audio à l'aide de webRTC, le serveur STUN nous utilisons sera de retour l'adresse IP publique si un utilisateur est derrière un routeur. Maintenant, dans la GLACE, les objets, je peux voir que la rport est toujours quelque chose entre 50000 et.
Est-il possible d'utiliser un port spécifique, de sorte que l'utilisateur n'a pas à ouvrir tous les ports?
Pas lorsque vous utilisez le navigateur implémentations. Toutefois, si vous écrivez avec l'API native, je crois que vous pouvez limiter les ports.
Êtes-vous sûr que le port est défini par le navigateur, et NON par le serveur STUN?
La GLACE candidat rassembleur utilise un port spécifique de la gamme et n'utilise que des ports de cette plage(ou c'est juste n'IMPORTE quel port).
Êtes-vous sûr que le port est défini par le navigateur, et NON par le serveur STUN?
La GLACE candidat rassembleur utilise un port spécifique de la gamme et n'utilise que des ports de cette plage(ou c'est juste n'IMPORTE quel port).
OriginalL'auteur Armin Hierstetter | 2015-04-10
Vous devez vous connecter pour publier un commentaire.
Je pense que vous avez un malentendu. Le point de l'ensemble de l'ÉTOURDISSEMENT et de la GLACE (y compris ses WebRTC dérivés) existe pour éviter que personne n'ait à ouvrir un port sur leur NAT. Au lieu de cela, d'ÉTOURDISSEMENT et de la GLACE de façon dynamique ouvrir le port.
Voici comment cela fonctionne (dans une très brève description).
Client ouvre une socket sur un port aléatoire (par exemple 50001)
Contacts STUN server à l'aide de socket pour découvrir l'adresse IP externe:mappage de port pour ce socket. (par exemple 192.168.1.2:50001 cartes 1.2.3.4:50001). Les Ports ne sont pas nécessairement correspondance entre l'interne et à l'externe des adresses, mais ils le font habituellement, donc je vais continuer avec que, pour cet exemple.
Par le biais d'un mécanisme externe (SIP, XMPP, Jingle, des tasses avec des chaînes de caractères), le candidat liste d'adresses de deux nœuds sont échangés. Cela inclut tous connu interne et externe des adresses collectées (par exemple 192.168.1.2:50001 et 1.2.3.4:50001).
En utilisant le même socket ouvert dans l'étape 1, les deux côtés envoyer (STUN) messages (paquets UDP) directement entre les uns des autres. Le premier couple de messages peuvent être bloquée par le routeur/pare-feu. Mais parce que d'un côté lancé un paquet sortant à l'adresse distante, à la suite de paquets à partir de cette adresse sont autorisés à retourner dans. Ceci est appelé la "perforation". Par conséquent, le port est dynamiquement ouvert sans le routeur avoir besoin d'une configuration spécifique.
Espère que cette aide.
Si la connexion échoue lorsque seulement un serveur STUN est fourni, mais réussissent quand son TOUR est présent, il est possible que votre routeur/ISP est à se comporter comme un "NAT symétrique" (aka adresse dépendante de la cartographie). Ce qui est un moyen technique de dire que le mappage de port comportement est imprévisible. Lorsque vous ouvrez les ports sur votre NAT directe à votre PC/de l'appareil, le mappage de port devient cohérent.
Aller courir
stunclient --mode full stun.stunprotocol.org
en utilisant le code ici pour valider votre NAT comportement.Qu'est-ce que les tasses avec des chaînes de mécanisme de contrôle?... Doh!
Quelque chose à noter ici est la différence entre les entrants ports de sortie. Les ports doivent être ouverts sortante, qui est de savoir comment l'étape 1 fonctionne. Si les ports de sortie sont bloquées, cela ne fonctionne pas, et la perforation ne peut pas travailler.
OriginalL'auteur selbie
Vous ne pouvez pas par programmation, sauf si vous utilisez l'API webrtc dans votre propre application. Le navigateur va chercher ports locaux spécifiques à partir d'une gamme à l'échelle locale; alors il vous informera sur eux dans les SDP et de la GLACE de l'information sur les candidats.
Serveur STUN permet seulement de savoir si un client est derrière un NAT/pare-feu; et puis la GLACE se sert de cette information dans l'établissement de peer-to-peer connexion.
J'ai entendu quelque part, il y a peut être un moyen de contrôler que le port de la gamme via Chrome modèles de stratégie(utilisée par les entreprises pour limiter les paramètres de Chrome) - http://www.chromium.org/administrators/policy-templates. Il pourrait utile dans la recherche...
OriginalL'auteur Aki