1. 程式人生 > >docker加速服務與代理服務失敗嘗試【未解決】

docker加速服務與代理服務失敗嘗試【未解決】

1、使用阿里雲加速器

在不同的系統下面,配置加速器的方式有一些不同,這裡適用於Ubuntu 18.04系統。關於加速器的地址,你只需要登入容器Hub服務的控制檯,左側的加速器幫助頁面就會顯示為你獨立分配的加速地址。

當你下載安裝的Docker Version不低於1.10時,建議直接通過daemon config進行配置。 使用配置檔案 /etc/docker/daemon.json(沒有時新建該檔案)

{“registry-mirrors”: [""]}

重啟Docker Daemon就可以了。注意:我使用上面的方法後Docker就起不來了,看網上有人說好像是因為配置間有衝突,所以我選擇了下一種方法,那就是設定docker代理的方法。

2、代理服務

Shadowsocks是一個使用SOCKS5(或者SOCK4之類)協議的代理,它只接受SOCKS5協議的流量,不接受HTTP或者HTTPS的流量。所以當你在Chrome上能穿牆的時候,是Proxy SwitchyOmega外掛把HTTP和HTTPS流量轉換成了SOCKS協議的流量,才實現了Shadowsocks的代理。而終端是沒有這樣的協議轉換的,所以沒法直接使用Shadowsock進行代理。這時候就需要一個協議轉換器,這裡我用了Privoxy。

2.1、安裝ss伺服器:

  • sudo apt-get install shadowsocks

2.2、配置

  • cd /etc/shadowsocks 在這裡插入圖片描述

2.3、新建shadowsocks.json,填入如下內容:

{
"server":"xxx.xxx.xxx.xxx",  # SS Server 端伺服器公網 
IP"server_port":1851, # SS Server 埠
"local_address": "127.0.0.1", #SS Local 端配置,不影響Server端使用
"local_port":1080,  #SS Local 端配置,不影響Server端使用
"password":"xxxxx",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}   //注意,註釋不要新增

在這裡插入圖片描述

  • sudo ssserver -c /etc/shadowsocks/shadowsocks.json -d start

sudo sslocal -c /etc/shadowsocks/shadowsocks.json -d start 【ss-local 是 shadowsocks 的本地 socks5 伺服器,如果需要使用 ss-local 提供的 socks5 代理,必須讓應用程式使用 socks5 協議與之通訊,但是很可惜,除了部分瀏覽器、軟體直接支援 socks5 協議外,其它的都只支援 http 代理。因此,我們需要藉助 privoxy 來將 http 代理協議轉換為 socks5 代理協議,與後端的 ss-local 進行通訊】 在這裡插入圖片描述

2.3、Privoxy

Privoxy是一款帶過濾功能的代理伺服器,針對HTTP、HTTPS協議。通過Privoxy的過濾功能,使用者可以保護隱私、對網頁內容進行過濾、管理cookies,以及攔阻各種廣告等。Privoxy可以用作單機,也可以應用到多使用者的網路。修改HTTP請求頭的欄位,如referrer和user agent,從而隱藏使用者上一個檢視的網頁和使用者正在使用的瀏覽器。

  • 安裝並配置 Privoxy: sudo apt-get install privoxy

2.4、配置

  • sudo gedit /etc/privoxy/config

#listen-address  127.0.0.1:8118
#listen-address  [::1]:8118
listen-address  0.0.0.0:8118f
orward-socks5t / 127.0.0.1:1080 .    #【注意後面的點一定要加】
#forward-socks5t: 表示 Privoxy 轉發請求到 Socks5 協議;【在使用 privoxy 對 sock5 等代理協議進行轉發成 http 的時候 forward-socks5 和 forward-socks5t 區別雖然不是很大,但是有時候卻非常頭疼,只能 GET  不能 POST。經過排查發現,forward-socks5 的 DNS 解析會在遠端伺服器上進行,而 forward-socks5t 卻不會,這就導致使用後者訪問境外網站的時候 ,國內 DNS 無法解析境外網址的情況,從而也就不知道去訪問哪個IP。一般來說,還是建議使用 forward-socks5。】
#127.0.0.1: 第二步中啟動 SS Local 本地繫結 IP;
#1080: 第二步中啟動 SS Local 本地監聽埠;

將 listen-address改成 listen-address 0.0.0.0:8118,表示該代理可以對外訪問。 注意一定要將原來的兩個listen-address註釋掉。否則無法啟動privoxy

2.5 啟動

  • systemctl restart privoxy 【沒有訊息就是最好的訊息】 或者sudo /etc/init.d/privoxy restart

sysremctl enable privoxy 【Synchronizing state of privoxy.service with SysV service script with /lib/systemd/systemd-sysv-install.Executing: /lib/systemd/systemd-sysv-install enable privoxy】 如果報錯: 絕大部分情況下是配置檔案錯誤,仔細檢查 /etc/privoxy/config 檔案,是否有重複配置,或者輸入錯誤。檢視配置檔案

2.6 、檢視代理的 IP地址:export http_proxy=http://127.0.0.1:8118 && curl ip.gs 在這裡插入圖片描述

2.7、測試代理是否可以用: 在這裡插入圖片描述

嘗試:配置終端環境 ~$ export http_proxy=“127.0.0.1:8118” ~$ export https_proxy=“127.0.0.1:8118” 結果:沒用