How to make git use a socks proxy for HTTP transport?
I succeed in configuring git with GIT_PROXY_COMMAND to use a socks proxy for GIT transport.
Also, I hav
I tested with Git 1.8.2 and SOCKS v5 proxy, following setting works for me:
git config --global http.proxy 'socks5://127.0.0.1:7070'
UPDATE 2017-3-31:
According to the document, despite the name http
.proxy
, it should work for both HTTP and HTTPS repository urls. Thanks @user for pointing out this.
UPDATE 2018-11-27:
To disable the proxy, run command:
git config --global --unset http.proxy
EDIT 2019-03-04:
If you also want the host name to be resolved using the proxy, use thuzhf's solution below, which uses socks5h
instead of socks5
I use the following command to clone a specific repository from socks5 proxy. The proxy settings are specified with --config
option.
$ git clone https://github.com/xxxxx --config 'http.proxy=socks5://127.0.0.1:1234'
SOCKS5
protocol using ssh
:ssh -ND 9994 user@YourSshServer
proxychains
on your localhost, not the ssh server you're connected to:apt-get
:sudo apt-get install proxychains
proxychains
configure file:sudo nano /etc/proxychains.conf
then add the following line at the end of file:socks5 127.0.0.1 9994
git
command (proxychains
must be placed before the command):proxychains git push origin develop
(Just a little reminder) If you want the hostname also be resolved by the proxy (that means passing everything through the proxy), especially when you are cloning a gist, you can use the following setting (the key is that it uses socks5h instead of socks5):
git config --global http.proxy socks5h://127.0.0.1:1080
If you do not want to set the proxy as global config, try ALL_PROXY=
e.g.:
$ ALL_PROXY=socks5://127.0.0.1:8888 git clone https://github.com/some/one.git
Just in reference to @briankip and removing the http proxy setting as Yang.Y mentioned you can directly edit the ini file.
You can also do this on the command line using
git config --global --unset http.proxy
To confirm it has been removed list the current configuration using
git config --list