乌班图22.04安装wireguard实现异地组网

1. 前言:

wireguard是新型的异地组网工具,在此之前,又已经被抛弃的pptp,有配置复杂的openwireguard被linux作者linus赞叹优雅,于linux 5.6合并至linux内核主线。
乌班图22.04安装wireguard实现异地组网_第1张图片

2. 安装过程:

也就是说,linux内核的版本最好大于5.6,如果自己有能力的话,可以尝试编译安装到低版本的linux,不过可能有难度,这里不予展示。

用群晖6.1.7(内核3)装了很久,折腾不太成功,还是装个虚拟机吧。

准备:

  1. 一个linux发行版主机或虚拟机(推荐最新版的)

我这里用的是sever版的乌班图22.04.

1. 更新软件包列表

sudo apt update

乌班图22.04安装wireguard实现异地组网_第2张图片

2. 安装wireguard软件包。

sudo apt install wireguard

嘎嘎回车就完了
乌班图22.04安装wireguard实现异地组网_第3张图片

3. 生成server端秘钥对
实际上,wireguard并不严格分服务端和客户端,这里我们为了清晰明了,一步步说明。

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

在 /etc/wireguard上生成公私钥。
乌班图22.04安装wireguard实现异地组网_第4张图片

4. 配置wireguard。

[Interface]
# 自己拿到的私钥,用于server
PrivateKey = OJgEAHoM/rtEFymO+Hd4M3gWu0KEL2AwpWeNiH+gllI=
# <选择您的VPN服务器IP地址和子网掩码,例如:10.0.0.1/24>
Address = 10.0.0.1/24
# 监听端口
ListenPort = 51820

[Peer]
# 监听端口
PublicKey = Ue37eCIGJRLe1+ykp25LZIwXa3A3rxn4UnBrOrJxkWc=
#哪些IP地址或IP子网流量会通过WireGuard接口进行路由
AllowedIPs = 10.0.0.2/32

在wireguard新建隧道,把客户端公钥复制到,乌班图wg0中的peer中
PublicKey = Ue37eCIGJRLe1+ykp25LZIwXa3A3rxn4UnBrOrJxkWc=

客户端配置:

[Interface]
#客户端私钥
PrivateKey = CPBgcYmbJFQ7qV9TPQD8X3QIwbRsvtqaJnd39WvLU0c=
客户端地址
Address = 10.0.0.2/32

[Peer]
# 服务端地址
PublicKey = Xmuc5J54v7xShTqY4SVIcB5kBVZDEeLHyvOrQV6qyHo=
#哪些IP地址或IP子网流量会通过WireGuard接口进行路由
AllowedIPs = 0.0.0.0/0, ::/0
# 链接主机,一般填的话算做客户端
Endpoint = 172.28.61.92:51820
PersistentKeepalive = 25

乌班图22.04安装wireguard实现异地组网_第5张图片

乌班图22.04安装wireguard实现异地组网_第6张图片
5. 启动wireguard

#手动加载内核模块
sudo modprobe wireguard 
#查看内核是否运行
lsmod | grep wireguard

乌班图22.04安装wireguard实现异地组网_第7张图片
6. 链接成功
乌班图22.04安装wireguard实现异地组网_第8张图片

乌班图22.04安装wireguard实现异地组网_第9张图片

7. 开启内核转发

如果你发现访问不了局域网设备,可能是没开启内核转发。

内核转发是计算机网络中非常重要的功能,它使得数据包能够在不同的网络接口之间正确传递,从而实现网络通信和数据交换

在安装和配置WireGuard时,有时需要启用内核转发(Kernel IP
Forwarding),以便正确地将流量从一个接口转发到另一个接口,从而实现VPN的正常工作。

3. 总结:

虚拟机可以通过路由开启端口转发,把51820映射一下,就可以通过外网访问家里的局域网了,不过感觉还是开个虚拟机太浪费了,再折腾一下,看看能不能直接装进低版本群晖里。

你可能感兴趣的:(linux,网络,bash)