Respostas:
(2 ^ 16) -1 ou 0-65.535 (o -1 é porque a porta 0 está reservada e indisponível). (editado porque o_O Tync me lembrou que não podemos usar a porta 0 e Steve Folly me lembrou que você solicitou a porta mais alta, não o número de portas)
Mas você provavelmente está fazendo isso da maneira errada. Há pessoas que argumentam a favor e contra portas fora do padrão. Eu digo que eles são irrelevantes, exceto para o scanner mais casual, e o scanner mais casual pode ser mantido afastado usando software atualizado e técnicas adequadas de firewall, além de senhas fortes. Em outras palavras, práticas recomendadas de segurança.
Embora 1-65535 sejam portas TCP legítimas e é verdade que 1-1023 são para serviços de porta conhecidos. Você pode ter problemas aleatórios com seus próprios serviços se eles forem iniciados após o estabelecimento de uma porta efêmera. Para quem não sabe, portas efêmeras são aquelas conectadas localmente para pontos finais remotos (ou algo nesse sentido). Portanto, se você escrever um serviço TCP que escute na porta 20001. Você pode ser bom hoje ... e amanhã. Mas um dia seu serviço pode ser iniciado e tentar se conectar ao 20001 e falhará porque foi tomado como uma porta efêmera. Existe uma solução. Você deve ter seu administrador, ou você mesmo, alterar a política de intervalo efetivo de portas do sistema em seu servidor. Nos sistemas Linux, isso é feito em duas etapas:
As duas etapas devem ser executadas; inútil você planeja reiniciar; nesse caso, a etapa Dinâmica não é necessária. Para definir seu intervalo de até 40000 a 65535, faça o seguinte:
Dinâmico
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
ou
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
Permanente
Adicione o seguinte ao /etc/sysctl.conf:
net.ipv4.ip_local_port_range = 40000 65535
Para ler a configuração atual ou confirmar a alteração:
/sbin/sysctl net.ipv4.ip_local_port_range
A saída será algo como isto:
net.ipv4.ip_local_port_range = 9000 65500
Certifique-se de entender o objetivo do seu servidor. Reduzir muito o alcance pode levar a outros problemas.
Feliz codificação! (ou o que você faz)