Comment décidez-vous quel port utiliser?

C’est un peu subjectif, car il n’y a pas de règles pour ainsi dire. Chaque fois que je crée un serveur, je me dis: “Quel est le meilleur port à utiliser?” Je suppose qu’une réponse est “Any, tant que l’utilisateur peut le changer”. Alors, comment tout le monde décide-t-il comment choisir le port par défaut? Personnellement, j’aime utiliser quelque chose comme 8000-quelque chose si c’est lié à HTTP, et j’ai remarqué que c’est une tendance assez courante. Mais que faire si 8000 est déjà utilisé? Utilisez 8001? Cela semble un peu ad hoc, et je suppose que c’est le cas.

Clairement, je ne suis pas le premier à avoir posé cette question. L’IANA tient à jour une liste de numéros de port … Ce qui m’amène à la gamme non assignée (48620-49150). Je suppose que nous devrions vraiment les utiliser, mais pourquoi pas plus de programmeurs le font? Comment décidez-vous qui utiliser? Si tout le monde commençait à # 1, alors nous utiliserions tous 48620.

Je pense que vous avez répondu à votre question autant que possible; il n’y a pas vraiment de règle ssortingcte que vous pouvez suivre ici, au-delà de ce que vous avez dit. Mais généralement:

  • Regardez la liste IANA et choisissez un port qui n’est pas utilisé.
  • Choisissez un numéro de port facile à retenir.
  • Ne corrigez pas le numéro de port dans le code. Certains autres produits ont peut-être choisi le même port que vous et vous ne savez jamais quand vous devrez coexister sur un serveur. Placez donc le numéro de port dans un fichier de configuration afin de pouvoir le modifier sans recompilation si nécessaire. La possibilité de modifier le numéro de port peut également être utile pour traverser les pare-feu sans avoir à les reconfigurer. (Vous pouvez toujours choisir la valeur par défaut si le fichier de configuration n’existe pas.)
  • Il y a un argument selon lequel vous ne voulez pas choisir quelque chose de trop élevé car vous pouvez entrer en conflit avec la plage utilisée pour les ports éphémères . Ce n’est pas si probable que vous allez être touché par cela, mais c’est un problème difficile à déboguer quand cela se produit.

(Et si vous voulez un conseil pour choisir des numéros de port mémorables, j’ai déjà travaillé avec quelqu’un qui se souvenait des numéros de port basés sur les extensions téléphoniques de ses collègues.)

Certains ports faciles à mémoriser et non affectés (par IANA):

27182 (e)

31415 (pi)

60221 (avagadro’s)

Pendant le test … toujours le port # 666;)

Que diriez-vous:

defaultPort = (new Random()).Next(48620, 49150); 

Après une recherche rapide sur Google pour s’assurer que tout est clair, je choisis généralement un nombre d’importance personnelle.

Vous avez répondu à votre propre question? Choisissez n’importe quel port non atsortingbué et autorisez l’utilisateur à le modifier.

Je préfère cette façon: (code python suivant)

 #!/usr/bin/env python3 import random as R r = R.SystemRandom() print([r.randrange(1024, 65535) for x in range(4)]) 

Et puis je choisis le numéro que j’aime le plus. Ou bien, changez l’échelle si vous avez des limites plus ssortingctes quant aux nombres acceptables.

Je suggère de ne jamais utiliser un port avec un grand nombre comme 5 chiffres, car il pourrait bash un autre processus d’exploitation et affecter les ports éphémères. Vous commenceriez à obtenir des «erreurs déjà utilisées» en raison de ses limites.