Ubuntu 搭建 VPN 服务器全攻略

目录

  1. 什么是 VPN 服务器?
  2. 为什么要搭建自己的 VPN 服务器?
  3. Ubuntu 搭建 VPN 服务器的步骤
    1. 准备工作
    2. 安装 OpenVPN
    3. 配置 OpenVPN 服务器
    4. 配置 OpenVPN 客户端
  4. 使用 Clash 连接 VPN 服务器
  5. 常见问题解答

什么是 VPN 服务器?

VPN (Virtual Private Network) 是一种通过互联网建立安全通道的技术,可以为用户提供隐私保护和网络安全的解决方案。VPN 服务器是提供 VPN 服务的服务器,用户可以通过连接 VPN 服务器来实现对自己网络流量的加密和隧道传输,从而达到保护隐私和安全的目的。

为什么要搭建自己的 VPN 服务器?

搭建自己的 VPN 服务器有以下几个主要优点:

  • 隐私保护: 自建 VPN 服务器可以确保用户的网络流量不会被第三方监控和窃取。
  • 网络安全: VPN 服务器可以为用户提供加密的网络通道,有效防止黑客攻击和中间人攻击。
  • 访问限制绕过: 通过 VPN 服务器,用户可以绕过某些网站和服务的访问限制,获得更广阔的互联网访问。
  • 成本节省: 与使用商业 VPN 服务相比,自建 VPN 服务器可以大幅降低成本。

Ubuntu 搭建 VPN 服务器的步骤

准备工作

  1. 一台可以访问互联网的 Ubuntu 服务器,建议使用 Ubuntu 20.04 LTS 版本。
  2. 一个可以访问的域名(可选),用于配置 VPN 服务器的 SSL/TLS 证书。
  3. 一个可用的 VPS 或云服务器。

安装 OpenVPN

  1. 更新系统软件包:

    bash sudo apt-get update sudo apt-get upgrade -y

  2. 安装 OpenVPN 及相关依赖:

    bash sudo apt-get install openvpn easy-rsa -y

配置 OpenVPN 服务器

  1. 生成 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

  2. 配置 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/

  3. 创建 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

  4. 启动 OpenVPN 服务器:

    bash sudo systemctl enable openvpn@server sudo systemctl start openvpn@server

配置 OpenVPN 客户端

  1. 生成客户端证书和密钥:

    bash cd /etc/openvpn/easy-rsa sudo ./easyrsa build-client-full client1 nopass

  2. 导出客户端配置文件:

    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/

  3. 创建客户端配置文件:

    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 服务器

  1. 下载并安装 Clash 客户端:

    • Windows: https://github.com/Dreamacro/clash/releases
    • macOS: https://github.com/Dreamacro/clash/releases
    • Linux: https://github.com/Dreamacro/clash/releases
  2. 将之前导出的 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

  3. 在 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 连接的安全性。

正文完