Netstat
In computing,
netstat is a command-line network utility that displays open network sockets, routing tables, and a number of network interface and network protocol statistics. It is available on Unix, Plan 9, Inferno, and Unix-like operating systems including macOS, Linux, Solaris and BSD. It is also available on IBM OS/2 and on Microsoft Windows NT-based operating systems including Windows XP, Windows Vista, Windows 7, Windows 8 and Windows 10.It is used for finding problems in the network and to determine the amount of traffic on the network as a performance measurement. On Linux this program is mostly obsolete, although still included in many distributions.
On Linux,
netstat is superseded by ss. The replacement for netstat -r is ip route, the replacement for netstat -i is ip -s link, and the replacement for netstat -g is ip maddr, all of which are recommended instead.Statistics provided
Netstat provides statistics for the following:- Proto – The name of the protocol. On some systems, the protocol name may be followed by "4" or "6", depending on whether the protocol is running over IPv4 or IPv6.
- Local Address – The IP address of the local computer and the port number being used. The name of the local computer that corresponds to the IP address and the name of the port is shown unless the parameter is specified. An asterisk is shown for the host if the server is listening on all interfaces. If the port is not yet established, the port number is shown as an asterisk.
- Foreign Address – The IP address and port number of the remote computer to which the socket is connected. The names that corresponds to the IP address and the port are shown unless the parameter is specified. If the port is not yet established, the port number is shown as an asterisk.
- State – Indicates the state of a TCP connection. The possible states are as follows:, and. For more information about the states of a TCP connection, see.
Parameters
| Name | Description | Windows | ReactOS | macOS | BSD | NetBSD | FreeBSD | Linux | Solaris | OS/2 |
| Displays all active connections and the TCP and UDP ports on which the computer is listening. | ||||||||||
| Displays the binary program's name involved in creating each connection or listening port.. | ||||||||||
| Causes to report the total number of bytes of traffic. | ||||||||||
| Displays ethernet statistics, such as the number of bytes and packets sent and received. This parameter can be combined with. | ||||||||||
| Displays fully qualified domain names | ||||||||||
| Address Family | Limits display to a particular socket address family, unix, inet, inet6 | |||||||||
| Displays multicast group membership information for both IPv4 and IPv6 | ||||||||||
| Displays network interfaces and their statistics | ||||||||||
| Displays the memory statistics for the networking code. | ||||||||||
| Displays active TCP connections, however, addresses and port numbers are expressed numerically and no attempt is made to determine names. | ||||||||||
| Displays active TCP connections and includes the process id for each connection. You can find the application based on the PID in the Processes tab in Windows Task Manager. This parameter can be combined with and. This parameter is available on Microsoft Windows XP, Windows Server 2003, and Windows 2000 if a hotfix is applied. | ||||||||||
| protocol | Shows connections for the protocol specified by protocol. In this case, protocol can be tcp, udp, tcpv6, or udpv6. If this parameter is used with to display statistics by protocol, protocol can be tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6, or ipv6. | |||||||||
| Show which processes are using which sockets | ||||||||||
| protocol | Shows connections for the protocol specified by protocol. In this case, protocol can be ip, ipv6, icmp, icmpv6, igmp, udp, tcp, or rawip. | |||||||||
| Displays the contents of the IP routing table. | ||||||||||
| Displays statistics by protocol. By default, statistics are shown for the TCP, UDP, ICMP, and IP protocols. If the IPv6 protocol for Windows XP is installed, statistics are shown for the TCP over IPv6, UDP over IPv6, ICMPv6, and IPv6 protocols. The parameter can be used to specify a set of protocols. | ||||||||||
| Display only TCP connections. | ||||||||||
| Display only UDP connections. | ||||||||||
| Display wide output - doesn't truncate hostnames or IPv6 addresses | ||||||||||
| Displays NetworkDirect connections, listeners, and shared endpoints. | ||||||||||
| Displays the TCP connection template for all connections.Cannot be combined with the other options. | ||||||||||
| When used in conjunction with it will display the sequence of components involved in creating the connection or listening port for all executables. | ||||||||||
| Redisplays the selected information every Interval seconds. Press CTRL+C to stop the redisplay. If this parameter is omitted, netstat prints the selected information only once. | ||||||||||
| Displays help at the command prompt. | ||||||||||
| Displays help at the command prompt. | ||||||||||
| Displays help at the command prompt. |
Examples
Cross platform
On macOS, BSD systems, Linux distributions, and Microsoft Windows:To display the statistics for only the TCP or UDP protocols, type one of the following commands:
netstat -sp tcpnetstat -sp udpUnix-like
On Unix-like systems:To display all ports open by a process with id pid:
netstat -aop | grep "pid"To continuously display open TCP and UDP connections numerically and also which program is using them on Linux:
netstat -nutpacwWindows
On Microsoft Windows:To display active TCP connections and the process IDs every 5 seconds, type the following command :
netstat -o 5To display active TCP connections and the process IDs using numerical form, type the following command :
netstat -no*nix
| Command | Explanation |
netstat -a | Shows all sockets, both listening and non-listening, all protocols like TCP, UDP etc. |
netstat -at | Shows only TCP connections |
netstat -ant | Shows all TCP connections with no DNS resolution. |
netstat -al | Shows only listening sockets. |
netstat -aep | Also show PID and to which program each socket belongs, e adds extra info like the user. Run as root to see all PIDs. |
netstat -s | Shows network statistics. |
netstat -r | Shows kernel routing information. This is the same output as route -e. |
netstat -i | Displays a table of all network interfaces. Add -e to get output similar to ifconfig. |
netstat -ct | Displays TCP connections continuously. |
netstat -g | Display multicast group membership information for IPv4 and IPv6. |
netstat -lntu | Display all services listening for TCP and UDP, all free open ports on the local machine. |
| Displays all currently "established" TCP connections. |