git push/pull times out

2019-02-08 10:03发布

I can't git push/pull to github from my corporate vpn:

git push origin master
ssh: connect to host github.com port 22: Connection timed out
fatal: The remote end hung up unexpectedly

I assume this is a firewall issue, b/c if I disconnect from the vpn it works. Is there anything I can do to work around it? Or am I stuck disconnecting from the vpn when I need to push/pull?

3条回答
啃猪蹄的小仙女
2楼-- · 2019-02-08 10:46

I had exactly the same problem and adding a route for github solved my issues as well.

The command for windows (or cygwin in my case) would be: route add <ip> <gateway>. So what solved it for me was simply: route add 207.97.227.239 192.168.0.1.

Please note the different IP for github.com I used in comparison with the one araqnid had, two years ago. :)

If you are not sure whether your added route still works after some time, just type (on windows or cygwin) tracert github.com to see where the packets get routed. If the first hit seems to be located within your company, the route you added is not valid anymore and you would need to add a new route.

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-02-08 10:57

Mac users: This occurred for me immediately after installing an updated version of OS X. Before you dig too deep into changing network settings I suggest doing an extra restart. This corrected the issue for me.

查看更多
Rolldiameter
4楼-- · 2019-02-08 11:06

Not sure which type of VPN you're using, but this sort of effect is usually due to the VPN setup routing all your traffic over the VPN. You can work around that by updating your routing tables to route traffic to github back over your Ethernet (I assume) interface rather than over the VPN.

For example route add 65.74.177.129 eth0 will route traffic to github over eth0. This is the Linux syntax; Windows has a "route" command as well that is broadly similar.

(This isn't really a git-specific problem, and in fact you should be able to demonstrate the problem by trying to connect to github.com port 22 with any client such as telnet, nc or PuTTY: sshd will usually print a banner with its version number as soon as you connect)

查看更多
登录 后发表回答