
Tenho um servidor de produção que funcionou nominalmente até as 16h de ontem, 16/12/2020. Após esse período, ele começou a rejeitar conexões TCP de entrada e conexões que tentavam se conectar através do host local.
O servidor bloqueia todas estas conexões:
• MySQL
• Ping (não pode executar ping ou ser pingado pelo cliente, mas pode executar ping em sites como o Google)
• Tracert
Às vezes, as conexões MySQL passam, mas 95% das vezes recebo um arquivo 10060 timeout error
. O servidor hospeda um site e uma API, ambos acessíveis remotamente.
Eu tentei o seguinte:
• Desligar/ligar o firewall
• Reiniciar o servidor
• Atualizar todas as atualizações disponíveis
• Verificação de malware
• Certificar-se de que a porta 3306 estava escutando
• Executar ping no servidor a partir do cliente
Não tenho ideia de por que isso aconteceu. Acredito que não seja um problema de firewall, mas não consigo pensar em mais nada que pudesse ter mudado. Ninguém efetuou login no servidor e os cron-jobs normais, etc., não modificam nada que possa estar relacionado à rede. Poderia ser o provedor do servidor?
EDITAR Habilitei o log do firewall e ele está mostrando muitos pacotes UDP descartados. Entretanto, toda conexão TCP é recebida. Pesquisando bem rápido, o RDP está sobre TCP, então isso explicaria por que posso fazer RDP no servidor. Então, por que o servidor está descartando pacotes UDP?
EDITAR Resultados do teste do servidor Resultados do teste do cliente
Responder1
Vou mudar para o bloco de resposta, porque, honestamente, tentar fazer qualquer coisa nesse bloco de conversa é uma PITA.
Se ainda não o fez, baixe e instale o PowerShell 7.1 no servidor com problemas.
No PowerShell (PWSH.EXE), execute os seguintes blocos de script e relate a saída.
Isso realizará alguns testes na sua configuração de IP
$All_IPConfigs = Get-NetIPConfiguration | Where-Object {$null -ne $_.IPv4Address.IPAddress}
Foreach ($IPConfig in $All_IPConfigs)
{
Write-Host "###################################"
Write-Host "Testing interface $($IPConfig.InterfaceAlias)"
Write-Host "Testing ip $($IPConfig.IPv4Address.IPAddress)"
$Test_Self = $null
$Test_Self = Test-Connection -ComputerName $($IPConfig.IPv4Address.IPAddress) -Ping -Count 2 -Quiet -ErrorAction SilentlyContinue
Write-Host "[Can ping self?]: $($Test_Self)"
Foreach ($Gateay in $($IPConfig.IPv4DefaultGateway.NextHop))
{
Write-Host "Testing gateway $($Gateay)"
$Test_Gateway = $null
$Test_Gateway = Test-Connection -ComputerName $($Gateay) -Ping -Count 2 -Quiet -ErrorAction SilentlyContinue
Write-Host "[Can ping gateway?]: $($Test_Gateway)"
}
Foreach ($DNS_Server in $($IPConfig.DNSServer.ServerAddresses))
{
Write-Host "Testing DNS IP $($DNS_Server)"
$Test_DNS_Network = $null
$Test_DNS_Network = Test-NetConnection -ComputerName $DNS_Server -Port 53 -ErrorAction SilentlyContinue
$Test_Resolove_Self = $null
$Test_Resolove_Self = Resolve-DnsName -Name "$($env:computername)" -Server $DNS_Server -Type A -ErrorAction SilentlyContinue | Select-Object -First 1
$Test_Resolove_GMail = $null
$Test_Resolove_GMail = Resolve-DnsName -Name "gmail.com" -Server $DNS_Server -Type A -ErrorAction SilentlyContinue | Select-Object -First 1
Write-Host "[Can ping DNS server?]: $($Test_DNS_Network.PingSucceeded)"
Write-Host "[Can connect to DNS server TCP port 53?]: $($Test_DNS_Network.TcpTestSucceeded)"
Write-Host "[Can resolve self?]: $($Test_Resolove_Self.IPAddress)"
Write-Host "[Can resolve gmail?]: $($Test_Resolove_GMail.IPAddress)"
}
Write-Host "Testing Google DNS IP 8.8.8.8"
$Test_Google_DNS = $null
$Test_Google_DNS = Resolve-DnsName -Name "gmail.com" -Server "8.8.8.8" -Type A -ErrorAction SilentlyContinue | Select-Object -First 1
Write-Host "[Can resolve gmail via Google DNS?]: $($Test_Google_DNS.IPAddress)"
}
Configuração de IP
Get-NetIPConfiguration
Todas as conexões TCP de rede
Get-NetTCPConnection
Todas as conexões TCP de rede
Get-NetTCPConnection
Além disso, execute os mesmos testes no cliente que não está conseguindo se conectar (exceto todas as conexões TCP).