Al desarrollar una aplicación que escuche en un puerto TCP/IP, ¿cómo debería uno elegir un puerto predeterminado? Suponga que esta aplicación se instalará en muchas computadoras y que se desea evitar conflictos de puertos.¿Cómo se debe elegir un puerto TCP/IP predeterminado para un nuevo servicio?
Respuesta
Ir here y recoger un puerto con la descripción Unassigned
¿Está sugiriendo que elija un puerto de menos de 100? – mpen
¿Cuál debería elegir? – Owen
Si todos los desarrolladores siguen esta lógica, significa que todos los servicios nuevos se agruparán alrededor de los pocos puertos no asignados. ¿Cuál sería la probabilidad de que un servicio se ejecute en un puerto asignado frente a un puerto no asignado? (Perdón si no expongo algún secreto comercial :) – hultqvist
Primer paso: mirar a IANA listing:
Allí podrá ver en la cola de la lista
"La Dinámica y/o privada Los puertos son los de 49152 a 65535 "
por lo que esas serían sus mejores apuestas, pero una vez que elija una, siempre puede buscar en ella para ver si hay una aplicación lo suficientemente popular t hat ya lo ha "reclamado"
¿Pero no usar un puerto dinámico me dejaría abierto a conflictos de puertos intermitentes (aunque raros)? Tal vez sea más seguro usar un puerto en el rango registrado que no está asignado o asignado a una aplicación oscura. –
a menos que registre explícitamente su elección de puerto con IANA, usted corre las mismas probabilidades de conflicto usando un "SIN ASIGNACIÓN", diría. En realidad, dado que hay muchos sin asignar en el extremo inferior, probablemente sea más probable en mi humilde opinión – curtisk
Siempre comience con el rango no asignado, con la opción de un puerto configurable usuario/administrador para hacer frente a posibles conflictos. SOLAMENTE si su aplicación alcanza un uso amplio (piense en BitTorrent, o en algún otro uso extenso) si realmente considera solicitar un puerto asignado. De lo contrario, manténgase fuera del rango asignado. Si se trata de algo estrictamente interno/personal, simplemente documente los puertos en uso por varios servicios y estará bien siempre que las personas puedan buscarlos en línea en algún lugar. Piense en el rango privado/dinámico similar a las IP no enrutables, perfectas para uso pequeño/privado. – jefflunt
Bueno, puede hacer referencia a algunos números de puerto de uso común here y tratar de no utilizar el de ninguna otra persona.
Si por "abierto al público en general" quiere decir que está abriendo puertos en sus propios sistemas, conversaría con los administradores de su sistema acerca de qué puertos se sienten cómodos haciendo eso.
Es probable que desee evitar el uso de cualquier puerto desde this list (Wikipedia).
Solo escogería una, y una vez que la aplicación sea utilizada por las masas, el número de puerto será reconocido e incluido en dichas listas.
es la lista más completa de los números de puerto IANA oficiales y los números de puerto no oficiales que sé es nmap-services.
Si por el ampliamente utilizado, quiere decir que desea proteger contra otras personas de usarla en el futuro, puede solicitar que se marca como reservado para su aplicación por la IANA here
La elección de uno no asignado en la La lista IANA suele ser suficiente, pero si habla de un producto lanzado comercialmente, debería solicitarlo a la IANA para que le asignen uno. Tenga en cuenta que el proceso de hacer esto es simple pero lento; la última vez que solicité uno, tomó un año.
Si esto es para una aplicación que espera que se use ampliamente, entonces registre un número here para que nadie más lo use.
De lo contrario, simplemente elija uno sin usar al azar.
El problema con el uso de uno en el rango dinámico es que puede no estar disponible porque puede estar siendo utilizado para un número de puerto dinámico.
Elija un puerto predeterminado que no interfiera con los servidores y daemons más comunes. También asegúrese de que el número de puerto no figure como un vector de ataque para algunos virus; algunas compañías tienen políticas estrictas donde bloquean dichos puertos sin importar qué. Por último, pero no menos importante, asegúrese de que el número de puerto sea configurable.
Como mencionan otros, revise IANA.
Luego verifique los sistemas locales/etc/services para ver si ya hay algunos puertos personalizados en uso.
Y, por favor, no hardcode it. Asegúrate de que sea configurable, de alguna manera, de alguna manera, si no por otro motivo, quieres que varios desarrolladores usen sus propias compilaciones localizadas al mismo tiempo.
IATA? ¿Te refieres a IANA? – bortzmeyer
Utilice iana list. Descargar el archivo CSV desde:
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
y utilizar este script de shell para la búsqueda de puertos unregistred:
for port in {N..M}; do if ! grep -q $port service-names-port-numbers.csv; then echo $port;fi; done;
y puso 2 números en lugar de N y M.
- 1. red TCPIP con C#
- 2. Nuevo proyecto: Tengo problemas para elegir un idioma para usar
- 3. Cómo crear un servidor vinculado con un puerto no predeterminado
- 4. ¿Cómo elegir un número de puerto gratis en python?
- 5. ¿Cómo promover un nuevo producto/servicio?
- 6. ¿Cómo iniciar un nuevo hilo en un servicio?
- 7. ¿Cómo configurar el puerto predeterminado para Webrick?
- 8. puerto predeterminado para SQL Server
- 9. ¿Debo cerrar un socket (TCPIP) después de cada transacción?
- 10. ¿Cuándo no se debe usar un servicio web?
- 11. Cómo ejecutar el servicio WCF en un puerto específico
- 12. ¿Cómo puedo obtener el puerto que escucha un servicio WCF?
- 13. ¿Cómo reenviar un subdominio a un nuevo puerto en la misma dirección IP utilizando Apache?
- 14. ¿Cómo se establece un valor predeterminado para un WTForms SelectField?
- 15. ¿Cómo elegir un enlace WCF?
- 16. Nuevo evento disponible del puerto COM
- 17. ¿Cómo se configura el RequestFormat predeterminado para un WCF ServiceContract?
- 18. ¿Cómo elegir un contenedor DI?
- 19. La función "" debe usarse con un prefijo cuando no se especifica un espacio de nombre predeterminado
- 20. gitolite con puerto no predeterminado
- 21. ¿Cómo elegir un nuevo color para cada línea trazada dentro de una figura en matplotlib?
- 22. ¿Cómo se proporciona un tipo predeterminado para genéricos?
- 23. ¿Se debe cerrar un WriteStream?
- 24. Cómo iniciar el servicio en un nuevo hilo en Android
- 25. ¿En qué casos se debe usar new.env para crear un nuevo entorno?
- 26. Cambiar puerto RMI predeterminado (Java)
- 27. ¿Qué tipo de excepción debe arrojarse con un Servicio WCF?
- 28. ¿Cómo se debe empaquetar/implementar un ESB?
- 29. ¿Cómo se diseña una aplicación web que se debe personalizar para cada nuevo cliente?
- 30. ¿Debo usar solo un nuevo servicio() o más?
Esto es mejor respondió aquí: http://stackoverflow.com/questions/10476987/best-tcp-port-number-range-for-internal-applications – matt2000