Como obter a lista de portas que estão livres em um servidor Unix

8

Eu tenho um requisito para saber quais todas as portas na minha máquina Solaris estão livres para serem usadas para qualquer tipo de comunicação de rede.

Eu tentei o comando netstat -a . Mas as informações retornadas não deram um resultado convincente de todas as portas que eu posso usar para um novo aplicativo que estou escrevendo. Agradecemos qualquer assistência prestada a este respeito.

    
por PSam 19.11.2014 / 07:49

2 respostas

9

1: Você não deve usar portas anônimas (portas efêmeras) para implementar um serviço UDP ou TCP.

Por padrão, essas portas estão no intervalo 32768 - 65535.

# ndd /dev/tcp tcp_smallest_anon_port
32768
# ndd /dev/tcp tcp_largest_anon_port 
65535

2: A menos que seu serviço esteja sendo executado como root ou tenha o privilégio RBAC requerido, você não deve usar uma porta privilegiada. Por padrão, todas as portas de 1 a 1024 são privilegiadas:

# ndd /dev/tcp tcp_smallest_nonpriv_port
1024

3: A menos que você saiba o que está fazendo, não deve usar uma porta conhecida que deve executar um serviço diferente daquele que planeja. As portas conhecidas estão listadas em /etc/services . por exemplo:

# tail /etc/services
dtspc           6112/tcp                        # CDE subprocess control
fs              7100/tcp                        # Font server
solaris-audit   16162/tcp                       # Secure remote audit logging
servicetag      6481/udp
servicetag      6481/tcp
wnn6            22273/tcp                       # Wnn6 jserver
wnn6            22273/udp                       # Wnn6 jserver
rdc             121/tcp                         # SNDR server daemon
snmpd           161/udp        snmp             # Net-SNMP snmp daemon
swat            901/tcp                         # Samba Web Adm.Tool

4: Você não deve usar uma porta que já seja usada por um serviço existente. Você pode obtê-los com a execução:

# netstat -an | grep LISTEN | nawk '{$0=$1;gsub(".*\.","");print}' | sort -un

5: Finalmente, você não deve usar uma porta usada por um serviço atualmente desativado, mas que pode estar habilitado no futuro. Esta é a parte mais complicada para cumprir ...

    
por 19.11.2014 / 10:15
7

Você pode usar 1-65.535 portas em seu sistema, nas quais 1024 são privilegiadas com root.

Então, em vez de encontrar a porta livre, você pode obter uma lista de portas usadas usando o comando abaixo

netstat -tunlep | grep LISTEN | awk '{print $4}'

Em seguida, você pode usar qualquer porta de 1-65535, exceto as portas.

    
por 19.11.2014 / 09:50

Tags