- How to Check for Ports in Use in Windows 10
- Use Nirsoft CurrPorts
- Command Prompt Method
- TCPView
- Windows view all ports
- Search for other utilities in NirSoft
- Versions History
- System Requirements
- Using CurrPorts
- The Options Menu
- The ‘Remote IP Country’ column
- The ‘Remote IP ASN’ and ‘Remote IP Company’ columns
- Using Filters
- Integration with IPNetInfo utility
- Log File
- Custom Log Line
- Command-Line Options
How to Check for Ports in Use in Windows 10
At any one time, there’s a whole bunch of information being sent between your Windows 10 PC and the endless void of the Internet. This is done using a process whereby network-dependent processes seek out TCP and UDP ports, which they use to communicate with the Internet. First, your data gets sent to remote ports at the destination or website your processes are trying to connect to, then it gets received at local ports back on your PC.
Most of the time, Windows 10 knows how to manage ports and ensure that traffic is being directed through the right ports so that those processes can connect with what they need to. But sometimes two processes may be assigned to one port, or maybe you just want to get a better picture of your network traffic and what’s going in and out.
That’s why wrote this guide that shows you how to get an overview of your ports and see which applications are using which ports.
Use Nirsoft CurrPorts
NirSoft is one of the best indie software developers, giving us great utilities, like PassView and WirelessKeyView. While some people will prefer checking their ports without installing third-party software (in which case, scroll down to the CMD method), CurrPorts is easily the fastest and most convenient way to view your ports.
Once you’ve installed CurrPorts, just open it to see a list of all your ports currently in use. If you’re looking for local ports in use, just click the “Local Port” column at the top to order the list by port number (handy if you’re looking for a specific one). You can do the same thing with remote ports, too.
If you want to really find specific ports, click the “Advanced Filters” icon at the top and enter your string in the format they suggest. It should look something like the below image.
Hit OK when you’re ready, and the list will filter down to your queries.
Command Prompt Method
The integrated – though not necessarily the simplest – way to check open ports is to use the trusty command prompt.
Click the Start button, type cmd , then right-click “Command Prompt” when it shows up in the search results. Click “Run as administrator.”
Once you’re in the elevated command prompt, enter the following command:
This will steadily bring up a list of ports that is probably quite long, along with the Windows processes that are using them. (You can press Ctrl + A , then Ctrl + C to copy all information to the clipboard.) On the average PC, there will be two main local IP addresses that contain ports on your PC.
The first, in our case, is “127.0.0.1.” This IP address is otherwise known as “localhost” or a “loopback address,” and any process listening to ports here is communicating internally on your local network without using any network interface. The actual port is the number you see after the colon. (See image below.)
The bulk of your processes will probably be listening to ports prefixed with “192.168.xxx.xxx,” which is your IP address. This means the processes you see listed here are listening for communications from remote Internet locations (such as websites). Again, the port number is the number after the colon.
TCPView
If you don’t mind installing a third-party app and want to have more control over what’s going on with all your ports, you can use a lightweight app called TCPView. This immediately brings up a list of processes and their associated ports.
What make this better than the command prompt is that you can actively see the ports opening, closing and sending packets. Just look for the green, red and yellow highlights. You can also reorder the list by clicking the column headings, making it easier to find the process you want or two separate processes vying for the same port.
If you do find a process or connection you want to close, just right-click that process. You can then select “End process,” which is exactly the same function as the one in Windows task manager. Or you can click “Close Connection” to leave the process open but stop it from listening on a given port.
If you’re having some trouble in Windows 10, then see whether a Windows update may be causing it. We also have a handy guide for managing the health of your hard drive in Windows 10.
Related:
Content Manager at Make Tech Easier. Enjoys Android, Windows, and tinkering with retro console emulation to breaking point.
Windows view all ports
Search for other utilities in NirSoft
Versions History
- Version 2.63:
- Added ‘Align Numeric Columns To Right’ option.
- Version 2.62:
- Added ‘Copy Remote Address’ option.
- Version 2.61:
- Fixed CurrPorts to update the TCP port status (‘State’ column) when it’s changed.
- Version 2.60:
- Added support for GeoLite2 City and GeoLite2 Country database in CSV format (Both IPv4 and Ipv6 addresses are supported).
- In order to use it, you have to extract the files of GeoLite2 database into the folder of cports.exe
- Added support for GeoLite2 ASN database in CSV format. In order to use this feature, extract the CSV files into the folder of cports.exe and the information will be displayed in the ‘Remote IP ASN’ and ‘Remote IP Company’ columns.
- Version 2.55:
- Added /CaptureTime command-line option, which allows you to capture ports information from command-line for the specified number of milliseconds, instead of taking a single snapshot.
- For example: cports.exe /scomma c:\temp\ports1.csv /CaptureTime 10000
- Be aware that you must run cports.exe as administrator in order to get the Sent/Receive bytes information with the /CaptureTime command-line option.
- Added /RunAsAdmin command-line option, for running CurrPorts as administrator from command-line.
- Version 2.51:
- Added ‘Creation Timestamp’ column, which displays the date/time that the connection was created. Be aware that this information is not available for all connections and it works better on Windows 10.
- Version 2.50:
- Added new columns: ‘Sent Bytes’, ‘Received Bytes’, ‘Sent Packets’, ‘Received Packets’. These columns are active only when running CurrPorts as Administrator , ‘Auto Refresh’ mode is active and the ‘Collect Send/Receive Bytes Information’ option is turned on.
- Version 2.36:
- Added ‘Auto Size Columns+Headers’ option.
- Version 2.35:
- The ‘Resolve IP Addresses’ option now also works with IPv6 addresses.
- Version 2.32:
- Added option to choose another font (name and size) to display in the main window (Under the View menu).
- Version 2.31:
- You can now specify process ID in the /close command-line option, for example:
cports.exe /close * * * * 2154
- You can now specify process ID in the /close command-line option, for example:
- Version 2.30:
- Added separated display filter for every TCP state, under Options -> State Display Filter (‘Display Syn-Sent’, ‘Display Time Wait’, and more. )
- Version 2.25:
- Added ‘Hide Items With Loopback Address’ option (Hide items that their Local Address or Remote Address is 127.0.0.1 or ::1 )
- Version 2.22:
- Fixed bug: The ‘Run As Administrator’ option failed to work on some systems.
- Version 2.21:
- Changed the way that the ‘Use DNS Cache For Host Names’ option works, in order to solve a memory leak problem.
- Version 2.20:
- CurrPorts now displays the process names (Some of them without the full path) for most processes when you run it without elevation (‘Run As Administrator’). Also, the 32-bit version of CurrPorts now detects 64-bit processes properly.
- Version 2.15:
- Added ‘Run As Administrator’ option (Ctrl+F11), which allows you to easily run CurrPorts as Administrator on Windows Vista/7/8/2008. (When you run CurrPorts as admin, information about all prcesses is displayed)
- Fixed bug: CurrPorts failed to remember the last size/position of the main window if it was not located in the primary monitor.
- Version 2.12:
- You can now disable/enable all filters from the toolbar.
- Version 2.11:
- Fixed memory leak problem.
- Version 2.10:
- When saving the opened ports from command-line, CurrPorts now uses the same columns order saved in the .cfg file.
- Version 2.09:
- Fixed bug from version 2.08: Some filters stopped working.
- Version 2.08:
- Added support for filtering by process ID (In Advanced Filters window), for example:
include:process:327
- Added support for filtering by process ID (In Advanced Filters window), for example:
- Version 2.07:
- Fixed the flickering on automatic refresh.
- Version 2.06:
- Fixed issue: The properties dialog-box and other windows opened in the wrong monitor, on multi-monitors system.
- Version 2.05:
- Added support for GeoLite City database. You can now download the GeoLite City database (GeoLiteCity.dat.gz), put it in the same folder of cports.exe, and CurrPorts will automatically use it to get the country/city information for every remote IP address.
- Version 2.02:
- CurrPorts now displays a simple error message if it fails to close one or more TCP connections.
- Version 2.01:
- The ‘Remote Address’ and ‘Local Address’ columns are now sorted by the IP address numerically. (In previous versions they were sorted alphabetically)
- Version 2.00:
- Added optional fifth parameter to the /close command-line option, which allows you to specify a process name (e.g: firefox.exe)
- Version 1.97:
- The ‘Use DNS Cache For Host Names’ option is now turned off by default, because it seems that reading the DNS cache causes a memory leak on some Windows 7/x64 systems.
- Version 1.96:
- Fixed bug: CurrPorts randomly failed to display remote port numbers of IPv6 connections.
- Version 1.95:
- Added ‘Use DNS Cache For Host Names’ option. When it’s turned on, CurrPorts uses the DNS cache of Windows to resolve remote IP addresses.
- Version 1.94:
- Added ‘Custom’ AutoRefresh option under Options -> Auto Refresh. The number of seconds for the Custom AutoRefresh can be set in the Advanced Options window (Ctrl+O)
- Fixed the problem with sending the data to stdout (when the filename is empty string).
- Version 1.93:
- Updated the internal country names (added more 14 countries) that are used for displaying the country name in the ‘Remote IP Country’ column.
- Version 1.92:
- When choosing ‘Clear Log File’ option, CurrPorts now asks you whether you want to clear the log, in order to avoid from clearing the log file by mistake.
- Version 1.91:
- Added ‘Beep On New Ports’ option.
- Version 1.90:
- Added ‘Tray Balloon On New Ports’ option. When both this option and ‘Put Icon On Tray’ option are turned on, every new port detected by CurrPorts will be displayed in a tray balloon. (If the TCP/UDP port is filtered by the other CurrPorts options and it’s not displayed in the main window, it won’t be displayed in the tray balloon.)
- Version 1.87:
- Improved the ‘User Name’ column. If you run CurrPorts as administrator, this column will display the user name for all processes. (In previous versions, CurrPorts failed to detect processes created by other users, even when you run it as Administrator)
- Version 1.86:
- Added ‘Mark Odd/Even Rows’ option, under the View menu. When it’s turned on, the odd and even rows are displayed in different color, to make it easier to read a single line.
- Version 1.85:
- Added command-line options to control the settings under the Options and View menus: /MarkPorts, /DisplayUdpPorts, /DisplayTcpPorts, /DisplayClosedPorts, and more.
- Version 1.83:
- Added ‘Add Header Line To CSV/Tab-Delimited File’ option. When this option is turned on, the column names are added as the first line when you export to csv or tab-delimited file.
- Version 1.82:
- Added ‘Resize Columns On Every Refresh’ option, which allows you to automatically resize the columns according to the text length on every refresh.
- Version 1.81:
- Added more include/exclude filter options in the context menu of CurrPorts.
- Version 1.80:
- Added custom log line option (In ‘Advanced Options’ window), which allows you to set the format of the log line and put in it any column value you like.
- Version 1.76:
- Added ‘One-Click Tray Icon’ option. When it’s checked and you use the tray icon option, one click on the tray icon with the left mouse button will open CurrPorts. (Without this option, double-click is required)
- Version 1.75:
- Added ‘Exclude Selected Processes In Filters’ option in the context menu.
- Added accelerator key for ‘Include Selected Processes In Filters’ option.
- Fixed bug ‘Include Selected Processes In Filters’ option: failed to work on system process.
- Added ‘Disable All Filters’ option to easily toggle between active filter state and no filter state, as an alternative for ‘Clear All Filters’, which doesn’t allow you to return back the filters.
- Version 1.70:
- Added /sort command-line option for sorting the connections list saved from command-line.
- Version 1.66:
- Fixed issue: When CurrPorts window is hidden and there is an icon in the taskbar, running CurrPorts again will open the existing instance of CurrPorts, instead of creating another one.
- Version 1.65:
- Added drag And drop icon in the toolbar that allows to to easily filter by the desired application. Simply drag the target icon into the window of the application, and CurrPorts will display only the opened ports of this application.
- Version 1.60:
- Added new column: Window Title (The window title of the process)
- Added ‘Clear All Filters’ option.
- Added ‘Include Selected Processes In Filters’ option. Allows you to easily filter by selected processes.
- Version 1.56:
- Added new option: Ask before any action. (If you uncheck this option, CurrPorts won’t ask you any question before closing ports/applications)
- Version 1.55:
- Added number of remote connections to the status bar.
- Added ports information in the tray icon tooltip.
- Version 1.51:
- Fixed bug: In rare cases, exception window may appear when starting CurrPorts.
- Version 1.50:
- Added ‘Display Port In Address’ option. When this option is checked, the addresses will be displayed in ‘address:port’ format.
- Version 1.48:
- Fixed the Alt+1 accelerator key.
- Version 1.47:
- Added AutoRefresh every 1 second.
- Version 1.46:
- Automatically launch IPNetInfo when it’s in the same folder of CurrPorts.
- Version 1.45:
- Added ‘Remote IP Country’ column that displays the country name of the remote IP address (requires to download an external file from here)
- Version 1.41:
- Fixed bug: CurrPorts failed to display the current Auto Refresh status in Menu.
- Version 1.40:
- Added support for IPv6.
- Version 1.37:
- Fixed bug: CurrPorts failed to display process information when running under Windows Vista with non-admin user.
- Added Module Filename column (works only on XP/SP2)
- Version 1.36:
- Fixed bug: The main window lost the focus when the user switched to another application and then returned back to CurrPorts.
- Version 1.35:
- Fixed bug in saving as comma-delimited file when field values contained comma character.
- Version 1.34:
- New Option: Remember Last Filter (The filter is saved in cports_filter.txt)
- Version 1.33:
- Added support for saving comma-delimited (.csv) files.
- Added new command-line option: /scomma
- Version 1.32:
- New Option: Start CurrPorts As Hidden (Only when ‘Put Icon On Tray’ is turned on)
- New Option: Copy Remote IP Address (F2).
- Version 1.31:
- Fixed bug: TCP and UDP ports with the same number and in the same process merged into one item.
- Version 1.30:
- New column: Added On — Displays the date that the specified connection was added.
- New Option: Put Icon On Tray.
- New Option: Log File.
- Version 1.20:
- Added support for filters.
- The settings of CurrPorts utility is now saved to cfg file instead of using the Registry.
- New command-line options.
- You can now send the information to stdout by specifying an empty filename («») in the command-line.
- Added support for x64.
- Version 1.11:
- Added support for process information in Vista.
- Version 1.10:
- A tooltip is displayed when a string in a column is longer than the column length.
- Version 1.09:
- /close command-line parameter — Close a connection from command-line
- Version 1.08:
- Fixed columns order bug.
- Version 1.07:
- New option: Resolve the remote IP addresses.
- Version 1.06:
- New column: Process Attributes — Display the file attributes of the process (H for hidden, R for read-only, and so on)
- Added support for working with IPNetInfo utility
- Version 1.05:
- Fixed bug: identify process path starting with ‘\??\’
- Version 1.04:
- Added more accelerator keys.
- Added support for Windows XP visual styles.
- Version 1.03:
- New Option: Display Listening
- New Option: Display Established
- New Option: Display Items With Unknown State
- New Option: Display Items Without Remote Address
- Version 1.02:
- Fixed bug: «Exception C0000005» message when running CurrPorts on Windows NT/2000 without administrator rights.
- New column: «Process Services» — Displays the list of services of a process.
- Version 1.01:
- The ‘Copy Selected Items’ option now copies the ports data in tab-delimited format, so you can instantly paste the data into your Excel worksheet.
- Improvment in ports to process binding under Windows 2000. Process information is now also displayed under Windows NT.
- Version 1.00: First release.
System Requirements
Using CurrPorts
The main window of CurrPorts displays the list of all currently opened TCP and UDP ports. You can select one or more items, and then close the selected connections, copy the ports information to the clipboard, or save it to HTML/XML/Text file. If you don’t want to view all available columns, or you want to change the order of the columns on the screen and in the files you save, select ‘Choose Column’ from the View menu, and select the desired columns and their order. In order to sort the list by specific column, click on the header of the desired column.
The Options Menu
The ‘Remote IP Country’ column
You can also use the GeoLite2 City database. Download the GeoLite2 City or GeoLite2 Country in CSV format and extract all files into the folder of cports.exe
Be aware that the loading process of the GeoLite2 City database is quite slow.
The ‘Remote IP ASN’ and ‘Remote IP Company’ columns
Using Filters
In the filters dialog-box, you can add one or more filter strings (separated by spaces, semicolon, or CRLF) in the following syntax:
[ include | exclude ] : [ local | remote | both | process ] : [ tcp | udp | tcpudp ] : [ IP Range | Ports Range ]
Here’s some examples that demonstrate how to create a filter string:
- Display only packets with remote tcp port 80 (Web sites):
include:remote:tcp:80 - Display only packets with remote tcp port 80 (Web sites) and udp port 53 (DNS):
include:remote:tcp:80
include:remote:udp:53 - Display only packets originated from the following IP address range: 192.168.0.1 192.168.0.100:
include:remote:tcpudp:192.168.0.1-192.168.0.100 - Display only TCP and UDP packets that use the following port range: 53 — 139:
include:both:tcpudp:53-139 - Filter most BitTorrent packets (port 6881):
exclude:both:tcpupd:6881 - Display only the opened ports of FireFox browser:
include:process:firefox.exe
Integration with IPNetInfo utility
Log File
Be aware that the log file is updated only when you refresh the ports list manually, or when the ‘Auto Refresh’ option is turned on.
Custom Log Line
In the format string, you can use the following variables:
%Process_Name%
%Protocol%
%Local_Port%
%Local_Address%
%Remote_Port%
%Remote_Address%
%Process_Path%
%Process_ID%
%State%
%Product_Name%
%File_Description%
%File_Version%
%Company%
%Process_Created_On%
%Local_Port_Name%
%Remote_Port_Name%
%User_Name%
%Process_Services%
%Process_Attributes%
%Remote_Host_Name%
%Added_On%
%Module_Filename%
%Remote_IP Country%
%Window_Title%
You can also set the minimum number of characters for the column value, for example:
%Process_Name.25% (Fill with spaces — up to 25 characters)
Notice: %Remote_Host_Name% variable is not displayed on newly added connections, because the IP address resolving is asynchronous operation, and the host name is still not available when the log line is added.
Command-Line Options
Save the list of all opened TCP/UDP ports into a regular text file. | |
Save the list of all opened TCP/UDP ports into a tab-delimited text file. | |
Save the list of all opened TCP/UDP ports into a comma-delimited text file. | |
Save the list of all opened TCP/UDP ports into a tabular text file. | |
Save the list of all opened TCP/UDP ports into HTML file (Horizontal). | |
Save the list of all opened TCP/UDP ports into HTML file (Vertical). | |
Save the list of all opened TCP/UDP ports to XML file. | |
/CaptureTime | Specifies the capture time in milliseconds for the save command-line options (/stext, /stab, /scomma, and so on. ) Example: cports.exe /RunAsAdmin /scomma c:\temp\ports1.csv /CaptureTime 15000 |
/RunAsAdmin | Runs CurrPorts as Administrator. |
/sort | This command-line option can be used with other save options for sorting by the desired column. If you don’t specify this option, the list is sorted according to the last sort that you made from the user interface. The parameter can specify the column index (0 for the first column, 1 for the second column, and so on) or the name of the column, like «Remote Port» and «Remote Address». You can specify the ‘ |
‘ prefix character (e.g: «
Remote Address») if you want to sort in descending order. You can put multiple /sort in the command-line if you want to sort by multiple columns.