Estoy tratando de escribir un programa de servidor en C, usando otro cliente, obtengo este error cuando intento conectarme a través del puerto 2080, por ejemplo.
connection refused
¿Cuáles pueden ser las razones de este error?
c
sockets
connection-refused
Zenet
fuente
fuente
ping
, downforeveryoneorjustme.com mostró que no soy solo yo y que también puedo acceder a él a través de FTP. Después de un par de minutos se resolvieron los errores.connect()
depende de que una IP y un puerto específicos estén listos para su uso.Respuestas:
Puede haber muchas razones, pero las más comunes son:
El puerto no está abierto en la máquina de destino.
El puerto está abierto en la máquina de destino, pero su acumulación de conexiones pendientes está llena.
Un firewall entre el cliente y el servidor está bloqueando el acceso (también verifique los firewalls locales).
Después de verificar si hay firewalls y que el puerto está abierto, use telnet para conectarse a la ip / puerto para probar la conectividad. Esto elimina cualquier problema potencial de su aplicación.
fuente
El error significa que el sistema operativo del socket de escucha reconoció la solicitud de conexión entrante pero eligió rechazarla intencionalmente.
Suponiendo que un firewall intermedio no se interponga en el camino, solo hay dos razones (que yo conozca) para que el sistema operativo rechace una solicitud de conexión entrante. Ya se ha mencionado varias veces una razón: el puerto de escucha al que está conectado no está abierto.
Hay otra razón que aún no se ha mencionado: el puerto de escucha está realmente abierto y se está utilizando activamente, pero su acumulación de solicitudes de conexión entrante en cola ha alcanzado su máximo, por lo que no hay espacio disponible para que la solicitud de conexión entrante se ponga en cola en ese momento. El código del servidor aún no ha llamado a accept () suficientes veces para terminar de limpiar los espacios disponibles para nuevos elementos de la cola.
Espere un momento y vuelva a intentar la conexión. Desafortunadamente, no hay forma de diferenciar entre "el puerto no está abierto en absoluto" y "el puerto está abierto pero demasiado ocupado en este momento". Ambos usan el mismo código de error genérico.
fuente
Si intenta abrir una conexión TCP a otro host y ve el error "Conexión rechazada", significa que
RST es un bit en el paquete TCP que indica que la conexión debe restablecerse. Por lo general, significa que el otro host ha recibido su intento de conexión y está rechazando activamente su conexión TCP, pero a veces un cortafuegos intermedio puede bloquear su paquete TCP SYN y enviarle un TCP RST.
Consulte https://tools.ietf.org/html/rfc793 página 69:
fuente
Conexión rechazada significa que el puerto al que está intentando conectarse no está realmente abierto.
Entonces, o se está conectando a la dirección IP incorrecta o al puerto incorrecto, o el servidor está escuchando en el puerto incorrecto, o no se está ejecutando.
Un error común es no especificar el número de puerto al enlazar o conectar en orden de bytes de red ...
fuente
Verifique en el lado del servidor que esté escuchando en el puerto 2080. Primero intente confirmarlo en la máquina del servidor emitiendo telnet a ese puerto:
telnet localhost 2080
Si está escuchando, puede responder.
fuente
1. Verifique el estado de su servidor.
2.Compruebe el estado del puerto.
Por ejemplo 3306
netstat -nupl|grep 3306
.3. Verifique sus firewalls. Por ejemplo, agregue 3306
fuente
Aunque no parece ser el caso para su situación, a veces un error de conexión rechazada también puede indicar que hay un conflicto de dirección IP en su red. Puede buscar posibles conflictos de IP ejecutando:
y
Esta pregunta de AskUbuntu también tiene más información.
fuente
Desde el punto de vista de un cortafuegos de Checkpoint, verá un mensaje del cortafuegos si realmente elige Rechazar como una acción, exponiendo así a un posible atacante la presencia de un cortafuegos delante del servidor. El firewall eliminará silenciosamente todas las conexiones que no coincidan con la política. La conexión rechazada casi siempre proviene del servidor
fuente
Tengo el mismo problema con la computadora de mi trabajo. El problema es que cuando ingresa localhost, va a la dirección del proxy, no a la dirección local, debe omitirlo, siga estos pasos
Chrome => Configuración => Cambiar configuración de proxy => Configuración de LAN => marque Omitir servidor proxy para direcciones locales.
fuente
En Ubuntu, intente
sudo ufw allow <port_number>
permitir el acceso del firewall tanto a su servidor como a su base de datos.fuente
Intente pasar el parámetro de puerto "-p":
fuente
En mi caso, sucede cuando el sitio está bloqueado en mi país y no uso VPN. Por ejemplo, cuando intento acceder a vimeo.com desde Indonesia, que está bloqueado.
fuente
Recibí el mismo mensaje con una causa totalmente diferente:
wsock32.dll
no se encontró. La::socket(PF_INET, SOCK_STREAM, 0);
llamada seguía devolviendo unINVALID_SOCKET
pero la razón era que la dll de winsock no estaba cargada.Al final, lancé el monitor de proceso de Sysinternals y noté que buscaba el dll 'en todas partes' pero no lo encontraba.
¡Los fallos silenciosos son geniales!
fuente