O processo do sistema está usando uma porta, por quê? Windows 7

0

Existe uma maneira genérica de descobrir qual serviço atende a uma porta como o processo do Sistema?

No meu caso, o processo do sistema, PID 4, está escutando na porta 443 (https), então outro programa que precisa dessa porta não pode iniciar.

Antes, por muitos anos o sistema não usava essa porta, então eu poderia usar esse outro programa.

Como posso descobrir o que faz o sistema escutar essa porta?

netstat -a -b -o executado sob prompt elevado mostra

TCP 0.0.0.0:443 MyComputerName:0 LISTENING 4
Can not obtain ownership information

Eu tenho o Apache instalado, mas quando eu paro, nada muda. Eu tenho o IIS desinstalado. Outros suspeitos são Skype, CrashPlan e MySQL, mas eles rodam neste computador há anos sem causar esse problema. O Skype tem a opção [_] Use port 80 and 443 desmarcada. Colocar o CrashPlan em suspensão não libera a porta.

Eu perguntei a esta questão em StackOverflow, mas foi considerado fora do tópico.

Existe uma pergunta semelhante na porta 80 , mas as respostas lá só dizem para parar este ou aquele serviço específico, que não generaliza para outra porta.

Existe outra pergunta semelhante , mas nesse caso o OP comenta que o netstat -ab mostra svchost.exe como a fonte de conexão, e nenhuma das respostas resolve o problema no meu caso.

    
por Alexander Gelbukh 03.07.2017 / 23:34

1 resposta

0

De minha leitura, pode haver várias causas. Por exemplo, depois de ler a pergunta de Cornelius: “Por que O processo do sistema está escutando na porta 443? ”, tenho a impressão de que pelo menos essas três causas diferentes podem levar a uma coisa dessas:

  • HTTP.SYS relacionado ao IIS (servidor da web da Microsoft)
  • Uma conexão de rede aceitando uma conexão VPN de entrada. (Possivelmente relacionado ao "Acesso Remoto", parte do RRAS que é "Roteamento e Acesso Remoto"?)
  • Skype (veja o hiperlink mais cedo na minha resposta, para fotos).

Suponho que eles tenham alguns fatores comuns, como o uso do código da Microsoft e, provavelmente, o uso de um driver de baixo nível.

Eu acho que tem que haver uma maneira de verificar, em vez de caçar. A pilha TCP / IP precisa saber para onde enviar o tráfego e podemos verificar o que a pilha TCP / IP fará usando o comando netstat . Infelizmente, todo o comando netstat está nos dando é o PID de todo o sistema, que nos aponta para um processo chamado "Sistema". Eu acho que, da mesma forma, o processo "Sistema" deve ter uma maneira de saber para qual driver enviar o tráfego. Ainda não encontrei uma maneira de verificar isso.

Enquanto isso, imaginei que indicaria várias causas possíveis que encontrei. Espero que um deles leve você a encontrar a resposta que está procurando.

Nota: A maneira como encontrei esta causa foi observando alguns dos promissores itens "Relacionados" que o Superuser.com exibe no quadro correto. Uma das regras básicas do Stack Exchange é tentar fazer sua própria pesquisa anterior. Sugiro outra boa regra: depois de postar uma pergunta, marque a seção "Relacionada" no quadro à direita, porque o IMHO Stack Exchange faz um bom trabalho em encontrar com frequência perguntas bem no tópico.

No meu sistema Microsoft Windows, o PID 4 também pertence ao processo System, portanto, não parece que o PID específico seja muito aleatório.

O resto desta questão apenas explica algumas coisas que eu verifiquei no meu sistema. Isso não ajudará muito (Alexander Gelbukh), porque eu posso dizer que você já descobriu a maior parte ou tudo isso. No entanto, esperamos que as pessoas que leiam estarão menos inclinadas a recomendar cegamente netstat como uma solução, pois a saída do netstat não é uma solução completa e suficiente (porque precisamos fazer mais do que apenas identificar o processo que a pilha de rede TCP / IP envie o tráfego para).

Acho que pode haver vários motivos pelos quais netstat -b pode dizer Can not obtain ownership information , incluindo a falta de elevação do UAC (pelo menos em algumas versões do Microsoft Windows; no meu Windows 10 obtenho resultados diferentes ao executar sem elevação: netstat apenas diz imediatamente The requested operation requires elevation. e dá duas linhas em branco, e fecha.)

Estou obtendo os mesmos resultados que você: Quando eu corro em alta, não consigo ver os resultados do PID 4.

Proto Local Address Foreign Address State PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 996 RpcSs [svchost.exe] TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 Can not obtain ownership information TCP 0.0.0.0:8732 0.0.0.0:0 LISTENING 4 Can not obtain ownership information

(Isso diz que o PID 996 é svchost.exe, mas não há informações sobre o PID 4.)

C:>tasklist /SVC | more

Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ System Idle Process 0 Services 0 4 K System 4 Services 0 4,828 K

C:\WINDOWS\system32>powershell "Get-NetTCPConnection -LocalPort 445 | Format-List"

LocalAddress : :: LocalPort : 445 RemoteAddress : :: RemotePort : 0 State : Listen AppliedSetting : OwningProcess : 4 CreationTime : 3/2/2017 9:56:19 PM OffloadState : InHost

C:\WINDOWS\system32>

    
por 04.07.2017 / 08:23