文章摘要
这篇文章介绍了在FreeBSD家庭NAS上配置WireGuard VPN的步骤,包括与Linux设备的对等连接设置以及网络路由的配置方法,以实现安全的远程访问和网络互通。
文章总结
FreeBSD家庭NAS搭建指南(三):WireGuard VPN、Linux节点与路由配置
本文是FreeBSD家庭NAS系列教程的第三部分,重点介绍如何通过WireGuard VPN连接家庭与办公室网络,并实现跨局域网访问。
WireGuard与OpenVPN对比
作者在VPN方案选择上对比了OpenVPN和WireGuard: - WireGuard优势:代码精简(Linux内核仅4000行)、内核级运行、加密内置、P2P架构 - OpenVPN特点:用户空间运行、传统C/S架构、依赖SSL/TLS栈 最终选择WireGuard,因其更适合家庭场景的高效轻量需求。
网络架构设计
- 办公室网络:192.168.0.0/24,含FreeBSD主机(NAS)和Arch Linux笔记本
- 家庭网络:192.168.100.0/24,仅Arch Linux笔记本
- 目标:通过WireGuard实现两地设备互访,FreeBSD作为VPN服务器,TP-Link路由器配置端口转发。
FreeBSD上的WireGuard部署
- 安装与加载模块:
bash pkg install wireguard-tools kldload if_wg - 网络配置:
- 启用IP转发:
sysctl net.inet.ip.forwarding=1 - 更新PF防火墙规则,放行VPN流量(UDP 51820)及跨子网通信。
- 启用IP转发:
- 密钥生成:
bash wg genkey | tee server.key | wg pubkey > server.pub - 基础配置(
/usr/local/etc/wireguard/wg0.conf):ini [Interface] Address = 10.8.0.1/24 ListenPort = 51820 PrivateKey = <服务器私钥>
路由器与Linux客户端配置
- TP-Link路由器:设置动态DNS(No-IP)和UDP端口转发(51830→192.168.0.2:51820)。
Arch Linux客户端: ```ini [Interface] PrivateKey = <客户端私钥> Address = 10.8.0.3/24
[Peer] PublicKey = <服务器公钥> Endpoint = DDNS域名:51830 AllowedIPs = 10.8.0.1/32, 192.168.0.0/24 ```
跨局域网路由优化
- 问题:家庭与办公室设备无法直接互通。
- 解决方案:
- 在办公室笔记本添加静态路由:
bash ip route add 192.168.100.0/24 via 192.168.0.2 - 更新PF规则,放行跨子网SSH和ICMP流量。
- 在办公室笔记本添加静态路由:
最终效果
- 通过VPN实现两地设备(如家庭笔记本→办公室NAS)的安全访问。
- 完整的PF规则和路由表确保流量可控,日志记录详细。
附注:作者感叹传统网络配置的乐趣,对比云服务VPC的抽象化设计。
系列导航:
- 上一篇:PF防火墙入门
- 下一篇:本地DNS配置
(全文完)
评论总结
总结评论内容:
- 主要观点:介绍获取自定义WireGuard密钥的工具
- 论据:提供了具体工具链接和使用示例
- 关键引用:
- "You can get yourself a vanity key using https://github.com/AlexanderYastrebov/wireguard-vanity-key tool"
- "wireguard-vanity-key -prefix=NAS/"
(注:由于只有一条评论,无法展示不同观点的平衡性。该评论未显示评分信息)