TrueNAS SCALE Wireguard 搭配Wg-Gen-Web食用方法
TrueNAS SCALE Wireguard 搭配Wg-Gen-Web食用方法

TrueNAS SCALE Wireguard 搭配Wg-Gen-Web食用方法

 
TrueNAS SCALE 本身已经集成了Wireguard (WG) ,但没有做面板,只能通过命令行配置,在终端多且使用者没有相关知识下,操作相对复杂。
之前有看过Sagit的教程(TrueNAS SCALE 安装部署wireguard),用ngoduykhanh/wireguard-ui的镜像搭配wg-quick命令简单配置即可使用,但是有些小问题。
同时TrueCharts社区似乎也更新了Wireguard应用,但是配置文件也得生成,同时你还能享受到垃圾应用启动和停止速度,管理配置也不方便。
TrueNAS官方应用wg-easy似乎可配置的东西又有点少,不灵活。
所以这里使用vx3r/wg-gen-web镜像,重启或者升级版本都能保留配置,带UI面板,操作简单。
 

 

原理

wg-gen-web镜像的配置以及WG配置,控制实际是由WG_CONF_DIR(默认为/data)下的server.json文件控制的,所以将WG_CONF_DIR挂载到一个Host Path目录,同时把WG_CONF_DIR下的WG conf文件映射到主机的/etc/wireguard下即可。

实现

起一个Custom App

 
Container Repository: #镜像 vx3r/wg-gen-web Container Tag: #镜像Tag latest Extra Environment Variables #环境变量 #容器内配置文件目录 WG_CONF_DIR = /data #WG配置文件名称(需要以.conf结尾) WG_INTERFACE_NAME = wg0.conf Networking and Services #网络设置 Service's Port(s) Configuration Main Service Port Configuration #配置Wg-Gen-Web的面板UI #容器内端口为8080 Target Port: 8080 #TrueNAS SCALE节点端口,自定义 Port: 38081 Storage and Persistence #存储 Host Path #我这里把本地/mnt/TPool/APPconfig/wg 映射到“配置文件目录”的“/data”,这一行根据自己条件更改 /mnt/TPool/APPconfig/wg : /data #把系统/etc/wireguard下的"WG配置文件名称"文件 映射 到 “配置文件目录”下的"WG配置文件名称"文件 #!!!注意这里一定是文件,不能映射目录 /etc/wireguard/wg0.conf : /data/wg0.conf Pod Security Context #容器权限 #取消勾选runAsNonRoot runAsNonRoot X runAsUser: 0 runAsGroup: 0
其他全部保持默认,应用即可。
 

Wg Gen Web配置

 
点击右上角SERVER配置服务端
Server's interface configuration Listen port #监听端口 51820 Client's global configuration Client's global configuration #WG接入点的IP或者域名+端口号(不懂就与上文监听端口一致) [homelabproject.cc]:51820 DNS servers for clients #给客户端的DNS服务器,这里建议直接给家里的网关 192.168.1.1 Default Allowed IPs for clients #允许WG通过的IP。0.0.0.0/0=所有流量经过WG回家,局域网IP/24=仅在访问局域网IP时经过WG代理回家 0.0.0.0/0 Interface configuration hooks PostUp: script snippets which will be executed by bash after setting up the interface #WG启动时脚本 #照抄,把br0的改成自己SCALE上的网卡名字即可 iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE PostDown : script snippets which will be executed by bash after setting down the interface #WG关闭时脚本 #照抄,把br0的改成自己SCALE上的网卡名字即可 iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o br0 -j MASQUERADE
其他保持默认,点击橙色按钮“UPDATE SERVER CONFIGURATION” 和 “APPLY GOBALS TO ALL CLIENS” 保存配置即可
 

开启关闭WG

打开TruenNAS SCALE命令行
 
启动WG
#wg-quick up [WG配置文件名称] wg-quick up wg0
 
需要关闭时
关闭WG
#wg-quick down [WG配置文件名称] wg-quick down wg0
 
注意,在每次应用配置后,都需要重新关闭并启动
 

开启ipv4转发以用于直接访问LAN

系统设置-高级-Sysctl里添加Variable(变量)
net.ipv4.conf.all.src_valid_mark
net.ipv4.ip_forward
Value均为1(打开)
notion image
notion image

配置开机启动

在TrueNAS SCALE面板 系统设置-高级-开关机脚本 中添加
notion image
sleep 5m && wg-quick up wg0
(sleep 5m?为了等待缓慢的K3S启动(没验证))
保存
 

连不上?

  1. 记得做路由UDP端口转发外网的端口到监听端口
  1. 使用 wg show 命令查看是否握手来确定端口转发是否生效
 
参考:
TrueNAS SCALE 安装部署wireguard,Sagit,https://www.truenasscale.com/2022/04/06/895.html