port number - una - ¿Cómo decides qué puerto usar?
vlan tagged untagged wikipedia (8)
Esto es un poco subjetivo, ya que no hay reglas por así decirlo. Cada vez que creo un servidor, pienso para mí, "¿Cuál es el mejor puerto para usar?" Supongo que una respuesta es "Cualquiera, siempre que el usuario pueda cambiarla". Entonces, ¿cómo deciden los demás cómo elegir el puerto predeterminado? Personalmente, me gusta usar algo como 8000 y algo si está relacionado con HTTP, y he notado que esta es una tendencia bastante común. Pero, ¿y si 8000 ya está en uso? Use 8001? Parece un poco ad-hoc, y supongo que sí.
Claramente, no soy el primero en hacer esta pregunta; IANA mantiene una lista de números de puerto ... Lo que me lleva al rango no asignado (48620-49150). Supongo que deberíamos usarlos realmente, pero ¿por qué no lo hacen más programadores? ¿Cómo decides qué usar? si todos comenzaran en el n. ° 1, todos estaríamos usando el 48620.
¿Ha respondido a su propia pregunta? Elija cualquier puerto no asignado y permita que el usuario lo cambie.
Algunos puertos fáciles de recordar y apropiadamente nerds no asignados (por IANA):
27182 (e)
31415 (pi)
60221 (avagadro)
Creo que prácticamente has respondido tu pregunta tanto como es posible; no hay realmente una regla estricta que puedas seguir aquí más allá de lo que has dicho. Pero en general:
- Mire la lista de IANA y elija un puerto que no esté en uso.
- Elija un número de puerto que sea fácil de recordar.
- No arregle el número de puerto en el código. Algún otro producto puede haber escogido el mismo puerto que usted y nunca se sabe cuándo tendrá que coexistir en un servidor, así que ponga el número de puerto en un archivo de configuración en alguna parte para que pueda ser modificado sin una recompilación si es necesario. La capacidad de cambiar el número de puerto también puede ser útil para atravesar los firewalls sin tener que reconfigurarlos. (Siempre puede usar el valor predeterminado si el archivo de configuración no existe).
- Existe un argumento de que no desea elegir algo demasiado alto, ya que puede entrar en conflicto con el rango utilizado para los puertos efímeros . No es probable que te afecte esto, pero es un problema difícil de depurar cuando sucede.
(Y si quiere un consejo para elegir números de puerto memorables, una vez trabajé con alguien que recordaba los números de puerto en función de las extensiones telefónicas de sus compañeros de trabajo).
Después de una búsqueda rápida en Google para asegurarme de que está claro, generalmente solo elijo un número de importancia personal.
Durante la prueba ... siempre el puerto n. ° 666;)
Prefiero de esta manera: (siguiente código python)
#!/usr/bin/env python3
import random as R
r = R.SystemRandom()
print([r.randrange(1024, 65535) for x in range(4)])
Y luego elijo el número que más me gusta. Por supuesto, cambie el rango si tiene límites más estrictos sobre los números aceptables.
Qué tal si:
defaultPort = (new Random()).Next(48620, 49150);
Sugiero que nunca utilices un puerto que sea un número grande como 5 dígitos, ya que podría afectar a otros procesos del sistema de operación y asignar los puertos Efímeros. Comenzarías a obtener ''Errores ya en uso'' debido a sus limitaciones.