Estou tentando escrever um programa de servidor em C, usando outro cliente, recebo este erro quando tento conectar pela porta 2080 por exemplo.
connection refused
Quais podem ser as razões desse erro?
c
sockets
connection-refused
Zenet
fonte
fonte
ping
editado, downforeveryoneorjustme.com mostrou que não sou só eu e ainda posso acessá-lo via FTP. Depois de alguns minutos, os erros foram resolvidos.connect()
depende de um IP e porta específicos estarem prontos para uso.Respostas:
Pode haver muitos motivos, mas os mais comuns são:
A porta não está aberta na máquina de destino.
A porta está aberta na máquina de destino, mas seu backlog de conexões pendentes está cheio.
Um firewall entre o cliente e o servidor está bloqueando o acesso (verifique também os firewalls locais).
Após verificar se há firewalls e se a porta está aberta, use telnet para se conectar ao ip / porta para testar a conectividade. Isso remove qualquer problema potencial de seu aplicativo.
fonte
O erro significa que o SO do soquete de escuta reconheceu a solicitação de conexão de entrada, mas optou por rejeitá-la intencionalmente.
Supondo que um firewall intermediário não esteja atrapalhando, há apenas dois motivos (que eu conheço) para o SO rejeitar uma solicitação de conexão de entrada. Uma razão já foi mencionada várias vezes - a porta de escuta que está sendo conectada não está aberta.
Há outro motivo que ainda não foi mencionado - a porta de escuta está realmente aberta e sendo usada ativamente, mas seu acúmulo de solicitações de conexão de entrada enfileiradas atingiu seu máximo, então não há espaço disponível para a solicitação de conexão de entrada ser enfileirada naquele momento. O código do servidor ainda não chamou accept () vezes suficientes para terminar de limpar os slots disponíveis para novos itens da fila.
Espere um pouco e tente a conexão novamente. Infelizmente, não há como diferenciar entre "a porta não está aberta" e "a porta está aberta, mas muito ocupada no momento". Ambos usam o mesmo código de erro genérico.
fonte
Se você tentar abrir uma conexão TCP para outro host e vir o erro "Conexão recusada", significa que
RST é um bit no pacote TCP que indica que a conexão deve ser reiniciada. Normalmente isso significa que o outro host recebeu sua tentativa de conexão e está recusando ativamente sua conexão TCP, mas às vezes um firewall intermediário pode bloquear seu pacote TCP SYN e enviar um TCP RST de volta para você.
Consulte https://tools.ietf.org/html/rfc793 página 69:
fonte
Conexão recusada significa que a porta à qual você está tentando se conectar não está realmente aberta.
Portanto, ou você está se conectando ao endereço IP errado, ou à porta errada, ou o servidor está escutando na porta errada ou não está realmente funcionando.
Um erro comum é não especificar o número da porta ao vincular ou conectar na ordem de bytes da rede ...
fonte
Verifique no lado do servidor se ele está escutando na porta 2080. Primeiro, tente confirmar na máquina do servidor emitindo telnet para essa porta:
telnet localhost 2080
Se estiver ouvindo, é capaz de responder.
fonte
1. Verifique o status do seu servidor.
2. Verifique o status da porta.
Por exemplo, 3306
netstat -nupl|grep 3306
.3. Verifique seus firewalls. Por exemplo, adicione 3306
fonte
Embora não pareça ser o caso em sua situação, às vezes um erro de conexão recusada também pode indicar que há um conflito de endereço IP em sua rede. Você pode pesquisar possíveis conflitos de ip executando:
e
Esta questão AskUbuntu tem mais algumas informações também.
fonte
Do ponto de vista de um firewall de Checkpoint, você verá uma mensagem do firewall se realmente escolher Rejeitar como uma Ação, expondo assim a um invasor potencial a presença de um firewall na frente do servidor. O firewall descartará silenciosamente todas as conexões que não correspondam à política. A conexão recusada quase sempre vem do servidor
fonte
Tenho o mesmo problema com meu computador de trabalho. O problema é que quando você insere localhost ele vai para o endereço do proxy e não para o endereço local, você deve ignorá-lo, siga estas etapas
Chrome => Configurações => Alterar configurações de proxy => Configurações de LAN => marque Ignorar servidor proxy para endereços locais.
fonte
No Ubuntu, tente
sudo ufw allow <port_number>
permitir o acesso do firewall ao servidor e ao banco de dados.fonte
Tente passar o parâmetro de porta "-p":
fonte
No meu caso, acontece quando o site está bloqueado no meu país e não uso VPN. Por exemplo, quando tento acessar o vimeo.com da Indonésia, que está bloqueado.
fonte
Eu tive a mesma mensagem com uma causa totalmente diferente: o
wsock32.dll
não foi encontrado. A::socket(PF_INET, SOCK_STREAM, 0);
chamada continuava retornando um,INVALID_SOCKET
mas o motivo era que a DLL do Winsock não estava carregada.No final, lancei o monitor de processos do Sysinternals e percebi que ele procurou a dll 'em todos os lugares', mas não a encontrei.
Falhas silenciosas são ótimas!
fonte