如何安装和设置wireguard?

安装wireguard

在ubuntu server下安装wireguard

sudo apt update
sudo apt install -y wireguard wireguard-tools

安装完成之后检测wireguard版本


wg —version

创建密钥

生成密钥

云服务器端和本地服务器都是按下面的命令生成

cd /etc/wireguard
umask 077
wg genkey | tee private.key | wg pubkey > public.key

查看密钥

查看命令

cat private.key
cat public.key

创建配置文件

云服务器创建配置文件

执行

nano /etc/wireguard/wg0.conf

文件内容

[Interface]
Address = <云服务器自定义内网ip>  # 10.88.88.1/24
ListenPort = <云服务器端口> # 51820
PrivateKey = <云服务器私钥> # EAiM1J8EKDMb5jeFKxnWt6SMzkldgEM=

[Peer]
PublicKey = <本地服务器公钥> # 2W/npFHw9apNZN4hmhemFfK9gicfmY1kYL6hWAQ8jCE=
AllowedIPs = <本地服务器自定义内网ip> # 10.88.88.2/32

本地服务器创建配置文件

执行

nano /etc/wireguard/wg0.conf

文件内容

[Interface]
PrivateKey = <本地服务器私钥> # pK9gicfmY1kYL6hWAQ8jCE=
Address = <本地服务器自定义内网ip> # 10.88.88.2/24
ListenPort = <云服务器端口> # 51820

[Peer]
PublicKey = <云服务器公钥> # icfmY1kYL6hWAQ8jCE=
Endpoint = <云服务器公网IP>:<云服务器端口> # xx.x.xxx.x:51820
AllowedIPs = <云服务器自定义内网ip> # 10.88.88.1/32
PersistentKeepalive = 25

启动和停止(临时)

以下代码仅服务器当前运行有效,关机重启后wireguard不会自动重启

关闭wg

sudo wg-quick down wg0

启动

sudo wg-quick up wg0

开机自动启动

在 Ubuntu Server 上,给 WireGuard 设置开机自动启动

sudo systemctl enable wg-quick@wg0

立即启动

sudo systemctl start wg-quick@wg0

查看状态

systemctl status wg-quick@wg0

Tips

WireGuard状态

云服务器和本地服务器都启动WireGuard后,可以查看WireGuard状态,看看是否Active: active

使用ping检测

比如云服务器ping本地服务器,,如果能ping通过,那么就是没有问题,(反过来本地也可以ping云服务器自定义ip)本文示例

ping 10.88.88.2

间隔断联

最近发现使用WireGuard,总是隔几天断联,需要执行停止和启动WireGuard,重启就好了

但是WireGuard本来就是为了公网访问内网,一旦它断联,就无法公网访问内网,只能人在本地服务器,使用命令重启

使用frp做ssh代理的时候,几乎不会有这种情况,即便因为一些原因断联,frp也会自动重新连接,所以建议frp作为辅助,以确保WireGuard在断联的时候,还可以公网ssh进入本地服务器来执行命令