FreeBSD 配置 WireGuard

Jun 16, 2024 • 预计阅读时间 1 分钟

本文适用于 FreeBSD 13.2+

从 FreeBSD 13.2 开始,WireGuard 驱动已经集成到系统里了,wg 命令默认是可用的。

只需要另外安装 wireguard-tools 就可以轻松配置 WireGuard 了:

$ sudo pkg install wireguard-tools

生成所需的密钥

私钥:

$ wg genkey
CJGUcc1TUZztJr8iI59qIlAOHnPuEwazN9nvFn+Lt0E=

公钥:

$ echo CJGUcc1TUZztJr8iI59qIlAOHnPuEwazN9nvFn+Lt0E= | wg pubkey
+ehIzEdIA3vnKoFeIZ3HIQrr+I8hWYpM+cM/KAqDmD0=

PSK:

$ wg genpsk
9z9HLJ8kowp4lpBMqLUGtPzJj4PXqxR2QxBY3pV81LI=

其中私钥自己保管,公钥和 PSK 是分发给其他 Peer 的,其中 PSK 是为了增加安全性。

创建虚拟接口配置文件

网络接口名称和配置名称保持一致,好维护一些,待会要使用的网络接口是 wg0,所以配置文件名称也叫 wg0.conf

[Interface]
PrivateKey = CJGUcc1TUZztJr8iI59qIlAOHnPuEwazN9nvFn+Lt0E=
Address = 10.10.10.1/32
ListenPort = 55189
MTU = 1280

MTU 配置为 1280,比较保守,但是适应更多的网络环境,其他的 Peer 也需要配置为一样的 MTU 值才能正确连接。

设置 wg0 网卡的地址是 10.10.10.1 ,后面的掩码 /32 也需要,不然待会启动服务会有警告:ifconfig: WARNING: setting interface address without mask is deprecated

保存到 /usr/local/etc/wireguard/wg0.conf

配置 WireGuard 服务

开机时自动启动 wireguard 服务:

$ sudo service wireguard enable

设置 wireguard 的接口,现在只有一个 wg0

$ sudo sysrc wireguard_interfaces=wg0

启动 wireguard 服务,配置正确的话应该可以顺利启动:

$ sudo service wireguard start

[#] ifconfig wg create name wg0
[#] wg setconf wg0 /dev/stdin
[#] ifconfig wg0 inet 10.10.10.1/32 alias
[#] ifconfig wg0 mtu 1280
[#] ifconfig wg0 up
[+] Backgrounding route monitor

作为中转服务器

如果 FreeBSD 是作为中转服务器使用,需要打开 IP 转发功能才可以支持端点之间互相访问。

编辑 /etc/rc.conf

gateway_enable="YES"
FreeBSDWireGuard
版权声明:如果转发请带上本文链接和注明来源。

lvv.me

iOS/macOS Developer

Nginx 降低延迟的一些配置

FreeBSD 设置固定的 DNS