為什麼設置代理,你懂得。 有很多第三方工具可以用,比如proxychains,非常好用,不過今天這不是正題。因為有可能沒有代理,上網你都做不到,更別提下載軟體了。想一想方法還是告訴你,免得你萬一必須用: 通常有三種辦法為apt設置代理,有了代理能上網之後,apt才能為你帶來其它軟體的幫助。 1.設置 ...
為什麼設置代理,你懂得。
有很多第三方工具可以用,比如proxychains,非常好用,不過今天這不是正題。因為有可能沒有代理,上網你都做不到,更別提下載軟體了。想一想方法還是告訴你,免得你萬一必須用:sudo apt install proxychains
通常有三種辦法為apt設置代理,有了代理能上網之後,apt才能為你帶來其它軟體的幫助。
1.設置環境變數,如果想為所有用戶設置,可以編輯/etc/profile或者/etc/environment;如果只是當前用戶使用,可以設置~/.profile文件,如果使用的不是bash,可能要根據需要設置其它配置文件,具體看使用shell的幫助文件,比如fish是使用:~/.config/fish/config.fish。另外不同的腳本設置環境變數的命令是不同的,註意區別使用。
以bash為例,把下麵這行腳本寫入配置文件。記著把代理的用戶名、密碼替換成自己的,如果沒有密碼也可以把@之前的部分包括@都去掉:
export HTTPS_PROXY=http://username:[email protected]:8080
如果使用的是socks5代理,可以寫成這樣:
export HTTPS_PROXY="socks5://192.168.1.1:8088"
#或者
export ALL_PROXY="socks5://192.168.1.1:8088"
2.如果不想一直使用代理,只是各別命令行程式有代理需求,可以使用臨時的環境變數。方法是,建立一個腳本文件,比如叫proxy.sh,內容為:
#!/bin/sh
HTTPS_PROXY=http://username:[email protected]:8080 $*
這樣,以後需要使用代理執行某個命令的時候,用如下的形式:
proxy.sh curl https://www.google.com
這種方法對於某些子進程沒有繼承父進程環境變數的情況,會有相容問題。不如proxychains好用。不過對於apt的測試是可以的。
3.針對apt進行設置,當然就只對apt有效了。其它常用軟體git之類的,都有自己的方法,請自行搜索相關設置。設置apt代理的方法是:
sudo su
vi /etc/apt/apt.conf.d/10proxy #這個文件正常不存在,會新建一個
#編輯內容為:
Acquire::http::Proxy "http://user:[email protected]:8080";
隨後執行apt的任何操作,都將使用這個代理了。
參考文獻:
https://stackoverflow.com/questions/25322280/how-can-i-configure-a-http-proxy-for-apt-get