贝博恩创新科技网

DigitalOcean VPN教程,如何快速搭建与配置?

  1. 准备工作:你需要什么。
  2. 创建 Droplet (云服务器):在 DigitalOcean 上创建你的 VPN 服务器。
  3. 连接服务器并初始化:通过 SSH 登录并进行基础配置。
  4. 安装 WireGuard:在服务器上安装 VPN 软件。
  5. 配置 WireGuard:创建服务器端和客户端的配置文件。
  6. 启动并启用 WireGuard:让 VPN 服务开始运行。
  7. 配置客户端:在你的电脑或手机上连接 VPN。
  8. 高级与安全:一些重要的安全设置和后续步骤。

第一步:准备工作

在开始之前,请确保你拥有以下内容:

  1. 一个 DigitalOcean 账户:如果你还没有,可以先注册一个,并往账户里充值至少 10 美元(因为最低的 Droplet 费用是 5 美元/月,创建时需要绑定信用卡)。
  2. 一个 SSH 客户端
    • Windows:推荐使用 PuTTY 或 Windows 10/11 自带的“Windows PowerShell”或“命令提示符”(稍后会介绍如何连接)。
    • macOS / Linux:系统自带了 ssh 命令,无需额外安装。
  3. 一台客户端设备:可以是你的 Windows、macOS、Linux 电脑,或者 Android、iOS 手机。

第二步:创建 Droplet (云服务器)

这是搭建 VPN 的核心部分。

  1. 登录你的 DigitalOcean 控制台
  2. 点击左侧导航栏的 "Create" -> "Droplets"
  3. 选择镜像
    • 在 "Choose an image" 部分,选择 "Distributions"
    • 推荐使用 Ubuntu,选择最新的 Ubuntu 22.04 LTS (x64) 版本,LTS 版本非常稳定,支持周期长。
  4. 配置 Droplet 规格
    • CPU / Memory:对于个人使用,最便宜的 Basic Plan 中的 $5/月 的配置(1 CPU, 1GB RAM, 25GB SSD)完全足够,这是我们本教程的选择。
    • Storage:保持默认的 25GB SSD 即可。
  5. 身份验证
    • SSH Key (推荐):这是最安全的方式,如果你还没有 SSH Key,可以点击 "New SSH Key",然后将你的公钥粘贴进去,公钥的获取方法:
      • macOS / Linux: 在终端运行 cat ~/.ssh/id_rsa.pub,复制输出的全部内容。
      • Windows (PuTTY): 使用 PuTTYgen 生成密钥,然后将公钥部分复制。
    • Password (简单):你也可以选择使用密码登录,为了安全,请务必设置一个强密码。
  6. 选择数据中心位置
    • 选择一个离你地理位置较近的区域,可以降低延迟,如果你在中国大陆,可以选择 Singapore (新加坡)Tokyo (东京)
  7. 添加标签:给你的服务器起个名字,"My-VPN"。
  8. 最终创建:确认所有信息无误后,点击 "Create Droplet" 按钮。

等待几分钟后,你的 Droplet 就创建成功了,你可以在控制台的 "Droplets" 页面看到它,并能看到它的 公网 IP 地址这个 IP 地址非常重要,请记下来!


第三步:连接服务器并初始化

现在我们需要通过 SSH 连接到刚刚创建的服务器。

  1. 获取 IP 地址:在 Droplets 页面找到你的服务器,复制它的公网 IP 地址。
  2. 使用 SSH 连接
    • macOS / Linux: 打开终端,输入以下命令(请将 <your_server_ip> 替换为你的实际 IP)。
      ssh root@<your_server_ip>
    • Windows (PowerShell): 打开 PowerShell,输入同样的命令。
      ssh root@<your_server_ip>
    • Windows (PuTTY): 打开 PuTTY,在 "Host Name (or IP address)" 字段填入你的 IP 地址,然后点击 "Open"。

首次连接时,系统会提示你确认服务器的指纹,输入 yes 即可。

初始化服务器 (重要!)

为了安全,我们建议执行以下几步:

  1. 更新系统

    apt update && apt upgrade -y
  2. 创建一个新的用户 (可选但推荐):直接用 root 用户操作有风险,我们创建一个名为 vpnuser 的新用户。

    adduser vpnuser

    按照提示设置密码(可以留空全名等信息,直接按回车)。

  3. 赋予新用户管理员权限

    usermod -aG sudo vpnuser
  4. 禁用 root SSH 登录 (增强安全性)

    # 编辑 sshd_config 文件
    nano /etc/ssh/sshd_config

    找到 PermitRootLogin yes 这一行,将其修改为 PermitRootLogin no。 按 Ctrl + X,然后按 Y,再按 Enter 保存并退出。

  5. 重启 SSH 服务使配置生效

    systemctl restart sshd
  6. 退出 SSH 连接,然后用新用户重新登录:

    exit
    ssh vpnuser@<your_server_ip>

    以后都使用这个 vpnuser 用户来操作服务器。


第四步:安装 WireGuard

在服务器的 SSH 终口中,执行以下命令来安装 WireGuard。

# 添加 WireGuard 的官方仓库
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:wireguard/wireguard
sudo apt update
# 安装 WireGuard 和必要的工具
sudo apt install -y wireguard resolvconf qrencode

安装完成后,WireGuard 就准备好了。


第五步:配置 WireGuard

这是最关键的一步,我们需要创建服务器和客户端的配置文件。

创建服务器端配置

# 进入 WireGuard 配置目录
cd /etc/wireguard/
# 创建服务器私钥和公钥
# 私钥会保存在 privatekey,公钥会显示在屏幕上
wg genkey | tee privatekey | wg pubkey > publickey

我们来编辑服务器的配置文件。

sudo nano wg0.conf

粘贴进去。请务必修改 AddressListenPort,并填入你刚刚生成的私钥。

[Interface]
# VPN 服务器的内网 IP 地址,格式为 IP/子网掩码位数
Address = 10.0.0.1/24
# VPN 服务器的监听端口,可以自定义,但建议使用 51820
ListenPort = 51820
# 将你的服务器私钥粘贴到这里
# 从 /etc/wireguard/privatekey 文件中复制
PrivateKey = <你的服务器私钥>
# 启用 IP 转发,让服务器能将客户端的流量转发到互联网
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 关闭 VPN 时,清除上述规则
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

操作说明

  • <你的服务器私钥> 替换为 cat /etc/wireguard/privatekey 命令输出的内容。
  • eth0 是 DigitalOcean Droplet 的默认网卡名称,通常无需修改。
  • Ctrl + X -> Y -> Enter 保存并退出。

创建客户端配置

我们将为你的第一个设备创建一个客户端配置。

# 生成第一个客户端的密钥对
# 客户端 1 的私钥和公钥
wg genkey | tee client1_privatekey | wg pubkey > client1_publickey

编辑服务器的配置文件,添加客户端信息。

sudo nano /etc/wireguard/wg0.conf

在文件末尾添加以下内容:

# 在 [Interface] 段落后,添加一个新的 [Peer] 段
[Peer]
# 将客户端1的公钥粘贴到这里
PublicKey = <客户端1的公钥>
# 给客户端分配一个固定的内网 IP 地址
AllowedIPs = 10.0.0.2/32

操作说明

  • <客户端1的公钥> 替换为 cat /etc/wireguard/client1_publickey 命令输出的内容。
  • 0.0.2 是这个客户端在 VPN 网络中的专属 IP。
  • 保存并退出 (Ctrl+X, Y, Enter)。

生成客户端配置文件(方便导入手机/电脑)

为了方便使用,我们生成一个可以直接导入到客户端设备的配置文件。

# 创建客户端配置文件
sudo nano /etc/wireguard/client1.conf

粘贴进去,并 务必修改 PrivateKeyAddress

[Interface]
# 客户端的内网 IP 地址
Address = 10.0.0.2/32
# 将客户端1的私钥粘贴到这里
PrivateKey = <客户端1的私钥>
# (可选) 设置 DNS,防止 DNS 泄漏
DNS = 1.1.1.1, 8.8.8.8
[Peer]
# 服务器端的公钥
PublicKey = <服务器的公钥>
# 服务器的公网 IP 和端口
Endpoint = <你的服务器公网IP>:51820
# 允许客户端通过 VPN 访问整个互联网 (0.0.0.0/0 表示所有流量)
AllowedIPs = 0.0.0.0/0, ::/0
# 保持连接,避免断线
PersistentKeepalive = 25

操作说明

  • <客户端1的私钥>:从 cat /etc/wireguard/client1_privatekey 复制。
  • <服务器的公钥>:从 cat /etc/wireguard/publickey 复制。
  • <你的服务器公网IP>:替换为你的 Droplet 的公网 IP 地址。
  • 保存并退出。

第六步:启动并启用 WireGuard

让我们启动 VPN 服务。

# 启动 wg0 接口
sudo wg-quick up wg0
# 查看配置是否成功
sudo wg

如果看到类似下面的输出,说明配置成功:

interface: wg0
  public key: <服务器公钥>
  private key: (hidden)
  listening port: 51820
peer: <客户端1公钥>
  allowed ips: 10.0.0.2/32

为了让 WireGuard 在服务器重启后自动启动,执行:

sudo systemctl enable wg-quick@wg0

第七步:配置客户端设备

你需要将 client1.conf 文件下载到你的设备上,并导入到 WireGuard 客户端中。

  1. 下载配置文件

    • 在服务器上,我们可以用 cat 命令显示文件内容,然后复制。
      cat /etc/wireguard/client1.conf
    • 将输出的所有内容复制到一个文本编辑器中,保存为 client1.conf 文件。
    • 或者,如果你有 Web 服务器环境,可以把它放到临时目录里用浏览器下载。
  2. 安装客户端软件

  3. 导入配置

    • 打开你安装好的 WireGuard 客户端。
    • 通常会有一个 "Add Tunnel" 或 "Import from file" 的选项。
    • 选择你刚刚下载的 client1.conf 文件。
    • 客户端会自动解析配置,并显示一个新的连接。
  4. 连接 VPN

    • 在客户端列表中,找到你刚刚导入的连接,点击 "Activate" (激活) 按钮。
    • 等待几秒钟,连接成功后,你的设备就通过 DigitalOcean 的服务器上网了!

如何验证是否成功? 打开浏览器,访问 IPinfo.ioWhatIsMyIP.com,如果你的 IP 地址变成了你的 DigitalOcean 服务器的 IP 地址,并且位置也对应上了,那么恭喜你,VPN 搭建成功!


第八步:高级与安全

如何添加更多客户端?

如果你想为手机、平板或另一台电脑也配置 VPN,只需重复 第五步 中的第 2 和 3 点即可。

  1. 在服务器上生成新的客户端密钥:
    # 为客户端2生成密钥
    wg genkey | tee client2_privatekey | wg pubkey > client2_publickey
  2. 编辑 /etc/wireguard/wg0.conf,在 [Peer] 段落下添加新的客户端:
    [Peer]
    PublicKey = <客户端2的公钥>
    AllowedIPs = 10.0.0.3/32
  3. 编辑 /etc/wireguard/client2.conf,创建新的客户端配置文件。
  4. 重启 WireGuard 服务 使新配置生效:
    sudo wg-quick down wg0
    sudo wg-quick up wg0

防止 DNS 泄漏

我们在客户端配置中已经设置了 DNS 选项,这能有效防止你的 DNS 请求通过本地网络泄露,从而保护你的隐私。

使用防火墙 (UFW)

虽然 DigitalOcean 有自己的云防火墙,但系统级的防火墙(如 UFW)可以提供更精细的控制。

# 安装 UFW
sudo apt install ufw -y
# 允许 SSH 连接 (必须先开这个,否则可能把自己锁在外面)
sudo ufw allow OpenSSH
# 允许 WireGuard 端口
sudo ufw allow 51820/udp
# 启用防火墙
sudo ufw enable

费用提醒

DigitalOcean 是按小时计费的,即使你关掉了 Droplet,只要 Droplet 的状态是 "Active",就会持续产生费用,当你不需要使用 VPN 时,请务必回到 DigitalOcean 控制台,将你的 Droplet 关机销毁,以节省费用。


恭喜你!现在你已经拥有了一个由自己掌控的、高速安全的 DigitalOcean WireGuard VPN,你可以随时随地连接它,来保护你的网络隐私、访问地理限制内容,享受吧!

分享:
扫描分享到社交APP
上一篇
下一篇