¿Cómo debo seleccionar el número de puerto para una nueva herramienta?

13

Estoy creando una herramienta de colaboración interna que utilizará un servidor central (en una intranet) y uno o más puertos para la comunicación del socket a los clientes. Sé que muchos puertos están reservados para propósitos particulares y otros se usan convencionalmente para ciertos tipos de tráfico.

¿Cómo debo elegir un puerto predeterminado que sea menos probable que haya sido "reclamado" por otra persona para su herramienta? ¿Existe una base de datos que identifique todo el uso del puerto conocido (incluso no convencional)?

Jace Browning
fuente
3
Esto generalmente es solo un problema si algo ya está usando el puerto en el servidor. Sin embargo, el puerto debe ser configurable. He visto que mucho software tiene puertos codificados, que no es lo que quieres.
devicenull
@devicenull Definitivamente tendré la opción de anular el valor predeterminado.
Jace Browning
3
Si su barba es lo suficientemente gris, puede usar RPC y registrar su propio punto final. msdn.microsoft.com/en-us/library/windows/desktop/…
Ryan Ries
2
A menos que tenga una buena razón para no hacerlo, es mejor usar los protocolos existentes donde pueda. a) Es natural pensar que puede hacer un mejor trabajo, para la mayoría de las personas, eso no es cierto. Pero incluso cuando puede, ¿es lo suficientemente mejor para contrarrestar? B) las herramientas / dispositivos de red ya están configurados para funcionar con los estándares existentes. Agregar nuevos tiene una barrera y una gran cantidad de trabajo para implementar.
JamesRyan
2
Para algo que es colaboración interna, cualquier cosa> 1024 y <32768 (debería proteger contra los enlaces de puertos efímeros) y que NO figuran en el registro de puertos de la IANA estaría bien, siempre que se comunique de manera efectiva a sus departamentos internos que ha tomado el puerto.
Matthew Ife el

Respuestas:

16

Sí, IANA mantiene el servicio oficial y el registro de número de puerto .

El proceso para obtener un número de puerto asignado a usted está documentado en RFC 6335 . Se requiere un proceso de revisión para cualquier asignación de puerto, pero es mucho más estricto para los puertos <1024; tales asignaciones requieren (entre otras cosas) que su protocolo esté documentado en un RFC.

(Tenga en cuenta que este proceso es relativamente nuevo y que hay muchos puertos asignados que fueron protegidos).

Para <1024, los puertos 1021 y 1022 están reservados para experimentación; por encima de eso, para experimentar simplemente puede usar un puerto dinámico> = 49152.

Michael Hampton
fuente
1
Atajo para buscar "sin asignar": iana.org/assignments/service-names-port-numbers/…
Jace Browning
3

En la mayoría de los casos, es mejor usar HTTP, ya que tarde o temprano habrá que atravesar un firewall. La mayoría de los sistemas operativos permiten que el espacio de direcciones HTTP se divida entre procesos.

Ian Ringrose
fuente
2
Estoy confundido, ¿no puedo usar HTTP sobre cualquier puerto? No quiero usar el valor predeterminado :80o :8080porque existe una gran posibilidad de que ya estén en uso. ¿Mi pregunta todavía no es válida?
Jace Browning
@JaceBrowning, sí puedes, pero usar cualquier otro puerto es solo un poco de historia :-). Cualquier sistema operativo decente le permitirá dividir el espacio de nombres HTTP entre las aplicaciones.
Ian Ringrose