Desde hace unas semanas tengo un problema muy extraño, donde estoy atascado cómo depurar aún más, sobre todo porque soy más de Linux frente a un MacOS (10.15.4)
De vez en cuando me aparece en Firefox/Chrome un error al solicitar una página web con el error PR_END_OF_FILE_ERROR (firefox) o ERR_CONNECTION_CLOSED (chrome). Esperando un par de minutos se soluciona el problema (he intentado no hacer nada - alejarme durante 5 minutos). A veces funciona durante las siguientes 3 horas sin problemas, a veces vuelve a aparecer después de 5 minutos.
Así que es super inconsistencia y no he encontrado todavía, lo que invoca el problema.
Lo que he averiguado hasta ahora:
- no parece ser un problema con el antivirus Sophos (9.9.8) - desactivado, todavía tenía el problema
- no parece ser un problema con VPN - tengo el problema si estoy en la VPN de la empresa y también si no estoy conectado a la VPN (OpenVPN sobre Tunnelblick o IPSec)
- lo consigo si estoy conectado con WiFi y cuando estoy conectado con Ethernet
- consíguelo en casa y consíguelo en el trabajo
- a veces algunos sitios funcionan, otros no, como MS Teams que parece funcionar todo el tiempo (también ocurre si MS Teams no se está ejecutando)
La última pista que tengo es que parece ser algo así como un proxy oculto, por la salida de curl que obtengo, si el problema persiste.
Primer intento:
Tue May 19 08:31:12,xxx@MBP-133-xxx-2 ~ $ curl stackoverflow.com -v > /dev/null
Trying 151.101.129.69...
* TCP_NODELAY set
* Connected to stackoverflow.com (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: stackoverflow.com
> User-Agent: curl/7.64.1
> Accept: */*
>
* Empty reply from server
* Connection #0 to host stackoverflow.com left intact
curl: (52) Empty reply from server
* Closing connection 0
2º intento (sólo 1 segundo después)
Tue May 19 08:31:13,xxx@MBP-133-xxx-2 ~ $ curl stackoverflow.com -v > /dev/null
Trying 151.101.129.69...
* TCP_NODELAY set
* Connected to stackoverflow.com (151.101.129.69) port 80 (#0)
> GET / HTTP/1.1
> Host: stackoverflow.com
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< cache-control: no-cache, no-store, must-revalidate
< location: https://stackoverflow.com/
< server: Microsoft-IIS/10.0
< x-flags: AA
< x-aspnet-duration-ms: 0
< x-request-guid: 450a82e6-54bc-483f-8825-a778ac09d170
< x-is-crawler: 1
< x-providence-cookie: 0fa36a94-4864-6d95-d737-cc8ab7e2a285
< Transfer-Encoding: chunked
< Accept-Ranges: bytes
< Date: Tue, 19 May 2020 06:31:14 GMT
< Via: 1.1 varnish
< Connection: keep-alive
< X-Served-By: cache-fra19134-FRA
< X-Cache: MISS
< X-Cache-Hits: 0
< X-Timer: S1589869874.022703,VS0,VE93
< Vary: Fastly-SSL
< X-DNS-Prefetch-Control: off
< Set-Cookie: prov=0fa36a94-4864-6d95-d737-cc8ab7e2a285; domain=.stackoverflow.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly
<
{ [5 bytes data]
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Connection #0 to host stackoverflow.com left intact
* Closing connection 0
Si hago esto, entonces más o menos salta entre ambos estados. A veces falla más, a veces tiene más éxito.
Pero el mayor problema que veo aquí para la conexión que falla es Trying 151.101.129.69...
y luego Connected to stackoverflow.com (127.0.0.1)
No tengo una configuración de proxy, en el /etc/hosts
son sólo desarrollar entradas, definitivamente no stackoverflow.com. Entre ambos rizos no hice nada (en realidad era hacer dos llamadas seguidas).
Estoy abierto a cualquier sugerencia sobre cómo seguir depurando esto.
editar-00:
Solicitado curl --trace-ascii trace.log stackoverflow.com
Fracaso:
== Info: Trying 151.101.193.69...
== Info: TCP_NODELAY set
== Info: Connected to stackoverflow.com (127.0.0.1) port 80 (#0)
=> Send header, 81 bytes (0x51)
0000: GET / HTTP/1.1
0010: Host: stackoverflow.com
0029: User-Agent: curl/7.64.1
0042: Accept: */*
004f:
== Info: Empty reply from server
== Info: Connection #0 to host stackoverflow.com left intact
Trabajando:
== Info: Trying 151.101.129.69...
== Info: TCP_NODELAY set
== Info: Connected to stackoverflow.com (151.101.129.69) port 80 (#0)
=> Send header, 81 bytes (0x51)
0000: GET / HTTP/1.1
0010: Host: stackoverflow.com
0029: User-Agent: curl/7.64.1
0042: Accept: */*
004f:
<= Recv header, 32 bytes (0x20)
0000: HTTP/1.1 301 Moved Permanently
<= Recv header, 52 bytes (0x34)
0000: cache-control: no-cache, no-store, must-revalidate
<= Recv header, 38 bytes (0x26)
0000: location: https://stackoverflow.com/
<= Recv header, 28 bytes (0x1c)
0000: server: Microsoft-IIS/10.0
<= Recv header, 13 bytes (0xd)
0000: x-flags: AA
<= Recv header, 25 bytes (0x19)
0000: x-aspnet-duration-ms: 0
<= Recv header, 54 bytes (0x36)
0000: x-request-guid: 6a97f488-95a4-4071-bcc0-f83d8209df2f
<= Recv header, 17 bytes (0x11)
0000: x-is-crawler: 1
<= Recv header, 59 bytes (0x3b)
0000: x-providence-cookie: 3108f7a8-ac68-c64f-680e-2e5dd3bcc55c
<= Recv header, 28 bytes (0x1c)
0000: Transfer-Encoding: chunked
<= Recv header, 22 bytes (0x16)
0000: Accept-Ranges: bytes
<= Recv header, 37 bytes (0x25)
0000: Date: Tue, 19 May 2020 06:57:58 GMT
<= Recv header, 18 bytes (0x12)
0000: Via: 1.1 varnish
<= Recv header, 24 bytes (0x18)
0000: Connection: keep-alive
<= Recv header, 33 bytes (0x21)
0000: X-Served-By: cache-fra19171-FRA
<= Recv header, 15 bytes (0xf)
0000: X-Cache: MISS
<= Recv header, 17 bytes (0x11)
0000: X-Cache-Hits: 0
<= Recv header, 38 bytes (0x26)
0000: X-Timer: S1589871478.446474,VS0,VE94
<= Recv header, 18 bytes (0x12)
0000: Vary: Fastly-SSL
<= Recv header, 29 bytes (0x1d)
0000: X-DNS-Prefetch-Control: off
<= Recv header, 139 bytes (0x8b)
0000: Set-Cookie: prov=3108f7a8-ac68-c64f-680e-2e5dd3bcc55c; domain=.s
0040: tackoverflow.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/;
0080: HttpOnly
<= Recv header, 2 bytes (0x2)
0000:
<= Recv data, 5 bytes (0x5)
0000: 0
0003:
== Info: Connection #0 to host stackoverflow.com left intact
Salida scutil --dns
DNS configuration
resolver #1
search domain[0] : company.com
nameserver[0] : 172.27.10.42
nameserver[1] : 172.27.10.41
nameserver[2] : 172.27.10.43
if_index : 10 (en14)
flags : Request A records
reach : 0x00020002 (Reachable,Directly Reachable Address)
resolver #2
domain : local
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300000
resolver #3
domain : 254.169.in-addr.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300200
resolver #4
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300400
resolver #5
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300600
resolver #6
domain : a.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300800
resolver #7
domain : b.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 301000
DNS configuration (for scoped queries)
resolver #1
search domain[0] : company.com
nameserver[0] : 172.27.10.42
nameserver[1] : 172.27.10.41
nameserver[2] : 172.27.10.43
if_index : 10 (en14)
flags : Scoped, Request A records
reach : 0x00020002 (Reachable,Directly Reachable Address)
Contenido /etc/resolv.com
search company.com
nameserver 172.27.10.42
nameserver 172.27.10.41
nameserver 172.27.10.43
Mi /etc/hosts
es larga y tiene muchas entradas, debido al desarrollo local. Pero se reduce a esto:
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
127.0.0.1 localhost
# a lot of entries like
127.0.0.1 abc.nauts.eu
127.0.0.1 localhost drupal8.local gitlab pharmadbv2.local webgrind.local
127.0.0.1 xhprof.nauts.eu
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 kubernetes.docker.internal
edit-01: Es un problema HTTP/HTTPs solamente. Al igual que si este problema está sucediendo para un servidor interno, no tengo ningún problema para conectarse a él a través de ssh.
editar-02
curl --noproxy company.com --trace-ascii trace2.log jenkins.company.com
== Info: Trying 172.27.10.63...
== Info: TCP_NODELAY set
== Info: Connected to jenkins.company.com (127.0.0.1) port 80 (#0)
=> Send header, 84 bytes (0x54)
0000: GET / HTTP/1.1
0010: Host: jenkins.company.com
002c: User-Agent: curl/7.64.1
0045: Accept: */*
0052:
== Info: Empty reply from server
== Info: Connection #0 to host jenkins.company.com left intact
1 votos
¿Puede añadir su
/etc/hosts
y/etc/resolv.conf
y la salida descutil --dns
?1 votos
Y tal vez también ejecute
curl --trace-ascii trace.log
para obtener más detalles0 votos
Añadido ambos a la descripción - ver edición-00
2 votos
¿Hay un proxy web funcionando en alguna parte?
0 votos
Si voy a Preferencias del Sistema -> Red -> Opciones -> Proxies: todo allí está desmarcado y todos los campos están vacíos. Chrome y Firefox están configurados para utilizar la configuración de proxy del sistema. No veo ningún
env
apuntando a un proxy. ¿Hay alguna otra forma de comprobar si he instalado involuntariamente un proxy (o tal vez un programa que utilizo)?0 votos
He configurado Firefox para que no utilice proxy (Chrome siempre utiliza la configuración del sistema, no hay forma de cambiarlo). Y todavía me sale el error en firefox.
1 votos
¿Si configura su servidor de nombres (en Preferencias del Sistema) a 1.1.1.1 o 8.8.8.8 persiste el problema?
0 votos
También probé curl con --noproxy, sigue igual. Ver salida edit-02
0 votos
Vamos continuar esta discusión en el chat .
0 votos
Gracias por intentar ayudar. Cambiado a 1.1.1.1, la primera vez que se conecta a chat.stackexchange.com, los resultados en mi error. Así que definitivamente necesitaba buscar registros DNS. Pero el cambio a 1.1.1.1 no lo soluciona. Nota al margen: Parece que otro desarrollador tiene el mismo problema, nadie más de la empresa está experimentando esto. Es por eso que yo diría que tiene que ser algo local. fyi: intentado chat.stackexchange.com pero no soy capaz de conectarse a él de una manera que podía usarlo, debido a este problema.
1 votos
En mi humilde opinión, se trata de Sophos AV's Web Security o de una herramienta de depuración HTTP (que contenga un proxy como Fiddler) u otro proxy como mitmproxy.