Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

VPS 部署 OpenVPN 完整實戰指南 (Debian/Ubuntu 一鍵腳本與手動配置雙軌)

編輯:Linux 教學

在 VPS 上自建 OpenVPN 是保護公共 Wi-Fi 流量、繞過網路審查、安全存取內網資源的經典方案。本文提供 OpenVZ/LXC/KVM/Xen 全虛擬化架構相容性檢查、一鍵安裝腳本 (Angristan/OpenVPN-install)、手動逐步配置 (PKI/證書/伺服器/客戶端)、Windows/macOS/Linux/Android/iOS 客戶端導入、路由分流與 DNS 防洩漏、多用戶管理與撤銷完整實戰流程。

前置檢查:VPS 虛擬化架構相容性


# 1. TUN/TAP 設備
cat /dev/net/tun
# 正常回應:File descriptor in bad state (表示可用)
# 若回應 No such file/device → 提交工單要求開通

# 2. iptables NAT 功能
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
# 正常無錯誤 → 可用
# 若報錯 "No chain/target/match" → 核心缺少 iptables_nat 模組,需開通

# 3. 系統架構
uname -m  # x86_64 / aarch64
lsb_release -a

注意:OpenVZ 6 核心較舊 (2.6.32) 可能不支援 AES-NI 加速,建議選擇 KVM/Xen HVM/雲主機。

方案一:一鍵安裝腳本 (推薦新手、快速部署)


# Angristan/OpenVPN-install (支援 Debian 10+/Ubuntu 18.04+/CentOS 7+/Rocky/Alma)
wget https://git.io/vpn -O openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh

互動式選單將引導:

  1. IPv4 位址 (自動偵測公網 IP)
  2. Port (預設 1194 UDP)
  3. DNS (預設 1.1.1.1 / 8.8.8.8,可選 Google/Cloudflare/OpenDNS/自訂)
  4. 第一個客戶端名稱
  5. 確認安裝

完成後產生 ~/client.ovpn,下載至本地即可使用。再次執行腳本可新增/撤銷用戶、列出用戶、移除 OpenVPN。

方案二:手動逐步配置 (學習原理、高度客製化)

1. 安裝套件


apt update && apt install -y openvpn easy-rsa iptables-persistent

2. 建立 PKI (公開金鑰基礎設施)


# 複製 easy-rsa 至工作目錄
make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

# 編輯 vars 設定憑證資訊
cat > vars <

3. 伺服器端配置 /etc/openvpn/server.conf


port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
tls-auth /etc/openvpn/easy-rsa/ta.key 0
cipher AES-256-GCM
auth SHA256
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
push "block-outside-dns"           # Windows 防 DNS 洩漏
keepalive 10 120
persist-key
persist-tun
status /var/log/openvpn/status.log
log-append /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
# 效能優化
fast-io
sndbuf 0
rcvbuf 0
# 允許客戶端互訪 (可選)
# client-to-client

4. 系統層面啟用 IP 轉發與 NAT


# /etc/sysctl.d/99-openvpn.conf
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
# 套用
sysctl --system

# NAT 規則 (假設外網介面 eth0,VPN 網段 10.8.0.0/24)
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
# 允許 VPN 流量通過
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT
# 持久化
netfilter-persistent save

5. 啟動與驗證


systemctl enable --now openvpn@server
systemctl status openvpn@server
# 檢查介面
ip addr show tun0
# 測試連線
# 客戶端導入 .ovpn 後連線,ping 10.8.0.1

客戶端配置檔 client.ovpn 模板


client
dev tun
proto udp
remote YOUR_VPS_PUBLIC_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
key-direction 1

-----BEGIN CERTIFICATE-----
... ca.crt 內容 ...
-----END CERTIFICATE-----


-----BEGIN CERTIFICATE-----
... client.crt 內容 ...
-----END CERTIFICATE-----


-----BEGIN PRIVATE KEY-----
... client.key 內容 ...
-----END PRIVATE KEY-----


-----BEGIN OpenVPN Static key V1-----
... ta.key 內容 ...
-----END OpenVPN Static key V1-----

verb 3

多用戶管理:新增/撤銷/列出


# 新增用戶 user1
cd /etc/openvpn/easy-rsa
./easyrsa build-client-full user1 nopass
# 產生 user1.ovpn (腳本自動化)

# 撤銷用戶 user1
./easyrsa revoke user1
./easyrsa gen-crl
# 複製 crl.pem 至伺服器配置目錄
cp pki/crl.pem /etc/openvpn/crl.pem
# server.conf 加入
# crl-verify /etc/openvpn/crl.pem
systemctl reload openvpn@server

# 列出所有用戶
ls /etc/openvpn/easy-rsa/pki/issued/

進階主題

路由分流 (僅特定網段走 VPN)


# server.conf 或 client.ovpn
# 取消 push "redirect-gateway"
push "route 10.0.0.0 255.0.0.0"      # 僅 10.x 流量走 VPN
push "route 192.168.100.0 255.255.255.0"

DNS 防洩漏 (Linux 客戶端)


# 安裝 openvpn-systemd-resolved
apt install -y openvpn-systemd-resolved
# client.ovpn 加入
script-security 2
setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
dhcp-option DOMAIN-ROUTE .

TCP 模式繞過 UDP 封鎖


# server.conf
proto tcp
port 443   # 偽裝 HTTPS 流量
# 客戶端同步修改

完成上述部署與驗證,即可擁有一套完全自主可控、支援多平台、可擴展多用戶的 OpenVPN 服務。建議定期更新 apt upgrade openvpn easy-rsa、輪換 CA/伺服器憑證 (接近到期前)、監控 /var/log/openvpn/ 異常連線。

Copyright © Windows教程網 All Rights Reserved