¿Cuál es el puerto más alto que se puede usar?
¿Cuál es el puerto más alto que se puede usar?
Respuestas:
El número de puerto es un entero de 16 bits sin signo, por lo que 65535.
El número de puerto más grande es un corto sin signo 2 ^ 16-1: 65535
Un puerto registrado es uno asignado por Internet Corporation para nombres y números asignados (ICANN) a un determinado uso. Cada puerto registrado está en el rango 1024–49151.
Desde el 21 de marzo de 2001, la agencia de registro es ICANN; antes de ese momento era IANA.
Los puertos con números inferiores a los de los puertos registrados se denominan puertos bien conocidos; Los puertos con números mayores que los de los puertos registrados se denominan puertos dinámicos y / o privados.
Según tengo entendido, solo debe usar hasta 49151, ya que desde 49152 hasta 65535 están reservados para puertos efímeros
$ cat /proc/sys/net/ipv4/ip_local_port_range
resultados en salida 32768 61000
. En cuanto a si uno debería o no usar un puerto en el rango de puertos efímero del sistema, sospecho que la mayoría, si no todos los sistemas operativos de red modernos omitirán un puerto que ya está en uso.
Solo un seguimiento a la respuesta de Smashery . El intervalo de puertos efímero (al menos en Linux, y sospecho que también en otros Unices) no es fijo. Esto se puede controlar escribiendo a
/proc/sys/net/ipv4/ip_local_port_range
La única restricción (en lo que respecta a IANA) es que los puertos inferiores a 1024 están designados como puertos conocidos. Los puertos superiores que son de uso gratuito. A menudo encontrará que los puertos por debajo de 1024 están restringidos al acceso de superusuario, creo que por esta misma razón.
Según RFC 793, el puerto es un int sin signo de 16 bits.
Esto significa que el rango es 0 - 65535.
Sin embargo, dentro de ese rango, los puertos 0 - 1023 generalmente están reservados para propósitos específicos. Digo generalmente porque, aparte del puerto 0, generalmente no se aplica la reserva 0-1023. Las implementaciones de TCP / UDP generalmente no imponen reservas aparte de 0. Puede, si lo desea, ejecutar el puerto TLS de un servidor web en el puerto 80, 25 o 65535 en lugar del estándar 443. Del mismo modo, incluso aunque sea el estándar que los servidores SMTP escuchan en el puerto 25, puede ejecutarlo en 80, 443 u otros.
La mayoría de las implementaciones reservan 0 para un propósito específico: asignación aleatoria de puertos. Entonces, en la mayoría de las implementaciones , decir "escuchar en el puerto 0" en realidad significa "No me importa qué puerto uso, solo dame un puerto aleatorio no asignado para escuchar".
Por lo tanto, cualquier limitación en el uso de un puerto en el rango 0-65535, incluido 0, rango de reserva efímera, etc., es específica de la implementación (es decir, SO / controlador) , sin embargo, todos, incluido 0, son puertos válidos en el RFC 793.
Depende del rango del que esté hablando, pero el rango dinámico sube a 65535 o 2 ^ 16-1 (16 bits).
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
Los números válidos para los puertos son: 0 a 2 ^ 16-1 = 0 a 65535
Esto se debe a que un número de puerto tiene una longitud de 16 bits.
Sin embargo, los puertos se dividen en:
Puertos conocidos : 0 a 1023 (utilizados para servicios del sistema, por ejemplo, HTTP, FTP, SSH, DHCP ...)
Puertos registrados / usuarios : 1024 a 49151 (puede usarlo para su servidor, pero cuidado con algunas aplicaciones famosas: como el servidor del sistema de administración de bases de datos de Microsoft SQL Server (MSSQL) o el servidor de red Apache Derby ya están tomando de este rango, es decir, no se recomienda asignar el puerto de MSSQL a su servidor; de lo contrario, si MSSQL se está ejecutando, entonces su servidor más probablemente no se ejecutará debido a un conflicto de puertos)
Puertos dinámicos / privados : 49152 a 65535. (no se utiliza para los servidores en lugar de los clientes, por ejemplo, en el servicio NATing)
En la programación, puede usar cualquier número del 0 al 65535 para su servidor, sin embargo, debe atenerse a los rangos mencionados anteriormente, de lo contrario, algunos servicios del sistema o algunas aplicaciones no se ejecutarán debido a un conflicto de puertos.
Consulte la lista de la mayoría de los puertos aquí: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers