Today I faced a very strange problem. I got a new Tata DOCOMO connection and I wanted to fetch upstream changes from a GitHub repository, with
So, I decided to disable IPv6 in my Ubuntu machine and I followed the instructions given here and it worked perfectly. Basically, I edited
git fetch --all
. But all I got wasfatal: unable to access 'https://github.com/<repo>': Failed to connect to github.com port 443: Network is unreachableI thought that the internet connection has a problem. But then I was able to
ping github.com
and access that site in my browser, although curl still failed.➜ io.js git:(master) ✗ curl https://github.com curl: (7) Failed to connect to github.com port 443: Network is unreachableAt this point I became curious and tried out the verbose curl,
➜ io.js git:(master) ✗ curl -v https://github.com * Rebuilt URL to: https://github.com/ * Hostname was NOT found in DNS cache * Trying 192.30.252.128... * Trying 64:ff9b::c01e:fc81... * connect to 64:ff9b::c01e:fc81 port 443 failed: Network is unreachable * Failed to connect to github.com port 443: Network is unreachable * Closing connection 0 curl: (7) Failed to connect to github.com port 443: Network is unreachableNow, it figures out both the IPv4 address and the IPv6 address but favors IPv6 over IPv4. And it looks like, either the modem or the ISP don't support IPv6 based communication. I don't know how to confirm what the actual problem is. I tried to upgrade the firmware of my DSL-2730U router, by logging into 192.168.1.1. But it kept failing, saying the the firmware image file is too big.
So, I decided to disable IPv6 in my Ubuntu machine and I followed the instructions given here and it worked perfectly. Basically, I edited
/etc/sysctl.conf
file to include the following lines# disable IPv6 on this machine net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1and then executed
sudo sysctl --system
and sudo sysctl -p
.