Puede estar pensando en la cantidad de puertos. Hay 65536 puertos disponibles en el TCP en las versiones actuales de IPv4. Esto no es solo una limitación de Linux, es parte del protocolo. Su dirección IP identifica su máquina y el puerto identifica un programa en su máquina.
Pero, el número de conexiones no está limitado por eso. Una conexión consta de 5 piezas de información, en geek hablan una tupla de 5. Está determinado por el protocolo (TCP, UDP), la dirección IP local y el puerto, y la dirección IP remota y el puerto. Entonces, toma un servidor web. Puede dar servicio a muchas conexiones en el mismo puerto (probablemente 80). Su servidor web puede incluso soportar múltiples conexiones a la misma máquina cliente. Digamos que te estás conectando a google.com desde dos ventanas. Su máquina elegirá un puerto no utilizado para cada conexión. Por lo tanto, el servidor de Google deberá realizar un seguimiento de (TCP, google.com, 80, yourmachine, someport1) y (TCP, google.com, 80, yourmachine, someport2). En algún momento te toparías con límites, pero no es un límite difícil y depende mucho del sistema.
Y sí, cada socket es un descriptor de archivo, pero no todas las máquinas usan short para la tabla fd. En mi sistema, un sistema no sintonizado en absoluto, cat /proc/sys/fs/file-max
da 323997. Estoy seguro de que podría aumentarlo si fuera necesario.
Entonces, hay un límite de 65336, pero tiene que ver con el direccionamiento, no con el número de conexiones. El número de conexiones es limitado, pero más por la configuración del sistema y la cantidad de memoria que tiene.