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 一次写全。