syntax for SOCKS proxy in apt.conf
Solution 1:
A possible solution can be to use tsocks
, an application that can redirect the network traffic through a socks proxy.
Install 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
$
or
$ 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
Solution 2:
Acquire::http::proxy "socks5h://server:port";
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.
Solution 3:
Using the next config line works for me:
Acquire::socks::proxy "socks5://server:port";
To keep 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.
Solution 4:
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/";