2
1
Started running into difficulties with my MBP running high sierra after a forced reboot (crash) earlier today. My issue basically boils down to this:
After a reboot, I'm unable to establish a connection to anything on the lo0 interface (localhost, 127.0.0.1, ::1). All requests, with the lone exception being
ping
, will hang indefinitely and/or timeout. This occurs with http, tcp, traceroute, etc.When booting in safe mode, the issue does not occur, and I am able to start a simple http server and curl / wget on localhost and 127.0.0.1. I've booted back into normal mode and disabled all login items for my user, but the issue remains. Firewall is disabled.
Any idea what's happening? I'm at a loss at this point.
127.0.0.1 routable
sw14111@OF060VL39VHTD6D:~$ scutil -r 127.0.0.1
Reachable,Local Address,Directly Reachable Address
Ping works fine
sw14111@OF060VL39VHTD6D:~$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.063 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.117 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.073 ms
Example curl failure
sw14111@OF060VL39VHTD6D:~$ curl -v -x "" localhost:8000
* Rebuilt URL to: localhost:8000/
* Trying ::1...
* TCP_NODELAY set
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connection failed
* connect to ::1 port 8000 failed: Operation timed out
* Trying fe80::1...
* TCP_NODELAY set
* Connection failed
* connect to 127.0.0.1 port 8000 failed: Operation timed out
* Connection failed
* connect to fe80::1 port 8000 failed: Operation timed out
* Failed to connect to localhost port 8000: Operation timed out
* Closing connection 0
curl: (7) Failed to connect to localhost port 8000: Operation timed out
Traceroute times out
traceroute to 127.0.0.1 (127.0.0.1), 64 hops max, 52 byte packets
1 * * *
2 * * *
3 * * *
Always stuck in SYN_SENT
state when a request is in progress.
sw14111@OF060VL39VHTD6D:~$ netstat -an | grep 127.0.0.1
tcp4 0 0 127.0.0.1.49679 127.0.0.1.8000 SYN_SENT
/etc/hosts
##
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
lo0
interface
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=201<PERFORMNUD,DAD>
lsof
output for simple server
sw14111@OF060VL39VHTD6D:~$ python -m SimpleHTTPServer 18080
Serving HTTP on 0.0.0.0 port 18080 ...
# another terminal
sw14111@OF060VL39VHTD6D:~$ sudo lsof -a -i -sTCP:LISTEN
Python 2245 sw14111 3u IPv4 0x8d80c2958887276d 0t0 TCP *:18080 (LISTEN)
@swhitewvu24 Thanks for the update, by why did you use port 18080 here instead of sticking with 8000? It makes me suspect you've just been trying to connect to the wrong port number. – Spiff – 2019-06-01T21:43:21.387
Sorry no, just picked a random port. The issue is not specific to an individual port. Actually, if I did use the wrong port I would expect an immediate connection error rather than a time out. – swhitewvu24 – 2019-06-01T23:06:24.200