solucion significa rehusada refused que error conexión c sockets connection-refused

significa - error connection refused



¿Cuáles pueden ser los motivos de conexión de errores rechazados? (11)

1.Verifique el estado de su servidor.

2. Verifique el estado del puerto.

Por ejemplo, 3306 netstat -nupl|grep 3306 .

3. Verifique sus firewalls. Por ejemplo, agregue 3306

vim /etc/sysconfig/iptables # add -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

Intento escribir un programa de servidor en C, usando otro cliente, obtengo este error cuando trato de conectarme a través del puerto 2080, por ejemplo.

connection refused

¿Cuáles pueden ser las razones de este error?


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 direcciones IP en su red. Puede buscar posibles conflictos de ip ejecutando:

arp-scan -I eth0 -l | grep <ipaddress>

y

arping <ipaddress>

This pregunta AskUbuntu también tiene más información.


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


Desde el punto de vista de un firewall de Checkpoint, verá un mensaje del firewall si realmente elige Rechazar como acción, exponiendo así a un atacante potencial la presencia de un firewall frente al servidor. El firewall suspenderá silenciosamente todas las conexiones que no coincidan con la política. La conexión rechazada casi siempre proviene del servidor


El error significa que el sistema operativo de la toma de escucha reconoció la solicitud de conexión entrante, pero optó por rechazarla intencionalmente.

Suponiendo que un firewall intermedio no interfiere, solo hay dos razones (que yo sepa) para que el sistema operativo rechace una solicitud de conexión entrante. Ya se ha mencionado una razón varias veces: el puerto de escucha al que se conecta no está abierto.

Hay otro motivo 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 entrantes ha alcanzado su máximo, por lo que no hay espacio disponible para que la solicitud de conexión entrante se ponga en cola. momento. El código del servidor no ha llamado a accept () las veces suficientes para finalizar la limpieza de los espacios disponibles para los nuevos elementos de la cola.

Espere un momento o así y vuelva a intentar la conexión. Lamentablemente, 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.


En Ubuntu, sudo ufw allow <port_number> para permitir el acceso del firewall a su servidor y a db.


La conexión rechazada significa que el puerto al que intenta 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 realmente.

Un error común es no especificar el número de puerto cuando se vincula o conecta en orden de bytes de red ...


Puede haber muchas razones, pero las más comunes son:

  1. El puerto no está abierto en la máquina de destino.

  2. El puerto está abierto en la máquina de destino, pero su retraso en las conexiones pendientes está lleno.

  3. Un firewall entre el cliente y el servidor está bloqueando el acceso (también verifica los firewalls locales).

Después de buscar firewalls y de 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.


Si intenta abrir una conexión TCP a otro host y ver el error "Conexión rechazada", significa que

  1. Enviaste un paquete TCP SYN al otro host.
  2. Luego recibió un paquete TCP RST en respuesta.

RST está un poco en el paquete TCP que indica que la conexión debe reiniciarse. 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 firewall intermedio puede bloquear su paquete TCP SYN y enviarle un TCP RST.

Ver https://tools.ietf.org/html/rfc793 página 69:

Estado SYN-RECIBIDO

If the RST bit is set If this connection was initiated with a passive OPEN (i.e., came from the LISTEN state), then return this connection to LISTEN state and return. The user need not be informed. If this connection was initiated with an active OPEN (i.e., came from SYN-SENT state) then the connection was refused, signal the user "connection refused". In either case, all segments on the retransmission queue should be removed. And in the active OPEN case, enter the CLOSED state and delete the TCB, and return.


Tenía el mismo mensaje con una causa totalmente diferente: el wsock32.dll no se encontró. The ::socket(PF_INET, SOCK_STREAM, 0); La llamada devolvía un INVALID_SOCKET pero la razón era que el dll winsock no estaba cargado.

Al final, lancé el monitor de procesos de Sysinternals y noté que buscaba el dll en "todas partes" pero no lo encontraba.

¡Las fallas silenciosas son geniales!


Tengo el mismo problema con mi computadora de trabajo. El problema es que cuando ingresas a localhost va a la dirección del proxy, no a la dirección local que debes omitir, sigue estos pasos

Chrome => Configuración => Cambiar configuración de proxy => Configuración de LAN => marcar Omitir servidor proxy para direcciones locales.