Mediante el /proc podemos obtener la misma información que obtenemos con muchos binarios, únicamente que tenemos la información más esparcida y sin tratar.
Vamos a ver cómo obtener la información de conexiones y puertos en escucha mediante el /proc.
Vamos a usar de ejemplo el puerto de escucha de ssh.
netstat -ntpl | grep ssh
tcp 0 0 0.0.0.0:22 0.0.0.0:* ESCUCHAR 551/sshd
Una vez conocido el PID, mediante el listado de descriptores de fichero podemos ver que esta escuchando mediante un socket:
ls -l /proc/551/fd
lrwx------ 1 root root 64 dic 10 10:15 4 -> socket:[7168]
En este caso, sabemos que es TCP, por lo que buscamos el identificador de socket en el /proc/net/tcp:
cat /proc/net/tcp | grep 7168
3: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 7168 1 efd14000 100 0 0 10 -1
Podemos ver el identificador que hemos buscado hacia el final, los dos primeros campos nos muestran origen y destino de la conexión. Podemos traducir el puerto de hexadecimal a decimal con:
echo $((0x0016))
22
Podemos encontrar que significa cada dato de esta linea en la documentación del kernel, en el fichero Documentation/networking/proc_net_tcp.txt.
Para poder obtener el estado de la conexión (campo después de la dirección destino) deberemos buscar en el fichero include/net/tcp_states.h, dónde encontramos:
TCPF_ESTABLISHED = (1 = 1)
TCPF_SYN_SENT = (1 = 2)
TCPF_SYN_RECV = (1 = 3)
TCPF_FIN_WAIT1 = (1 = 4)
TCPF_FIN_WAIT2 = (1 = 5)
TCPF_TIME_WAIT = (1 = 6)
TCPF_CLOSE = (1 = 7)
TCPF_CLOSE_WAIT = (1 =

TCPF_LAST_ACK = (1 = 9)
TCPF_LISTEN = (1 = 10)
TCPF_CLOSING = (1 = 11)
Por lo que si hacemos:
echo $((0x0A))
10
Si miramos la tabla, el puerto esta en Listen.
Por lo que podemos resumir en que:
Si la conexión esta en estado ESTABLISHED, obtendremos un 01 como estado.
Si la conexión esta en estado TIME_WAIT, obtendremos un 06 como estado.
Si la conexión esta en estado LISTEN, como en el caso del ejemplo, el estado que marca indica 0A
Por lo tanto, mediante el /proc y mucha paciéncia, podemos obtener los mismos datos que obtenemos mediante netstat o ss.
Espero que os guste el aporte !!!!