netstat en Linux, Windows y MacOSX
Mediante netstat se pueden visualizar diferentes parámetros de red, dos de los más comunes son ver las conexiones establecidas con los puertos que escucha el sistema y la tabla de rutas. Hoy vamos a ver como los parámetros para Linux,Windows y MacOSX
Para el caso de la tabla de rutas podemos hacerlo en los tres sistemas operativos con la opción -rn:
Podemos ver el caso de Linux:
# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 172.16.101.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 172.16.101.1 172.16.101.5 255.255.255.255 UGH 0 0 0 tun0 192.168.232.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 192.168.232.2 0.0.0.0 UG 0 0 0 eth0
El caso de MacOSX:
$ netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 192.168.1.1 UGSc 3 13 en1 127 127.0.0.1 UCS 0 0 lo0 127.0.0.1 127.0.0.1 UH 11 2774 lo0 169.254 link#5 UCS 0 0 en1 192.168.1 link#5 UCS 1 0 en1 192.168.1.1 0:14:bf:6e:79:19 UHLW 3 18 en1 984 192.168.1.105 127.0.0.1 UHS 0 0 lo0 192.168.2 link#4 UC 0 0 en0 Internet6: Destination Gateway Flags Netif Expire ::1 ::1 UH lo0 fe80::/64 link#5 UC en1 fe80::211:24ff:fe2d:5577 0:11:24:2d:55:77 UHL lo0 ff01::/32 ::1 U lo0 ff02::/32 ::1 UC lo0 ff02::/32 link#5 UC en1
Finalmente el caso de Windows podemos ver que es bastante más “verbose”:
C:\Documents and Settings\Administrator>netstat -rn Route Table =========================================================================== Interface List 0x1 ........................... MS TCP Loopback interface 0x2 ...00 50 ff ff 00 08 ...... VMware Virtual Ethernet Adapter for VMnet8 0x3 ...00 50 ff ff 00 01 ...... VMware Virtual Ethernet Adapter for VMnet1 0x4 ...00 11 22 33 44 55 ...... Broadcom 802.11b/g WLAN - Packet Scheduler Miniport 0x5 ...00 ff 82 20 25 b4 ...... TAP-Win32 Adapter V8 - Packet Scheduler Miniport 0x6 ...00 ff ee 69 40 c6 ...... TAP-Win32 Adapter V9 - Packet Scheduler Miniport =========================================================================== =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 172.16.101.1 172.16.101.2 1 99.99.111.118 255.255.255.255 192.168.1.1 192.168.1.100 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 169.254.0.0 255.255.0.0 192.168.102.1 192.168.102.1 20 172.16.101.0 255.255.255.252 172.16.101.2 172.16.101.2 30 172.16.101.2 255.255.255.255 127.0.0.1 127.0.0.1 30 172.16.255.255 255.255.255.255 172.16.101.2 172.16.101.2 30 192.168.1.0 255.255.255.0 192.168.1.100 192.168.1.100 25 192.168.1.100 255.255.255.255 127.0.0.1 127.0.0.1 25 192.168.1.255 255.255.255.255 192.168.1.100 192.168.1.100 25 192.168.102.0 255.255.255.0 192.168.102.1 192.168.102.1 20 192.168.102.1 255.255.255.255 127.0.0.1 127.0.0.1 20 192.168.102.255 255.255.255.255 192.168.102.1 192.168.102.1 20 192.168.232.0 255.255.255.0 192.168.232.1 192.168.232.1 20 192.168.232.1 255.255.255.255 127.0.0.1 127.0.0.1 20 192.168.232.255 255.255.255.255 192.168.232.1 192.168.232.1 20 224.0.0.0 240.0.0.0 172.16.101.2 172.16.101.2 30 224.0.0.0 240.0.0.0 192.168.1.100 192.168.1.100 25 224.0.0.0 240.0.0.0 192.168.102.1 192.168.102.1 20 224.0.0.0 240.0.0.0 192.168.232.1 192.168.232.1 20 255.255.255.255 255.255.255.255 172.16.101.2 172.16.101.2 1 255.255.255.255 255.255.255.255 192.168.1.100 192.168.1.100 1 255.255.255.255 255.255.255.255 192.168.102.1 192.168.102.1 1 255.255.255.255 255.255.255.255 192.168.232.1 192.168.232.1 1 255.255.255.255 255.255.255.255 192.168.232.1 6 1 Default Gateway: 172.16.101.1 =========================================================================== Persistent Routes: None
Por lo que respeta a las conexiones establecidas y los puertos TCP que escucha un sistema Linux se puede hacer mediante netstat -tpan.
# netstat -tpan Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 172.16.101.6:389 0.0.0.0:* LISTEN 2468/slapd tcp 0 0 127.0.0.1:10025 0.0.0.0:* LISTEN 4723/master tcp 0 0 127.0.0.1:7306 0.0.0.0:* LISTEN 3142/mysqld tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1981/portmap tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 4723/master tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2149/cupsd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 4723/master tcp 0 0 127.0.0.1:7306 127.0.0.1:44919 ESTABLISHED 3142/mysqld (...)
Para ver los puertos UDP que escucha simplemente cambiamos la t por una u, por lo que el comando queda netstat -upan:
# netstat -upan Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:54968 0.0.0.0:* 2044/openvpn udp 0 0 0.0.0.0:68 0.0.0.0:* 1838/dhclient udp 0 0 0.0.0.0:5353 0.0.0.0:* 2263/avahi-daemon: udp 0 0 0.0.0.0:111 0.0.0.0:* 1981/portmap udp 0 0 0.0.0.0:60016 0.0.0.0:* 2263/avahi-daemon: udp 0 0 0.0.0.0:631 0.0.0.0:* 2149/cupsd udp 0 0 :::48923 :::* 2263/avahi-daemon: udp 0 0 :::5353 :::* 2263/avahi-daemon:
Para el caso de Windows el netstat no permite ver el nombre del programa sino solo el PID, por lo que necesitaremos dos pasos para conocer el nombre del ejecutable. Primero de todo hacemos un netstat -ano. Para ver solo los que están escuchando (no las conexiones establecidas) podemos filtrarlo con un find. A continuación mediante tasklist podemos ver a que binario corresponde el PID que nos interese:
C:\Documents and Settings\Administrator>netstat -ano | find "LISTE" TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2164 TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 240 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:902 0.0.0.0:0 LISTENING 2128 TCP 0.0.0.0:912 0.0.0.0:0 LISTENING 2128 TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 3128 TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING 2452 TCP 0.0.0.0:8222 0.0.0.0:0 LISTENING 3020 TCP 0.0.0.0:8308 0.0.0.0:0 LISTENING 2452 TCP 0.0.0.0:8333 0.0.0.0:0 LISTENING 3020 TCP 127.0.0.1:1039 0.0.0.0:0 LISTENING 2524 TCP 127.0.0.1:1325 0.0.0.0:0 LISTENING 2932 TCP 127.0.0.1:5152 0.0.0.0:0 LISTENING 3100 TCP 127.0.0.1:5354 0.0.0.0:0 LISTENING 2204 TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING 2452 TCP 127.0.0.1:8307 0.0.0.0:0 LISTENING 3020 TCP 127.0.0.1:12025 0.0.0.0:0 LISTENING 832 TCP 127.0.0.1:12080 0.0.0.0:0 LISTENING 832 TCP 127.0.0.1:12110 0.0.0.0:0 LISTENING 832 TCP 127.0.0.1:12119 0.0.0.0:0 LISTENING 832 TCP 127.0.0.1:12143 0.0.0.0:0 LISTENING 832 TCP 127.0.0.1:12465 0.0.0.0:0 LISTENING 832 TCP 127.0.0.1:12563 0.0.0.0:0 LISTENING 832 TCP 127.0.0.1:12993 0.0.0.0:0 LISTENING 832 TCP 127.0.0.1:12995 0.0.0.0:0 LISTENING 832 TCP 127.0.0.1:27015 0.0.0.0:0 LISTENING 2184 TCP 127.0.0.1:62514 0.0.0.0:0 LISTENING 2240 TCP 192.168.1.100:139 0.0.0.0:0 LISTENING 4 TCP 192.168.102.1:139 0.0.0.0:0 LISTENING 4 TCP 192.168.232.1:139 0.0.0.0:0 LISTENING 4 C:\Documents and Settings\Administrator>tasklist | find "2164" httpd.exe 2164 Console 0 7.888 K
Windows no diferencia conexiones UDP de TCP, por lo que también podemos ver unas o otras filtrando con find “UDP” o find “TCP”.
Para el caso de MacOSX mediante netstat no podemos ver los PIDs de las conexiones, pero si las conexiones. Para el caso de las TCP indicamos mediante laopción -p el protocolo, el comando quedaría netstat -p tcp -an:
$ netstat -p tcp -an Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 192.168.1.105.49290 195.27.58.20.80 ESTABLISHED tcp4 0 0 127.0.0.1.631 *.* LISTEN tcp4 0 0 192.168.2.1.53 *.* LISTEN tcp4 0 0 127.0.0.1.1033 127.0.0.1.970 ESTABLISHED tcp4 0 0 127.0.0.1.970 127.0.0.1.1033 ESTABLISHED tcp4 0 0 127.0.0.1.1033 127.0.0.1.971 ESTABLISHED tcp4 0 0 127.0.0.1.971 127.0.0.1.1033 ESTABLISHED tcp4 0 0 127.0.0.1.1033 127.0.0.1.986 ESTABLISHED tcp4 0 0 127.0.0.1.986 127.0.0.1.1033 ESTABLISHED tcp4 0 0 127.0.0.1.1033 *.* LISTEN
Para el caso de UDP simplemente la opción -p cambiamos TCP por UDP, quedandonetstat -p udp -an:
$ netstat -p udp -an Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) udp4 0 0 *.5353 *.* udp4 0 0 *.5353 *.* udp4 0 0 127.0.0.1.49156 127.0.0.1.1022 udp4 0 0 127.0.0.1.49155 127.0.0.1.1022 udp4 0 0 127.0.0.1.1022 *.* udp4 0 0 127.0.0.1.49154 127.0.0.1.1023 udp4 0 0 127.0.0.1.1023 *.* udp4 0 0 *.631 *.* udp6 0 0 *.49153 *.* udp4 0 0 *.49152 *.* udp4 0 0 192.168.2.1.53 *.* udp4 0 0 *.67 *.* udp4 0 0 *.68 *.* udp4 0 0 127.0.0.1.1033 *.* udp4 0 0 *.514 *.* udp6 0 0 *.514 *.*
Para ver que proceso escucha en un determinado puerto o tiene una conexión establecida en MacOSX deberemos usar lsof -i
$ lsof -i COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME firefox-b 424 jordi 28u IPv4 0x01b0caa0 0t0 TCP 192.168.1.105:49290->19
Comentarios
Publicar un comentario