Windows list all used ports

This blog shows how to find TCP ports used or reserved by applications on Windows. It is not related to specific SAP applications.

Problem:
An application cannot start, because the port it wants to use, is in use by another application (or components of the operating system).
How can we found out which application uses this port?

Example:

SAP Message Server executable cannot start, because the ports it wants to open is in use by another application.
The ports which should be used in this example are: 3600 and 3900.

Use netstat -anob to list all established and listening ports

The command “netstat -anob” shows all in-use ports and the binary (application) which use them.

Example:

In this example we see the process msg_server.exe which is listening on ports 3600 and 3900.
Another msg_server.exe which tries to bind these ports, must therefore fail.

Use netstat -anoq to list all bound ports (= reserved ports)

The command “netstat -anoq” additionally shows a list of all ports in “bound” state. Unfortunately, the option “b” for binary cannot be used in conjunction with the “q” parameter.

Example

To get a nicer list of bound ports, use this PowerShell command line:

Get-NetTCPConnection -State Bound | ForEach-Object {$p = (Get-Process -Id $_.OwningProcess);New-Object -TypeName psobject -Property @{ "LocalPort" = $_.LocalPort; "PID" = $p.Id; "ProcessName" = $p.Name; }} | Format-Table -AutoSize -Property PID, ProcessName, LocalPort

Example:

In this list we see SAP applications, but also Windows components like Cluster service (clussvc.exe), Cluster Resource Monitor (rhs.exe), Microsoft Management Console (MMC) and other applications.

A bound port can also be in established state (all SAP applications in above example have a related “established” entry.

Port 61493 is in use by Windows services host (svchost), but “netstat -ano” shows no related established port. In this case, the port is “reserved” by the OS for this application.
Summary:
Look for applications / processes which appear in the bound-list, but not in the established-list.

If you want to search for applications that use/reserve a specific port, netstat -ano is not sufficient. You need to look also for ports in “bound” state.

Links:

https://superuser.com/questions/557665/determining-what-process-has-bound-a-port-without-listening-on-windows

https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/netstat

In another article, we explained computer ports and what they’re used for. Other than that, what can we do with port information? Since all traffic in and out of the computer goes through ports, we can check on them to see what they’re doing. Maybe the port isn’t listening for traffic? Maybe something is using a port that shouldn’t be? 

We’re going to use the Windows command netstat to see our listening ports and PID (Process ID). We’re also going to see what we can do with that information.

What Is Netstat?

The netstat command is a combination of the words ‘network’ and ‘statistics’. The netstat command works in all versions of Windows from Windows XP right up to Windows 10. It’s also used in other operating systems (OS) like Unix and Linux, but we’ll stick to Windows here.

Netstat can provide us with:

  • The name of the protocol the port is using (TCP or UDP).
  • The local IP address and name of the computer and the port number being used.
  • The IP address and port number to which we’re connecting.
  • The state of a TCP connection. For details on what these states are, read the Event Processing section of RFC 793.
  • Use the key combination Win Key + X. In the menu that opens, select Command Prompt.
  • Enter the command <pre>netstat -a -n -o</pre>. The parameters for netstat are preceded with a hyphen, not a forward slash like many other commands. The -a tells it to show us all active connections and the ports on which the computer is listening.

    The -n tells netstat to show the IP addresses and ports as numbers only. We’re telling it to not try to resolve the names. This makes for a quicker and neater display. The -o tells netstat to include the PID. We’ll use the PID later to find out what process is using a specific port.

  • View the results and take note of the addresses, port numbers, state, and PID. Let’s say we want to know what’s using port 63240. Note that its PID is 8552 and it’s connecting to the IP address 172.217.12.138 on port 443.

What’s Using That Port?

  • Open Task Manager. That’s most easily done by using the key combination Ctrl + Shift + Esc.
  • Click on the Details tab. To make this easier to find, click on the PID column header to sort the PIDs numerically.
  • Scroll down to PID 8552 and see what process it is. In this case, it’s googledrivesync.exe. But is it really? Sometimes viruses can make themselves look like legitimate processes.
  • In a web browser, go to ipinfo.io. Enter the IP address 172.217.12.138. As we can see, the IP address is registered to Google. So this googledrivesync.exe is a legitimate one.

How To Get Port, PID, & Process Name In PowerShell

PowerShell is Microsoft’s newer way to use a command-line interface with Windows. We say newer, but it’s been around for several versions. You should learn PowerShell even if you’re a home user.

Most Windows commands also work in PowerShell, plus we can combine them with PowerShell’s cmdlets – pronounced command-lets. Joe at Winteltools.com provides the script for this method.

  • Open Notepad and enter the following code:
$netstat = netstat -aon | Select-String -pattern "(TCP|UDP)"
$processList = Get-Process

foreach ($result in $netstat) {
   $splitArray = $result -split " "
   $procID = $splitArray[$splitArray.length – 1]
   $processName = $processList | Where-Object {$_.id -eq $procID} |    select processname
   $splitArray[$splitArray.length – 1] = $procID + " " +      $processName.processname
   $splitArray -join " "
}
  • Save the file as get-NetstatProcessName.ps1. Make sure to note where it’s being saved. It’s important to change the Save as type: to All Files (*.*) or it will get saved as get-NetstatProcessName.ps1.txt and it won’t work for us.
  • Open PowerShell and navigate to the location in which the script was saved. In this case, it’s <pre>cd C:\Scripts</pre>. Hit Enter to run the command.
  • Run the script using dot-sourcing to make it work. That means use ./ before the name of the file. The command will be <pre>./get-NetstatProcessName.ps1</pre> 
  • Now we can see all the traditional netstat info plus the process name. No need to open Task Manager anymore.

Go Get Them

We’ve covered two ways to use the netstat command to see listening ports. It can be used either in the old Command Prompt or within a PowerShell script. With the information it can give us, we’ve looked at how it can help us figure out what our computer is doing. 

If you thought netstat is a great utility, take a look at some other Windows TCP/IP utilities like tracert, ipconfig, and nslookup. Or use Resource Monitor to get a better look into hidden website and Internet connections. There is a lot you can do to see exactly what your computer is doing.

Have you used netstat to solve a problem? Please tell us what you did. Any questions about how to use netstat? Please ask us in the comments below.

I have trouble identifying the application using port 25 on my Windows-10 system. Any useful hints to list used ports and using applications without 3rd party applications ?

asked Jan 12, 2016 at 14:49

Younes Regaieg's user avatar

0

Without the use of any external software. Open a command prompt:

  1. netstat -abn

OR

  1. netstat -a -n -p tcp -o

Within Task Manager -> Processes/Details Tab

You can match the PID against the result of the second netstat command above, you can then find the image name/end the process etc if required.

There’s also plenty of third party applications that can simplify the process and make the information easier to read, simple Google search if you want to find them.

answered Jan 12, 2016 at 14:57

Samuel Nicholson's user avatar

Samuel NicholsonSamuel Nicholson

1,5442 gold badges13 silver badges26 bronze badges

0

A GUI solution would be to use the Resource Monitor of Windows. You can start it by pressing START and entering this command: Perfmon /Res

Then you can click on the Network tab to view all network connections, listening ports, etc.

Here is a screenshot of what it looks like:
Resource Monitor network tab

jkmartindale's user avatar

answered Jan 12, 2016 at 15:05

masgo's user avatar

masgomasgo

2,1841 gold badge16 silver badges32 bronze badges

0

Open a command shell and run

netstat -a -n -p tcp -o

No need to run as administrator.

The last column is the PID. You can look up this PID in the task manager. Be sure to activate «show processes of all users» there.

See the documentation for netstat.

answered Jan 12, 2016 at 14:58

user544199's user avatar

The post requests responses without third party apps, however, others reading this may be more inclined toward a GUI.

For those looking for an application, TCPView seems to work best.

It is microsoft recommended and has a clear and easy to use GUI.

https://learn.microsoft.com/en-us/sysinternals/downloads/tcpview

answered Mar 7 at 10:15

Gunty's user avatar

GuntyGunty

1116 bronze badges

1

All of you were way behind. A far easier method (was, & still is in 2023) is first to open the Command Prompt.
(can do this by holding the windows logo key on your keybard+Cut&Paste, or just type in these 3 letters> cmd.
So, Winlogo+cmd)
Than type in or Copy(Ctrl+C), & Paste(Ctrl+V)
*To terminate running process:

cmd>TASKLIST

[choose the task you want to terminate,than:]

cmd>taskkill /IM [program name ie:]mswebview2.exe /F

*Typing help in cmd gives options after running something
too. Sometimes, it may even provide an example,
that’s how the above EASY method was obtained-
after very minimal tial & error.
So the very easy way after the tidbits above:

  1. windowslogo+cmd

  2.             TASKLIST
    
  3.             taskkill /IM [program name ie:]mswebview2.exe /F
    

EASY METHOD + no «3rd.party» software .)

answered Apr 8 at 13:44

Friend's user avatar

1

Old now, but I use this powershell (saved as simplens.ps1):

$procs = Get-Process

$ports = netstat -ano
$ports[4..$ports.length] |
    # First column comes back empty, so we set to "ProcessName" as a placeholder for later
    ConvertFrom-String -PropertyNames ProcessName,Proto,Local,Remote,State,PID  | 
    where  State -eq 'LISTENING' | 
    foreach {
        $_.ProcessName = ($procs | where ID -eq $_.PID).ProcessName
        $_
    } | 
    Format-Table

answered Sep 11 at 21:24

Joel Coehoorn's user avatar

Joel CoehoornJoel Coehoorn

28.1k15 gold badges88 silver badges133 bronze badges

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

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 check open ports on Windows and see which applications are using which ports.

Also read: How to Set Up Port Forwarding in Windows

Check Port Usage With 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 check port status on Windows.

Check Open Ports Windows Currports

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.

Check Open Ports Windows Currports Filters

Hit OK when you’re ready, and the list will filter down to your queries.

Also read: How to Open Ports and Set Up Port Forwarding on Your Router

List Open Ports Using the Command Prompt

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 open 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.

check-ports-in-use-windows-10-127-0-0-1

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.)

check-ports-in-use-windows-10-port-number

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.

check-ports-in-use-windows-10-192-168-x-x

Also read: How to Disable USB Ports in Windows 10

Install TCPView to Check Open Ports

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.

check-ports-in-use-windows-10-tcpview

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.

check-ports-in-use-windows-10-end-process

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.

Robert Zak

Tech writer at Make Tech Easier. Enjoys Android, Windows, and tinkering with retro console emulation to breaking point.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Содержание

  • Используем команду netstat для просмотра открытых портов
    • Отображение всех подключений и ожидающих портов
    • Постраничное отображение открытых портов
    • Запись результатов в текстовый файл
    • Поиск по содержимому
  • Вопросы и ответы

Как посмотреть открытые порты с помощью команды netstat

Netstat — одна из встроенных команд операционной системы Windows. В ее функциональность входит отображение состояния сети со всеми требуемыми деталями. Пользователь задействует встроенный синтаксис, чтобы отфильтровать результаты или задать дополнительные действия для этой утилиты. В рамках сегодняшнего материала мы бы хотели рассказать о доступных методах просмотра открытых портов с помощью этого стандартного инструмента.

Портами называют натуральные числа, которые записываются в заголовках протоколов передачи данных (TCP, UDP и так далее). Они определяют процесс получения и передачи информации в рамках одного хоста и в большинстве случаев используются онлайн-программами для установки соединения. Просмотр открытых портов может понадобиться в случае определения работоспособности приложений или при стандартном мониторинге сети. Лучше всего с этим справится команда netstat, а ее активация доступна с применением разных аргументов.

Отображение всех подключений и ожидающих портов

Самый простой аргумент, применяемый к утилите netstat, имеет обозначение -a, и отвечает за вывод сведений обо всех активных подключениях их портов, которые ожидают соединения. Такая информация доступна к просмотру без применения прав администратора и выводится на экран следующим образом:

  1. Поскольку рассматриваемая команда является консольной, потребуется запустить приложение, чтобы ее выполнить. Откройте меню «Пуск», найдите там «Командную строку» и запустите ее. О других методах перехода в консоль читайте в другом нашем материале по следующей ссылке.
  2. Переход в командую строку Windows для использования стандартной команды netstat

    Подробнее: Открытие командной строки в Windows 10

  3. В поле ввода напечатайте netstat -a, а затем нажмите на клавишу Enter.
  4. Ввод команды netstat с аргументом для отображения иноформации об активных подключениях

  5. На экране тут же начнет появляться список с доступными адресами.
  6. Отображение информации об активных подключениях через команду netstat

Мониторинг производится в режиме реального времени, поэтому не все результаты будут доступны к просмотру сразу. Придется подождать немного времени, чтобы все они могли прогрузиться. Во время этого не закрывайте консоль, если не хотите прервать процесс, ведь при повторном запуске команды все начнется заново.

Постраничное отображение открытых портов

К сожалению, приведенный выше вариант отображает не все необходимые данные об открытых портах, поскольку выводит он только те параметры, которые на текущий момент находятся в состоянии LISTENING. К тому же там не указывались уникальные идентификаторы процессов (PID), что тоже играет важную роль во время определенного мониторинга. Потому советуем обратить внимание немного на другие аргументы.

  1. В консоли пропишите netstat -aon | more и нажмите на Enter.
  2. Ввод команды netstat для подробного отображения параметров постранично

  3. Здесь сразу же появится вся важная информация о портах, которые находятся в разных состояниях. В пятой колонке обозначаются идентификаторы.
  4. Постраничное отображение соединений с идентификаторами через команду netstat

  5. Не все порты выводятся сразу, поэтому нужно жать на Enter, чтобы каждый раз отображать еще по одной строке.
  6. Продолжение отображение строк с идентификаторами через команду netstat

  7. Если вы увидите поле ввода, значит все страницы были успешно выведены на экран.
  8. Завершение отображения строк с идентификаторами в netstat

Теперь хотелось бы поговорить про используемые аргументы и значение увиденных параметров. Давайте сначала затронем знакомые буквы синтаксиса:

Аргумент Описание
-a Отображает сведения обо всех подключениях
-o Отвечает за включение колонки с идентификатором каждого адреса
-n Переводит адреса портов и их номера в числовой формат
more Постраничный вывод элементов

Важно также уточнить и состояние портов, поскольку они могут являться открытыми, но на этот момент не использоваться или ожидать своего подключения. В колонке «Состояние» могут отображаться такие показатели:

Показатель Описание
CLOSE_WAIT Подключение ожидает своего закрытия
CLOSED Подключение было успешно закрыто
ESTABLISHED Активная работа соединения
LISTENING Ожидается соединение или еще говорят: «Слушается порт»
TIME_WAIT Время ответа было превышено

Эти объяснения должны разобраться помочь не только с составлением запросов для netstat, но и без проблем разобраться с полученной информацией.

Запись результатов в текстовый файл

Иногда требуется сохранить готовые результаты мониторинга в текстовый файл, чтобы выполнить дальнейшие действия, ведь копировать информацию прямо из консоли не всегда удобно, да и займет это намного больше времени, нежели просто указать дополнительный аргумент при вводе команды.

  1. Напишите, например, netstat -aon | more или netstat - a, а затем добавьте > netstat.txt, что означает запись результатов в указанный файл (он будет создан в пользовательской папке). После ввода нажмите на Enter.
  2. Ввод команды для сохранения результатов netstat в текстовом варианте

  3. Запустите файл, введя его название и формат в консоли.
  4. Запуск текстового файла с сохраненными результатами команды netstat

  5. Теперь вы можете управлять содержимым и сохранить его в любом другом удобном месте.
  6. Просмотр текстового файла с результатами netstat

Поиск по содержимому

В случае необходимости отображения только подключений с определенными параметрами или адресами лучше всего использовать дополнительную команду find, которая перед выводом сведений произведет фильтрацию данных, и это освободит вас от надобности вручную искать каждый соответствующий пункт. Тогда полная консольная команда приобретает следующий вид:

  1. Введите netstat -a | find /I "LISTENING", что задаст параметр отображения только портов с состоянием LISTENING, аргумент /I при этом используется для отмены учета регистра символов.
  2. Команда netstat с фильтром по содержимому

  3. В результатах отобразится только подходящая информация.
  4. Отображение результатов netstat с фильтром по содержимому

Выше вы узнали о методах определения открытых портов через встроенную команду netstat. После этого можете приступить к работе с программами или пробросу других портов в случае необходимости. К слову, этой теме посвящен отдельный материал на нашем сайте. Перейдите по указанным ниже ссылкам, чтобы ознакомиться с подробными инструкциями.

Читайте также:
Открываем порты на роутере
Открываем порты в брандмауэре Windows 10

Команда netstat всегда показывает правильные результаты, однако если хотите убедиться в открытости порта другим путем, рекомендуем задействовать специальные онлайн-сервисы, позволяющие справиться с поставленной задачей.

Читайте также: Сканирование портов онлайн

  • Windows linux что это такое
  • Windows key iso windows 7
  • Windows l2tp маршрут по умолчанию
  • Windows linux скачать с официального сайта
  • Windows kms activator windows 7 ultimate x64