使用WireGuard在两台主机之间建立安全隧道

最近新增了一台VPS主机作为站点的前置机,但是两台主机之间没有VPC网络,所以需要搭建一条安全的隧道进行相互通信。如果你是在公有云厂商购买的主机就不需要担心主机通信问题,直接走VPC网络就行。

最早我是使用SSH把网站的端口映射到前置机的,但是稳定性不是很好,所以我考虑使用WireGuard来搭建一个安全的隧道网络

安装 WireGuard

在两台 Ubuntu 主机上运行以下命令安装 WireGuard

sudo apt update

sudo apt install wireguard

配置 WireGuard

  1. 生成服务端密钥对

执行以下命令后,分别在两台主机执行下列命令,会在 /etc/wireguard 目录下生成私钥文件 privatekey 和公钥文件 publickey 

 

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

我们在/etc/wireguard目录会找到相应的公私钥文件,请一定要确保私钥的安全。

  1. 创建配置文件

A主机/etc/wireguard 目录下创建一个名为 wg0.conf 的配置文件:

 vim /etc/wireguard/wg0.conf

[Interface]
PrivateKey = <Machine A
的私钥内容>
Address = 10.0.0.1/24
ListenPort = 5555

[Peer]
PublicKey = <Machine B
的公钥内容>
AllowedIPs = 10.0.0.2/32
Endpoint = <Machine B
的公网 IP>:5555

同时在在 B主机/etc/wireguard 目录下创建一个名为 wg0.conf 的配置文件:

[Interface]
PrivateKey = <Machine B
的私钥内容>
Address = 10.0.0.2/24
ListenPort = 5555

[Peer]
PublicKey = <Machine A
的公钥内容>
AllowedIPs = 10.0.0.1/32
Endpoint = <Machine A
的公网 IP>:5555

设置权限和防火墙

确保配置文件安全,并允许 UDP 5555 端口:

sudo chmod 600 /etc/wireguard/wg0.conf

sudo ufw allow 5555/udp

启动和测试

启动 WireGuard 并测试连接:

sudo wg-quick up wg0

Machine A ping 10.0.0.2,从 Machine B ping 10.0.0.1。若成功,隧道已建立。

开机自启

使 WireGuard 在启动时自动运行:

sudo systemctl enable wg-quick@wg0

注意:除了需要在A.B主机直接放通公网IP访问UDP/5555端口之外,两端也需要放通内网10.0.0.0/24网段的互访权限。

 

 

 

上一篇
下一篇