OpenVPN 指南

在 Anolis OS 8 上安裝 OpenVPN 客戶端:含 login.txt 認證、DNS 腳本與路由說明

一篇面向實操的說明,講清楚如何使用 install_openvpn_client_anolis8.sh 在 Anolis OS 8 上啟用 EPEL 8、用 dnf 安裝 OpenVPN、放置 client.conf 和 login.txt、部署 update-resolv-conf,並啟用 openvpn-client@client。

閱讀約 7 分鐘 · 2026-07-18

這篇手冊解決什麼問題

這套流程面向需要透過使用者名稱密碼認證接入 OpenVPN 的 Anolis OS 8(相容 RHEL 8)主機,重點是把安裝過程做成可重複執行的標準動作。

相比每次手工處理 dnf、設定目錄、DNS helper 和 systemd 命令,helper.sh 提供的腳本把整套檢查清單收斂成一次可控安裝流程。

步驟 1:啟用 EPEL 8 並用 dnf 安裝 OpenVPN

Anolis OS 8 這條路線會導入 EPEL 8 的 GPG key,優先用發行版自帶的 epel-release 啟用 EPEL 8(失敗再回退到 Fedora 的 epel-release-latest-8 rpm),重新整理 dnf 快取,然後再安裝 openvpn 套件。

這一步很關鍵,因為 openvpn 套件在 EPEL 裡,而不在基礎倉庫裡。腳本會替你把倉庫啟用好,避免安裝停在「No match for argument: openvpn」。

  • sudo rpm --import https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8
  • sudo dnf install -y epel-release
  • sudo dnf clean all && sudo dnf makecache
  • dnf install -y openvpn
  • curl -fsSL helper.sh/install_openvpn_client_anolis8.sh | sudo bash

步驟 2:準備 /etc/openvpn/client/client.conf 和 login.txt

腳本預設要求當前目錄裡已經有 client.conf 和 login.txt,然後會把它們複製到 /etc/openvpn/client/,並在啟動服務前收緊權限。

client.conf 裡要保留 auth-user-pass login.txt,這樣部署後客戶端會從同一目錄讀取認證檔案。

  • mkdir -p /etc/openvpn/client/
  • /etc/openvpn/client/client.conf
  • /etc/openvpn/client/login.txt
  • chmod 600 /etc/openvpn/client/login.txt

步驟 3:安裝 DNS helper 並掛接 up/down hooks

Anolis OS 8 版本的腳本會安裝 /etc/openvpn/update-resolv-conf、用 chmod +x 補上執行權限,並確保 client.conf 裡存在 script-security 2 以及對應的 up/down hook。

預設 helper 會在 VPN 連上時把 10.7.7.53 和 114.114.114.114 寫入 /etc/resolv.conf,VPN 斷開時再恢復為公網 DNS。加 --no-dns 可以完全跳過這一步。

  • /etc/openvpn/update-resolv-conf
  • chmod +x /etc/openvpn/update-resolv-conf
  • script-security 2
  • up /etc/openvpn/update-resolv-conf
  • down /etc/openvpn/update-resolv-conf
  • /var/log/openvpn-dns-update.log

成功安裝時,終端裡應該看到什麼

一條正常的 Anolis OS 8 安裝輸出,應該依次看到:系統識別成功、EPEL 8 GPG key 導入成功、啟用 epel-release、重新整理 dnf 快取、安裝 openvpn 及其相依、複製客戶端檔案、安裝 DNS helper,最後顯示 openvpn-client@client 已經 active。

如果找不到 openvpn 套件,最常見的原因是 EPEL 8 沒啟用或不可達;重試前先看 dnf repolist 和鏡像連通性。

  • [OK] Detected system: Anolis OS 8.8
  • [OK] epel-release installed
  • [OK] dnf metadata refreshed
  • [OK] OpenVPN installed
  • [OK] DNS helper installed to /etc/openvpn/update-resolv-conf
  • [OK] openvpn-client@client is active

步驟 4:啟用服務、驗證 tun0,並決定是否關閉全代理模式

檔案準備好之後,就可以啟用並啟動 openvpn-client@client,再透過 tun0 位址和公網 IP 變化確認連線是否生效。

如果你不想走全代理,就把 redirect-gateway autolocal 註解掉,加入 route-nopull,然後只宣告需要走 VPN 的網段。

  • systemctl enable openvpn-client@client
  • systemctl start openvpn-client@client
  • ip a
  • curl ipinfo.im/ip
  • route-nopull
  • route 10.7.0.0 255.255.0.0
  • route 10.2.0.0 255.255.0.0
  • route 192.168.1.0 255.255.255.0

步驟 5:只有環境確實需要時,再加每日重啟任務

如果遠端服務或路由狀態在長時間執行後容易漂移,可以透過 cron 增加每天 5 點重啟一次服務的兜底動作。

但這應該被視為維運層面的補救措施,而不是預設答案。如果服務頻繁需要重啟,還是應該回頭看 OpenVPN 日誌和服務端狀態。

  • crontab -e
  • 0 5 * * * /usr/bin/systemctl restart openvpn-client@client

相關專題

OpenVPN 客戶端接入與 DNS 處理

面向 Ubuntu 和 CentOS 7 主機的 OpenVPN 客戶端接入專題,重點覆蓋 client.conf、login.txt、DNS 腳本、systemd 服務和按需路由。

查看專題