天天看點

如何在Ubuntu系統中進行系統級的代理設定

在Ubuntu系統中我們往往需要設定代理上網,比如在Ubuntu22.04中,通過圖形化界面的設定方式如下:

這裡假設代理伺服器位址為:

192.168.1.103:1080

如何在Ubuntu系統中進行系統級的代理設定
如何在Ubuntu系統中進行系統級的代理設定

==============================================

上面的操作是在圖形化界面中進行的,但是平時使用Ubuntu系統往往會用到server版本,此時就無法使用圖形化界面進行設定了,那麼這又該如何呢?

其實,上面的操作等價與在shelll終端中進行環境變量設定,如:

export http_proxy=http://192.168.1.103:1080/
export HTTP_PROXY=http://192.168.1.103:1080/

export https_proxy=http://192.168.1.103:1080/
export HTTPS_PROXY=http://192.168.1.103:1080/


export all_proxy=socks://192.168.1.103:1080/
export ALL_PROXY=socks://192.168.1.103:1080/


export no_proxy=localhost,127.0.0.0/8,::1
export NO_PROXY=localhost,127.0.0.0/8,::1      

在linux系統中負責代理設定的變量有:

http_proxy

HTTP_PROXY

https_proxy

HTTPS_PROXY

ftp_proxy

FTP_PROXY

all_proxy

ALL_PROXY

no_proxy

NO_PROXY

由于作業系統的變量設定區分大小寫,而且不同的應用讀寫變量時有的是根據大寫的變量,有的是根據小寫的變量,是以在設定時需要大小寫變量都進行設定。

還有all_proxy和ALL_PROXY的權限是最低的,如果其他的proxy環境變量有進行設定則優先讀取其他變量的設定。

說明一下,之是以設定這些變量可以使一些應用讀取到proxy設定進而進行代理,其原因是這些應用在進行網絡連接配接時預設是會優先讀取這些proxy環境變量,如果這些變量有設定,那麼就預設使用這些變量的設定進行proxy上網,當然也有一些應用是不讀取這些環境變量的,是以對于這種不讀取系統proxy變量的應用進行代理上網時往往就需要一些單獨的設定,比較常見的有ssh等,當然對于這些應用也有單獨設定代理的方法,如:

SSH如何通過proxy進行伺服器連接配接

git clone 如何通過proxy進行遠端代碼倉庫拷貝下載下傳

需要注意有一種說法是在進行all_proxy和ALL_PROXY設定時,可以寫成下面的形式:

export all_proxy=socks5h://192.168.1.103:1080/
export ALL_PROXY=socks5h://192.168.1.103:1080/      

之是以這樣寫是因為socks5h代表進行proxy時将dns查詢也進行proxy,而socks則代表在進行proxy時不對dns查詢進行proxy,不過這種說法并沒有被驗證,不過在ssh代理的設定過程中socks5h确實代表将dns查詢也進行proxy。

可以看下在作業系統圖形化界面中設定好代理後,在終端中對這些變量的輸出:

如何在Ubuntu系統中進行系統級的代理設定

========================================================

參考:

​​https://www.liangzl.com/get-article-detail-34403.html​​

繼續閱讀