OpenVPN 客戶端安裝腳本

install_openvpn_client_ubuntu.sh

適用於 Ubuntu 20.04、22.04 和 24.04 LTS。腳本面向使用帳號密碼驗證的 OpenVPN 客戶端場景,提供可重複執行的安裝、複製設定和啟動服務流程。

審閱檔案對選擇與服務影響

一鍵命令

curl -fL 'https://www.helper.sh/install_openvpn_client_ubuntu.sh' -o './install_openvpn_client_ubuntu.sh'

此命令只會下載本站檔案,不會執行。請先檢查儲存的原始碼並核對版本,再決定是否執行。

核對已下載檔案

與本頁面建置時內建的確切位元組比較。檔案僅在目前分頁處理,此工具不上傳、不持久儲存檔案。上限2 MiB。

預期 SHA-256
c096e3498bd2f98b7b57bcd28b0dc0664e658f60a4cb2caa2a192195979e4f00

內建檔案位元組數: 7887

儲存校驗檔案

將腳本與校驗檔案儲存在同一目錄。Linux 安裝 GNU Coreutils 後可用下方命令僅檢查位元組,不執行腳本;使用此命令時需保留原檔名。

sha256sum --check './install_openvpn_client_ubuntu.sh.sha256'

尚未比較。

校驗值與腳本來自同一網站,不是獨立簽章。一致不證明安全、上游相依項目真實可信或適合本機;可變遠端相依項目需單獨審閱。

查看驗證與限制

執行要求

  • 原始碼分支識別Ubuntu 20.04/22.04/24.04;需要root、Bash、systemd與可存取apt儲存庫。
  • 套用設定需要已審閱的設定/憑證檔案對,僅安裝準備可在無完整配對時結束。

適用場景

  • 在新的 Ubuntu 主機上快速啟用 OpenVPN 客戶端
  • 標準化帳號密碼驗證的客戶端部署流程,方便交接
  • 避免手動複製設定檔和啟用 openvpn-client@client 時出錯

腳本亮點

  • 缺少設定檔時也不會報錯退出:仍會安裝 OpenVPN、建立 /etc/openvpn/client/,並提示你放入檔案
  • 會從目前目錄讀取 client.conf 和 login.txt;若檔案已放在 /etc/openvpn/client/ 裡則直接複用
  • 僅當提供本地 update-resolv-conf 時才安裝它並補齊 DNS hooks
  • 自動啟用並重新啟動 openvpn-client@client 服務

推薦流程

  1. 下載、比對並審閱儲存的安裝器,再決定是否執行。
  2. 確認完整來源或目標檔案對,核對實際單元、共享憑證與可選helper。
  3. 獲核准後仍區分僅安裝準備與套用設定,複製和沿用的備份影響不同。
  4. 分別核驗服務、實際介面、路由、DNS與授權業務存取,active或tun0不能單獨證明連通。

安全提示

  • 請用 chmod 600 保護 login.txt,不要把它提交進 Git。
  • 把 client.conf 放到正式主機之前,先確認伺服器位址、連接埠和憑證內容正確。
  • 如果服務沒有成功啟動,先查看 journalctl 日誌,不要反覆盲目重試。

相容範圍與限制

  • 需要root、Bash、Ubuntu、apt儲存庫與systemd OpenVPN客戶端單元。原始碼識別20.04/22.04/24.04,其他Ubuntu僅警告後繼續,非相容證明;套件版本未固定,須核對實際版本與對應手冊。Ubuntu20.04標準安全維護於2025年5月結束,舊主機須另核實實際ESM涵蓋;非新建部署建議。
  • 支援--config-dir PATH、--config-name NAME、--source-conf PATH、--source-login PATH、--source-dns-helper PATH,皆須值;-h/--help只顯示說明。Ubuntu版沒有--no-dns、dry-run或自動回復;缺值可能因set -u中止,勿沿用CentOS專用開關。
  • 完整來源檔案對優先:./client.conf與./login.txt或指定路徑齊全時複製覆寫;否則只在目標設定與憑證成對時沿用。不會把一個來源和一個目標檔拼成一對。兩處均無完整配對時仍安裝套件、準備目錄並以結束碼0離開,表示設定未套用,不是VPN已連線。
  • 目標為CONFIG_DIR/CONFIG_NAME.conf及CONFIG_DIR/login.txt。同目錄不同實例名稱共享login.txt,一個實例的憑證複製可能影響另一個。--config-dir僅改複製路徑,不改systemd設定搜尋路徑,須核對實際單元。

受影響的檔案、服務與資料

  • 執行apt-get update、安裝openvpn並建立目錄。僅複製分支替既有設定/憑證建立時間戳.bak;沿用分支仍移除CRLF及chmod 600,並非無變更。憑證備份亦須保護。
  • 若本機DNS helper存在,會未備份helper即覆寫/etc/openvpn/update-resolv-conf、清除CRLF、設為可執行並補齊完全相同的script-security 2/up/down行;不整理既有不同鉤子。helper是執行碼,須另審解析器影響;缺少helper亦不移除原有鉤子。
  • 啟用並重啟openvpn-client@CONFIG_NAME。遠端端點、路由及DNS效果依設定/helper而定,不分配固定服務埠或證明隧道就緒。auth-user-pass僅以不限行首的grep警告,並非有效憑證/設定驗證。

唯讀核驗

  • 核准變更前,先在本機確認完整檔案對、備份檔案、審閱helper並以systemctl cat核對實際單元。勿向本站貼上login.txt、私鑰、設定或原始日誌。下列預設唯讀命令不安裝、啟動或連線;自訂實例須換成核實名稱。
  • 授權維護後檢查所選單元、私人日誌、實際隧道介面與路由表。active、tun0範例或完成橫幅不證明認證、預期路由、DNS或業務存取;須個別核驗授權目標與解析行為,不能假定固定介面名。

失敗後的下一步

設定未套用時先確定完整檔案對再規劃變更,重跑也會重複apt操作。失敗時保留目標與.bak,私下檢查單元/日誌、認證路徑與helper/鉤子,規劃手動復原。勿關閉憑證校驗、刪除備份、盲目更換共享login.txt,或以為--config-dir會自動改服務設定;沒有自動復原。

systemctl status openvpn-client@client --no-pager
systemctl cat openvpn-client@client
ip -brief address
ip route show
readlink -f /etc/resolv.conf

OpenVPN 2.6 · Ubuntu Server · Ubuntu · 查看Ubuntu客戶端原始碼審閱驗證

先下載、審閱並核對版本,再決定是否執行。雜湊只能識別這一版位元組,不能證明安全。pipe 命令會立即執行遠端內容;上游依賴也可能變動。

相關專題

OpenVPN:區分通道、路由與 DNS 故障

選擇對應發行版用戶端,變更 DNS 鉤子前檢查解析器管理權。

查看專題

問題頁面

OpenVPN 已連線但內部 DNS 失敗

改檔案或重新啟動通道前,先檢查已設定鉤子與作用中的解析器管理器。

打開頁面