安装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进入本地服务器来执行命令