目的
- 由于公司网络和家庭网络不互通,在 OPNsense 上使用 WireGuard 把公司和家庭网络组成局域网,方便在公司访问家中 NAS 等设备
- 由于电信封了 80,443 等常用端口,又不想访问域名时加上端口号,组局域网后即可使用 80,443 等
环境说明
软件版本
| 软件 | 版本号 |
|---|---|
| OPNsense | 19.7.7-amd64 |
| OPNsense 插件 WireGuard | 1.1 |
| Windwos WireGuard | 0.0.35 |
VPN 网段 10.20.6.0/24
家庭内网 10.1.1.0/24
机器 IP 规划
| 机器 | IP |
|---|---|
| OPNsense | 10.20.6.1 |
| 公司 Windwos | 10.20.6.2 |
注意:家庭网络需要有公网 IP
OPNsense 设置
安装
系统->固件->插件->os-wireguard->+;安装完成后刷新,可在VPN中找到WireGuard
设置 OPNsense WireGuard
切换到本地选项卡,点+添加一个本地配置
| 配置项 | 推荐值 |
|---|---|
| 名称 | 自定义 |
| 公钥 | 不填,等会保存后会自动生成 |
| 私钥 | 不填,等会保存后会自动生成 |
| 监听端口 | 自定义,默认 51820 |
| DNS 服务器 | 自定义,可不填 |
| 隧道地址 | 10.20.6.1/24 按照上面规划设置 |
| 对等 | 不选,等会再回来选择 |
| 禁用路由 | 不选 |
保存
设置端点
连接 opnsense ssh,输入以下命令生成公私钥
1 | wg genkey | tee privatekey | wg pubkey > publickey |
生成后复制公钥备用,运行命令生成共享密钥
1 | root@OPNsense:/tmp # wg genkey |
切换到端点选项卡,点+添加一个端点
| 配置项 | 推荐值 |
|---|---|
| 名称 | 自定义 |
| 公钥 | 粘贴刚才生成的 |
| 共享密钥 | 复制刚才第二次生成的粘贴 |
| Allowed IPs | 10.20.6.2/24 按照上面规划设置(添加的是公司 Windwos 端点) |
| 终点地址 | 不填 |
| 终点端口 | 不填 |
| Keepalive | 25(此项为心跳间隔时间,详情参考官方文档) |
保存
切换到常规选项卡,启用 WireGuard
防火墙设置
防火墙->规则->WAN->添加
| 配置项 | 推荐值 |
|---|---|
| 协议 | TCP/UDP |
| 目标 | 防火墙自身 |
| 目标端口范围 | 本地配置中监听端口 |
| 描述 | 自定义 |
保存后,应用
公司 Windows 设置
配置文件如下:
1 | [Interface] |
保存后启用
测试
公司 ping 家庭内网
1 | λ ping 10.1.1.5 |
路由下设备 ping 公司 Windows
1 | ~ % ping 10.20.6.2 |
访问家中 nginx
1 | curl https://example.com |
以上
如果需要家庭内网和公司内网互通,请参考下面这篇文章
https://gobomb.github.io/post/wireguard-notes
参考
https://www.wireguard.com
https://docs.opnsense.org/manual/how-tos/wireguard-client.html