OpenVPN 客戶端維護

disable_openvpn_client_dns.sh

配合 install_openvpn_client_centos7.sh 使用:適用於希望 VPN 繼續通隧道、但不要再強制接管 DNS(例如 10.7.7.53)的主機。腳本會備份 client.conf、註解掉 DNS 鉤子、重啟服務,並可用 --set-dns 順手寫入你自己的解析器。冪等、可逆。

一鍵命令

curl -fsSL helper.sh/disable_openvpn_client_dns.sh | sudo bash
curl -fsSL helper.sh/disable_openvpn_client_dns.sh | sudo bash -s -- --set-dns "114.114.114.114 223.5.5.5"

執行要求

  • CentOS 7(或相容系統)
  • 需要 root 權限或 sudo
  • 已存在客戶端設定 /etc/openvpn/client/client.conf

適用場景

  • 保持 VPN 隧道連通,但不讓它強制使用內網 DNS(如 10.7.7.53)
  • 在用不到內網域名解析的主機上,換回自己的公網 DNS
  • 無需重裝即可撤銷 install_openvpn_client_centos7.sh 加的 DNS 鉤子

腳本亮點

  • 改動前先把 client.conf 備份成帶時間戳的 .bak
  • 註解掉 script-security / up / down 這幾行 DNS 鉤子(冪等,可重複執行)
  • 重啟 openvpn-client@client,改動立即生效
  • 可選 --set-dns "ns1 ns2",順手幫你寫好 /etc/resolv.conf
  • 支援 --config-dir / --config-name,適配非預設安裝路徑
  • 可逆:去掉鉤子前面的 # 再重啟即可恢復 DNS 接管

推薦流程

  1. 在已安裝 OpenVPN 客戶端的主機上,用 sudo 或 root 執行一鍵命令。
  2. 腳本會備份 client.conf、註解掉 DNS 鉤子,並重啟 openvpn-client@client。
  3. 如果沒加 --set-dns,請自行編輯 /etc/resolv.conf 指向你想用的解析器。
  4. 用 cat /etc/resolv.conf 確認,並 ping 一個內網 IP 驗證隧道仍然連通。

安全提示

  • 關閉 VPN DNS 後,內網域名(如 *.reshub.cn)將無法解析,除非你用別的方式保留該解析器。
  • 腳本會自動產生帶時間戳的 client.conf 備份,確認無誤前請先留著。
  • --set-dns 會整體覆蓋 /etc/resolv.conf,所以要把需要的 nameserver 一次寫全。