谢夏戈 @ xiexiage.com

「WireGuard」搭建属于自己的VPN

Jun 30

VPN

VPN(虚拟专用网络,Virtual Private Network)是一种可以通过公共网络来安全传输数据的技术。通过VPN,用户可以在公用网络上创建一条加密的通道,从而确保传输的数据不被未经授权的用户窥视和篡改。

当然,对于大部分国内的人来说,使用VPN更多的是用来访问一些访问不了的应用或者网页,例如 Google,Twitter,YouTube 或者是加速游戏,打开Steam商店等…

不过市面上的VPN很难找,在iOS下载VPN也很麻烦,而且价格方面也不便宜。

当然接下来的方法也是需要付费的,因为我们需要一台服务器!

如果你的目标是免费VPN,那这个方案可能不适合你,但是如果你实在找不到靠谱的VPN,或者动动手尝试一下搭建属于自己的VPN也是不错的。 或者你和我一样刚好有一台用来练习,学习用的服务器,那正好让它多一项功能!

购买服务器

购买服务器可以用阿里云,腾讯云,华为云,百度云,或者其他云服务器提供商,购买服务器的价格根据自己的需求来定。
由于我是学习用的,所以我买了一台最便宜的服务器。可以参考如下:

我是在这购买的 👉 阿里云-云服务器ECSvpn-WireGuard-vpn-WireGuard-ECS1vpn-WireGuard-vpn-WireGuard-ECS2vpn-WireGuard-vpn-WireGuard-ECS3

  • 注意你的登录名:root,以及自己设置的密码哦!
  • 注意:如果你的需求是为了打开海外的网站或应用,那么最好记得选择香港的服务器,或者是海外的服务器。

用 SSH 登录服务器

下载一个SSH客户端,我个人用的是 「Tabby」vpn-WireGuard-vpn-WireGuard-Github-Tabbyvpn-WireGuard-vpn-WireGuard-Github-Tabby-Download 选择对应的电脑系统下载就可以了

  • Windows系统下载:tabby-x-setup-x64.exe
  • Mac系统M1芯片下载:tabby-x-macos-arm64.dmg

下载安装后进入配置 👇 vpn-WireGuard-vpn-WireGuard-Tabby-Set1 选择SSH连接 vpn-WireGuard-vpn-WireGuard-Tabby-Set2 填写刚买的服务器的信息,默认端口是22,其实就和登录QQ一样简单。

随后双击登录,只要账号密码不出错,我们就可以连接上这台服务器了

然后在这个服务器上安装 WireGuard 了。

【服务端】安装 WireGuard

首先在服务器上输入更新包指令:它可以帮助我们获取最新的软件包。

  • 更新包:sudo apt update
  • 安装 WireGuard:sudo apt install wireguardvpn-WireGuard-vpn-WireGuard-install-wireguard

以下是一些常用的指令,来控制 WireGuard 的运行:

  • 启动:sudo wg-quick up wg0
  • 停止:sudo wg-quick down wg0
  • 状态: sudo wg show

开启端口转发

确保启用IP转发,编辑 /etc/sysctl.conf 文件,添加或取消注释以下行:

vpn-WireGuard-vpn-WireGuard-set-sysctl 使用 Tabby 可以右键这个服务器上的文件,在本地编辑。

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

vpn-WireGuard-vpn-WireGuard-sysctl_conf 修改完后,保存退出,然后执行以下指令使设置生效:

sudo sysctl -p

vpn-WireGuard-vpn-WireGuard-sysctl-p

给 WireGuard 足够的权限

用 cd 进入到安装了 WireGuard 的目录,然后执行以下命令:

cd /etc/wireguard/
chmod 0777 /etc/wireguard

# 调整目录默认权限
umask 077

生成【服务端】密钥对:

进入到安装了 WireGuard 的目录,然后执行以下命令:

cd /etc/wireguard/
wg genkey | tee privatekey | wg pubkey > publickey

这将会创建一个名为:privatekey 文件和 publickey 文件在当前文件夹下

vpn-WireGuard-vpn-WireGuard-privatekey-publickey

  • 查看【服务器】私钥:cat privatekey
  • 查看【服务器】公钥:cat publickey

生成【客户端】密钥对:

我们需要在服务器的 WireGuard处 生成客户端的公钥密钥

这个客户端也就是我们的本地电脑Mac,Windows,或者手机,需要安装 WireGuard 客户端软件,然后配置好服务器的 IP 和端口,然后导入服务器的公钥。

生成「客户端」密钥对:

#生成私钥
wg genkey > client1.key

# 通过私钥生成密钥
wg pubkey < client1.key > client1.key.pub
  • 查看「客户端」私钥:cat client1.key
  • 查看「客户端」公钥:cat client1.key.pub

vpn-WireGuard-vpn-WireGuard-client1

配置 WireGuard【服务端】

如果使用的不是 Tabby 客户端,那么可能需要用nano编辑器打开配置文件:

sudo nano /etc/wireguard/wg0.conf

使用 Tabby ,可以右键它在本地编辑文件:/etc/wireguard/wg0.confvpn-WireGuard-vpn-WireGuard-set-wg0

[Interface]
Address = 10.0.0.1/24  # VPN内部的IP地址
SaveConfig = true
PrivateKey = <你的服务器私>
ListenPort = 51820

[Peer]
PublicKey = <客户端公>
AllowedIPs = 10.0.0.2/32  # 客户端的VPN IP地址
  • 查看【服务器】私钥:cat privatekey
  • 查看【服务器】公钥:cat publickey
  • 查看「客户端」私钥:cat client1.key
  • 查看「客户端」公钥:cat client1.key.pub

启动 WireGuard

  • 设置开机自启:sudo systemctl enable wg-quick@wg0
  • 激活wg0的接口:sudo wg-quick up wg0

vpn-WireGuard-vpn-WireGuard-open-wg0

配置防火墙

  • WireGuard 默认是 (51820/UDP)端口,所以需要在防火墙中放行。
sudo ufw allow 51820/udp

当我们的 WireGuard启动后,就需要设置好客户端,让客户端开启 WireGuard 客户端软件,导入客户端配置文件信息,然后就可以使用这个 VPN 了。

【客户端】安装 WireGuard :

MacOS/Windows/iOS/Android 都有 WireGuard 客户端,iPhone 可以在 App Store 搜索 WireGuard 下载安装。

他们的客户端配置方式都是一样的,只需把填写好的【客户端配置文件】导入,点击启动就可以使用了。这里我们先安装 MacOS 的示范。👇

vpn-WireGuard-vpn-WireGuard-MacOrWin-download-WireGuard

配置 WireGuard【客户端】

每个客户端都需要其自己的配置文件,客户端配置类似服务器的配置。

  • [Interface] 部分包含客户端的私钥和分配给客户端的IP地址。
  • [Peer] 部分包含服务器的公钥、服务器的外部IP地址以及要路由到VPN到IP范围。

在本地计算机编写一个文件,比如 Mac.conf,内容如下:

例如我计划给iPhone、Mac、Windows都设置,我现在先给Mac设置,所以取名为 Mac.confvpn-WireGuard-vpn-WireGuard-WireGuard_Set2

[Interface]
PrivateKey = <客户端私>
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = <服务器公>
Endpoint = <服务器外部IP地>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

后面可以给 iPhone、Windows、Mac 都配置一份配置文件。

【注意】:这些命令是在服务器上安装了 WireGuard 的目录下执行,以此来查看的。

  • 查看【服务器】私钥:cat privatekey
  • 查看【服务器】公钥:cat publickey
  • 查看「客户端」私钥:cat client1.key
  • 查看「客户端」公钥:cat client1.key.pub

【客户端】软件下载后正常安装,然后点开配置,把之前写好的配置文件导入。

然后点击启动就可以开启【 VPN 】了

vpn-WireGuard-vpn-WireGuard-Mac-set-WireGuard

🎉 然后你就可以访问 Google、YouTube 等网站了。

vpn-WireGuard-vpn-WireGuard-Youtube

谢夏戈 @ xiexiage.com
2023-PRESENT © 谢夏戈