目录
什么是 VPN 服务器?
VPN (Virtual Private Network) 是一种通过互联网建立安全通道的技术,可以为用户提供隐私保护和网络安全的解决方案。VPN 服务器是提供 VPN 服务的服务器,用户可以通过连接 VPN 服务器来实现对自己网络流量的加密和隧道传输,从而达到保护隐私和安全的目的。
为什么要搭建自己的 VPN 服务器?
搭建自己的 VPN 服务器有以下几个主要优点:
- 隐私保护: 自建 VPN 服务器可以确保用户的网络流量不会被第三方监控和窃取。
- 网络安全: VPN 服务器可以为用户提供加密的网络通道,有效防止黑客攻击和中间人攻击。
- 访问限制绕过: 通过 VPN 服务器,用户可以绕过某些网站和服务的访问限制,获得更广阔的互联网访问。
- 成本节省: 与使用商业 VPN 服务相比,自建 VPN 服务器可以大幅降低成本。
Ubuntu 搭建 VPN 服务器的步骤
准备工作
- 一台可以访问互联网的 Ubuntu 服务器,建议使用 Ubuntu 20.04 LTS 版本。
- 一个可以访问的域名(可选),用于配置 VPN 服务器的 SSL/TLS 证书。
- 一个可用的 VPS 或云服务器。
安装 OpenVPN
-
更新系统软件包:
bash sudo apt-get update sudo apt-get upgrade -y
-
安装 OpenVPN 及相关依赖:
bash sudo apt-get install openvpn easy-rsa -y
配置 OpenVPN 服务器
-
生成 OpenVPN 所需的密钥和证书:
bash sudo mkdir -p /etc/openvpn/easy-rsa sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/ cd /etc/openvpn/easy-rsa sudo ./easyrsa init-pki sudo ./easyrsa build-ca nopass sudo ./easyrsa gen-dh sudo ./easyrsa build-server-full server nopass
-
配置 OpenVPN 服务器:
bash sudo cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/ sudo cp /etc/openvpn/easy-rsa/pki/issued/server.crt /etc/openvpn/ sudo cp /etc/openvpn/easy-rsa/pki/private/server.key /etc/openvpn/ sudo cp /etc/openvpn/easy-rsa/pki/dh.pem /etc/openvpn/
-
创建 OpenVPN 服务器配置文件:
bash sudo nano /etc/openvpn/server.conf
在配置文件中添加以下内容:
port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem server 10.8.0.0 255.255.255.0 push “redirect-gateway def1 bypass-dhcp” push “dhcp-option DNS 8.8.8.8” push “dhcp-option DNS 8.8.4.4” keepalive 10 120 tls-auth ta.key 0 cipher AES-256-CBC auth SHA256 user nobody group nogroup persist-key persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 3
-
启动 OpenVPN 服务器:
bash sudo systemctl enable openvpn@server sudo systemctl start openvpn@server
配置 OpenVPN 客户端
-
生成客户端证书和密钥:
bash cd /etc/openvpn/easy-rsa sudo ./easyrsa build-client-full client1 nopass
-
导出客户端配置文件:
bash sudo mkdir -p /etc/openvpn/client sudo cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/client/ sudo cp /etc/openvpn/easy-rsa/pki/issued/client1.crt /etc/openvpn/client/ sudo cp /etc/openvpn/easy-rsa/pki/private/client1.key /etc/openvpn/client/ sudo cp /etc/openvpn/ta.key /etc/openvpn/client/
-
创建客户端配置文件:
bash sudo nano /etc/openvpn/client/client.ovpn
在配置文件中添加以下内容:
client dev tun proto udp remote your-server-ip 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client1.crt key client1.key tls-auth ta.key 1 cipher AES-256-CBC auth SHA256 verb 3
将
your-server-ip
替换为您的 VPN 服务器 IP 地址。
使用 Clash 连接 VPN 服务器
-
下载并安装 Clash 客户端:
- Windows: https://github.com/Dreamacro/clash/releases
- macOS: https://github.com/Dreamacro/clash/releases
- Linux: https://github.com/Dreamacro/clash/releases
-
将之前导出的
client.ovpn
文件转换为 Clash 配置文件格式:bash sudo apt-get install openvpn-import -y sudo openvpn-import convert /etc/openvpn/client/client.ovpn /etc/openvpn/client/clash.yaml
-
在 Clash 客户端中导入
clash.yaml
配置文件,并选择连接 VPN 服务器。
常见问题解答
Q: 如何查看 OpenVPN 服务器的状态和日志?
A: 可以使用以下命令查看 OpenVPN 服务器的状态和日志:
bash sudo systemctl status openvpn@server sudo tail -n 50 /var/log/openvpn/openvpn.log
Q: 如何为多个客户端生成证书和密钥?
A: 可以重复上述客户端配置步骤,每次生成新的客户端证书和密钥。例如,生成 client2
的证书和密钥:
bash cd /etc/openvpn/easy-rsa sudo ./easyrsa build-client-full client2 nopass
Q: 如何更新 OpenVPN 服务器的证书和密钥?
A: 如果需要更新 OpenVPN 服务器的证书和密钥,可以重复上述服务器配置步骤,并重启 OpenVPN 服务器。
Q: 如何为 OpenVPN 服务器配置 SSL/TLS 证书?
A: 可以使用 Let’s Encrypt 或其他 SSL/TLS 证书提供商为 OpenVPN 服务器生成 SSL/TLS 证书,并在服务器配置文件中指定证书路径。这样可以提高 VPN 连接的安全性。