网络实战 | OpenWrt WireGuard 安装与配置教程(官方方式)

网络实战 | OpenWrt WireGuard 安装与配置教程(官方方式)

2 月前 20 0 0℃

网络实战 | OpenWrt WireGuard 安装与配置教程(官方方式)

本文基于官方推荐方式,系统讲解 OpenWrt WireGuard 的安装与配置方法,结合官方文档说明 net…

本文按照官方推荐方式进行 WireGuard 安装,官方文档参考:
https://openwrt.org/docs/guide-user/services/vpn/wireguard/basics

一、安装 WireGuard

官方推荐通过安装 luci-proto-wireguard 软件包来完成部署。该软件包会自动安装 WireGuard 所需的内核模块及相关依赖组件,无需额外手动安装其他依赖。

二、启用Wiregurad

OpenWrt 的网络由 netifd(网络守护进程)统一管理。当安装 luci-proto-wireguard 时,系统实际上新增了一个协议脚本 /lib/netifd/proto/wireguard.sh。但 netifd 仅在启动时加载协议类型,并不会动态监听目录变化。因此,安装完成后必须重启 network 服务,本质上是重启 netifd,使其重新加载新的协议脚本,否则系统无法识别 WireGuard 协议类型。

安装完成后,依次执行:

/etc/init.d/uhttpd restart
/etc/init.d/network restart

最后刷新浏览器页面,即可在「网络 → 接口 → 添加新接口」中看到 WireGuard(wg)选项。

三、添加peer

3.1 创建接口

新建一个接口,协议类型选择 WireGuard

3.2 配置基础参数

  • 协议类型:WireGuard
  • 设置为开机自动连接
  • 填写本端私钥(公钥会自动生成如果是自己填写的私钥和公钥,及时公私都是对的,那么也无法建立隧道,需要在openwrt里边生成才可以。
  • 配置接口 IP 地址

可以使用 /32 地址(例如 192.168.8.3/32),因为 WireGuard 是点对点三层隧道,不发广播;但是如果是32位地址必须在路由里边加上网关的静态路由,才能通:

可以使用 /24 地址(例如 192.168.8.3/24),因为 WireGuard 是点对点三层隧道,不发广播;但是如果是24位掩码地址,就不需要添加网关的静态路由,用如下命令查看网关的关联网卡:

root@OpenWrt:~# ip route get 192.168.8.1
192.168.8.1 dev WG_DianShi_1 src 192.168.8.3 uid 0 
    cache 
root@OpenWrt:~#

3.3 配置对端(Peer)

在接口下新增对端,并填写:

  • 对端公钥
  • 预共享密钥(可选)
  • 允许的 IP(用于定义哪些目标地址走该 Peer)
  • 对端的公网地址和端口

保存并应用后,重启接口使配置生效。

四、常用命令

root@OpenWrt:~# wg show
interface: WG_DianShi_1
  public key: S8eb9/PTAlXUV/8r982TL/ntte+9dfadfaa7QIrHFE=
  private key: (hidden)
  listening port: 43290

peer: hP5mQhjkhkaCc31f+3qx0LMxBRe7L7o0891YoQmkrNTjA=
  preshared key: (hidden)
  endpoint: 13.14.93.136:6543
  allowed ips: 0.0.0.0/0, 192.168.0.0/16
  latest handshake: 1 minute, 46 seconds ago
  transfer: 101.93 KiB received, 104.01 KiB sent
  persistent keepalive: every 3 minutes
root@OpenWrt:~#
已复制到剪贴板