2008-09-25 10 views
88

Lors du développement d'une application qui écoutera sur un port TCP/IP, comment devrait-on choisir un port par défaut? Supposons que cette application sera installée sur de nombreux ordinateurs, et que l'on évite les conflits de port.Comment devrait-on choisir un port TCP/IP par défaut pour un nouveau service?

+0

Ceci est une meilleure réponse ici: http://stackoverflow.com/questions/10476987/best-tcp-port-number-range-for-internal-applications – matt2000

Répondre

41

Go here et choisir un port avec la description Unassigned

+8

Vous suggérez qu'il choisit un port de moins de 100? – mpen

+1

Lequel dois-je choisir? – Owen

+0

Si tous les développeurs utilisent cette logique, cela signifierait que tous les nouveaux services se rassemblent autour des quelques ports non affectés. Quelle serait la probabilité qu'un service s'exécute sur un port affecté par rapport à un port non affecté? (Désolé si je n'expose pas un secret commercial :) – hultqvist

26

Première étape: regardez IANA listing:

Vous y verrez à la queue de la liste

« La dynamique et/ou privés Les ports sont ceux de 49152 à 65535 "

alors ce sont vos meilleurs paris, mais une fois que vous en choisissez un, vous pouvez toujours google dessus pour voir s'il y a une application assez populaire hat a déjà "revendiqué" cela

+4

Mais ne pas utiliser un port dynamique me laisser ouvert aux conflits de port intermittents (bien que rares)? Il est peut-être plus sûr d'utiliser un port de la plage enregistrée qui n'est pas affecté ou affecté à une application obscure. –

+4

sauf si vous enregistrez explicitement votre choix de port auprès de l'IANA, vous exécutez les mêmes probabilités de conflit en utilisant un "UNASSIGNED" je pense. En fait, car il ya beaucoup de non affectés dans le bas de gamme, ceux-ci seraient probablement plus susceptibles IMHO – curtisk

+2

Toujours commencer avec la plage non attribuée, avec l'option d'un port configurable utilisateur/admin pour gérer les conflits possibles. SEULEMENT si votre application est largement utilisée (pensez à BitTorrent, ou à un autre usage important), vous devriez vraiment envisager de postuler pour un port assigné. Sinon, restez hors de la plage assignée. Si c'est pour quelque chose strictement interne/personnel alors documentez simplement les ports utilisés par divers services et vous devriez aller bien tant que les gens peuvent les rechercher quelque part en ligne. Pensez à la plage privée/dynamique similaire aux IP non routables - ils sont parfaits pour une utilisation privée ou de petite taille. – jefflunt

0

Eh bien, vous pouvez référencer quelques numéros de port couramment utilisés here et essayez de ne pas utiliser quelqu'un d'autre. Si par "ouvrir au grand public" vous voulez dire que vous ouvrez des ports sur vos propres systèmes, je discuterais avec vos administrateurs système des ports avec lesquels ils se sentent à l'aise de le faire.

2

Vous voulez probablement éviter d'utiliser les ports de this list (Wikipedia). Je voudrais juste choisir un, et une fois que l'application est utilisée par les masses, le numéro de port sera reconnu et inclus dans ces listes.

5

La liste la plus complète des numéros de port officiels IANA et les numéros de port non officielles, je le sais nmap-services.

5

Si par largement utilisé, vous voulez dire que vous voulez protéger contre d'autres personnes qui l'utilisent à l'avenir, vous pouvez demander à avoir marqué comme réservé à votre application par l'IANA here

1

Le choix d'un un non attribué La liste de l'IANA est généralement suffisante, mais si vous parlez d'un produit publié commercialement, vous devriez vraiment demander à l'IANA de vous en attribuer un. Notez que le processus est simple mais lent; la dernière fois que j'ai postulé, il a fallu un an.

1

S'il s'agit d'une application que vous prévoyez d'utiliser largement, enregistrez un numéro here pour que personne d'autre ne l'utilise.

Sinon, il suffit de choisir un inutilisé au hasard.

Le problème avec l'utilisation de l'un dans la plage dynamique est qu'il peut ne pas être disponible car il peut être utilisé pour un numéro de port dynamique.

0

Choisissez un port par défaut qui n'interfère pas avec les démons et les serveurs les plus courants. Assurez-vous également que le numéro de port n'est pas répertorié comme un vecteur d'attaque pour certains virus - certaines entreprises ont des politiques strictes où ils bloquent ces ports, peu importe quoi. Last but not least, assurez-vous que le numéro de port est configurable.

2

Comme d'autres le mentionnent, vérifiez IANA.

Ensuite, vérifiez vos systèmes locaux/etc/services pour voir si certains ports personnalisés sont déjà utilisés.

Et s'il vous plaît, ne pas le coder en dur. Assurez-vous qu'il est configurable, d'une façon ou d'une autre - d'une manière ou d'une autre - si vous ne voulez pas que plusieurs développeurs utilisent leurs propres versions localisées en même temps.

+1

IATA? Tu veux dire IANA? – bortzmeyer

Questions connexes