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.comAt this point I became curious and tried out the verbose curl,
curl: (7) Failed to connect to github.com port 443: Network is unreachable
➜ io.js git:(master) ✗ curl -v https://github.comNow, 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.
* 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 unreachable
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 machineand then executed
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
sudo sysctl --system
and sudo sysctl -p
.