簡介
在本文中,您將學習如何在 Gluetun Docker 容器中設定 NordVPN OpenVPN 手動連線。 Gluetun 是一個輕量級 VPN 用戶端容器,可透過 OpenVPN 將其他 Docker 容器的流量路由至 NordVPN。 大多數人會遇到的關鍵步驟是驗證:NordVPN 不再接受您用於第三方應用程式的電子郵件和密碼,因此您必須改用服務憑證。
開始之前
- 已安裝且可正常運作的 Docker(可選安裝 Docker Compose)。
- 您的 NordVPN 服務憑證(使用者名稱和密碼):這些並非您的 Nord 帳戶電子郵件和密碼。
- 您想要連線的 NordVPN OpenVPN 伺服器位置 (國家、地區或城市)。
操作方式如下
步驟 1:取得服務憑證
- 登入 Nord 帳戶。
- 按一下 NordVPN,然後向下捲動至「進階設定(手動設定)」,並按一下「手動設定 NordVPN」。
- 您將在用於 NordVPN 的電子郵件中收到驗證碼。 輸入驗證碼以確認。
- 開啟「服務憑證」分頁。 複製那裡顯示的使用者名稱和密碼,這些是 Gluetun 所需的值。
備註:服務憑證與您的一般 Nord Account 登入憑證不同。 如果您的連線稍後未通過驗證,請再次檢查您是否複製了正確的服務憑證。
步驟 2:建立 Gluetun 設定
在 Gluetun 中,NordVPN over OpenVPN 使用以下環境變數:
VPN_SERVICE_PROVIDER=nordvpnVPN_TYPE=openvpn-
OPENVPN_USER- 您的服務憑證使用者名稱 -
OPENVPN_PASSWORD- 您的服務憑證密碼 -
OPENVPN_PROTOCOL- 可選,udp(預設) 或tcp
可選的伺服器選擇變數包括 SERVER_COUNTRIES、 SERVER_REGIONS及 SERVER_CITIES (以逗號分隔的清單)。
步驟 3:使用 Docker Compose 執行
建立一個 docker-compose.yml 檔案,如下所示:
services: gluetun: image: qmcgaw/gluetun container_name: gluetun cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun ports: - 8000:8000 # Gluetun control server (optional) environment: - VPN_SERVICE_PROVIDER=nordvpn - VPN_TYPE=openvpn - OPENVPN_USER=YOUR_SERVICE_USERNAME - OPENVPN_PASSWORD=YOUR_SERVICE_PASSWORD - OPENVPN_PROTOCOL=udp - SERVER_COUNTRIES=United States restart: unless-stopped
將 YOUR_SERVICE_USERNAME 和 YOUR_SERVICE_PASSWORD 替換為步驟 1 中的服務憑證,並將 SERVER_COUNTRIES 調整為您偏好的位置。
步驟 4:啟動並驗證連線
- 啟動容器:
- 檢查記錄,確認隧道已啟動:
- 從容器的網路命名空間內執行 IP 檢查,確認流量是透過 NordVPN 送出:
docker compose up -d
docker logs -f gluetun
docker exec gluetun wget -qO- https://ipinfo.io/ip
傳回的 IP 應該是 NordVPN 伺服器的 IP,而非您的真實 IP。
步驟 5:透過 Gluetun 路由其他容器
若要通過通道傳送另一個容器的流量,請將該容器設定為共享 Gluetun 的網路,並移除其自己的連接埠(改為在 Gluetun 服務上發佈):
yourapp: image: your/app-image network_mode: "service:gluetun" depends_on: - gluetun
其他提示
- 如果您看到「AUTH_FAILED / 您的憑證可能有誤」錯誤,那麼幾乎可以肯定的是,您使用的是 Nord 帳戶的電子郵件和密碼,而不是服務憑證。 請從「服務憑證」頁面重新複製。
- 如果預設的
udp通訊協定在受限的網路環境下遭到封鎖,請切換至OPENVPN_PROTOCOL=tcp並重新建立容器。 - Gluetun 內建 Kill Switch,因此萬一 VPN 連線中斷,相依容器就無法存取網際網路,從而防止 IP 外洩。 (根據 Gluetun 記錄的預設行為;請在目前的 Wiki 中確認您的版本。)