I want to add SOCKS proxy settings to /etc/apt/apt.conf. What is the syntax for it? Is it same as http and ftp syntax?
Here is Solutions:
We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.
This works for me on Ubuntu 18.04.
As the man page says, socks5h, not socks5, is supported by apt, which means socks5 proxy with DNS resolving ability.
A possible solution can be to use
tsocks, an application that can redirect the network traffic through a socks proxy.
tsocks package, modify
/etc/tsocks.conf to set address and port number of your socks proxy, and run:
$ sudo -s # tsocks apt-get update # tsocks apt-get dist-upgrade # exit $
$ sudo -s # . tsocks -on # apt-get update # apt-get dist-upgrade # . tsocks -off # not really necessary, given the exit # exit $
You can think to a number of options, to simplify and automate its use.
Don’t forget the leading dot, the Manpage has more deatails on this.
Edit: a shorter way to use it:
$ sudo tsocks apt-get update $ sudo tsocks apt-get dist-upgrade
Using the next config line works for me:
apt.conf clean and avoid problems at Linux upgrade I created a new file (
/etc/apt/apt.conf.d/12proxy) and added the config file to it.
I couldn’t find anything on Acquire::socks::proxy in the apt.conf manual of Ubuntu Xenial. You could fix this by running a local http proxy that supports upstream socks proxy, for example Polipo. You need to configure Polipo as follows:
proxyAddress = "::1" proxyPort = 8118 socksParentProxy = "sockshost:socksport" socksProxyType = socks5
and then set the http proxy in your apt.conf file:
Acquire::http::proxy "http://127.0.0.1:8118/"; Acquire::https::proxy "https://127.0.0.1:8118/";
Or tou can put in your /etc/apt/apt.conf something like this:
Acquire::socks::proxy "socks://user:[email protected]:port/";
In Debian, you can read the manpage
apt-transport-http(1) and look for supported URI schemes. As was answered before, put
You can read more about the APT-config in general in
apt.conf(5) and read the examples in
/usr/share/doc/apt/examples/configure-index.gz mentioned at the end of the manpage.
This can be combined with
ssh -D <LOCAL PORT> <USER>@<HOST> to create a SOCKS proxy to a different system so that apt can then use the proxy as if everything originated on
If you use
ssh -D 0.0.0.0:<LOCAL PORT> <USER>@<HOST> or
ssh -D [::]:<LOCAL PORT> <USER>@<HOST> (for IPv6) to enable other systems to use the SOCKS proxy on all interfaces. This can be a security risk or breach of (corporate) policy. Make sure you know what you are doing.
Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂