Solución 1:
(2^16)-1, o 0-65,535 (el -1 se debe a que el puerto 0 está reservado y no disponible). (editado porque o_O Tync me recordó que no podemos usar el puerto 0, y Steve Folly me recordó que pediste el puerto más alto, no la cantidad de puertos)
Pero probablemente estés haciendo esto de la manera incorrecta. Hay personas que argumentan a favor y en contra de los puertos no estándar. Digo que son irrelevantes excepto para el escáner más casual, y el escáner más casual puede mantenerse a raya usando software actualizado y técnicas de firewall adecuadas, junto con contraseñas seguras. En otras palabras, las mejores prácticas de seguridad.
Solución 2:
1-65535 están disponibles, y los puertos en el rango 1-1023 son los privilegiados ones:se necesita ejecutar una aplicación como root para poder escuchar estos puertos.
Solución 3:
Aunque 1-65535 son puertos TCP legítimos y es cierto que 1-1023 son para servicios de puerto bien conocidos. Puede encontrarse con problemas aleatorios con sus propios servicios si se inician después de establecer un puerto efímero. Para aquellos que no lo sepan, los puertos efímeros son aquellos que están conectados localmente para puntos finales remotos (o algo por el estilo). Entonces, si escribe un servicio TCP que escucha en el puerto 20001, podría estar bien hoy... y mañana. Pero un día, su servicio puede iniciarse e intentar vincularse a 20001 y fallará porque se tomó como un puerto efímero. Hay una solucion. Debe hacer que su administrador, o usted mismo, cambie la política de rango de puertos efímeros del sistema en su servidor. En sistemas linux se hace en dos pasos:
- Dinámicamente
- Permanentemente
Se deben realizar ambos pasos, a menos que planee reiniciar (en cuyo caso no se necesita el paso Dinámico). Para configurar su rango hasta 40000 a 65535, haga lo siguiente:
Dinámico
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
o
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
Permanente
Agregue lo siguiente a /etc/sysctl.conf:
net.ipv4.ip_local_port_range = 40000 65535
Para leer la configuración actual o confirmar el cambio:
/sbin/sysctl net.ipv4.ip_local_port_range
La salida será algo como esto:
net.ipv4.ip_local_port_range = 9000 65500
Asegúrese de entender el propósito de su servidor. Reducir demasiado el rango puede generar otros problemas.
¡Feliz codificación! (o lo que sea que hagas)