一、组网目标
通过 WireGuard 建立加密隧道,实现腾讯云服务器与家用 iStoreOS 及内网设备(192.168.9.0/24 网段)的互通,支持腾讯云访问家用内网服务(如 SSH、Web 服务等)。
点我跳转博客看原文
二、环境信息
| 设备角色 | 
系统版本 | 
公网 / 内网信息 | 
虚拟 IP | 
| 腾讯云服务器 | 
Ubuntu 24.04(root) | 
公网 IP:1.2.3.4(示例) | 
10.8.0.1/24 | 
| 家用 iStoreOS | 
最新稳定版 | 
内网网段:192.168.9.0/24 | 
10.8.0.2/32 | 
| 家用内网设备 | 
任意系统 | 
内网 IP:192.168.9.52(示例) | 
- | 
| DDNS 域名 | 
- | 
域名:wireguard.868333.xyz | 
- | 
三、腾讯云服务器配置(Ubuntu 24.04)
3.1 安装 WireGuard
# 更新软件源
apt update
# 安装 WireGuard 工具(内核原生支持,无需额外模块)
apt install -y wireguard
3.2 生成密钥对
# 进入配置目录并生成密钥(私钥保存在文件,公钥需记录)
mkdir -p /etc/wireguard && cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
# 查看并记录密钥(公钥需配置到 iStoreOS)
cat privatekey  # 腾讯云私钥:[请替换为实际生成的私钥]
cat publickey   # 腾讯云公钥:[请替换为实际生成的公钥]
3.3 编写 WireGuard 配置文件(wg0.conf)
nano /etc/wireguard/wg0.conf
配置内容如下(关键信息已适配实际环境):
[Interface]
# 腾讯云私钥(步骤 3.2 生成)
PrivateKey = [请替换为腾讯云实际私钥]
# 虚拟 IP(固定网段 10.8.0.0/24)
Address = 10.8.0.1/24
# 监听端口(UDP,需与 iStoreOS 一致)
ListenPort = 51820
# 防火墙转发规则(适配 Ubuntu ufw)
PostUp = ufw allow 51820/udp; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = ufw delete allow 51820/udp; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
# iStoreOS 公钥(从 iStoreOS 后台获取)
PublicKey = [请替换为 iStoreOS 实际公钥]
# 允许访问的网段(iStoreOS 虚拟 IP + 家用内网)
AllowedIPs = 10.8.0.2/32, 192.168.9.0/24
# 家用 DDNS 域名(自动解析家用公网 IP)
Endpoint = wireguard.868333.xyz:51820
# 心跳包(保持连接,25 秒一次)
PersistentKeepalive = 25
3.4 配置系统与防火墙
# 开启 IP 转发(永久生效)
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
# 开放 WireGuard 端口(UDP 51820)
ufw allow 51820/udp
ufw enable  # 确保防火墙已启用
3.5 启动并设置开机自启
# 启动 WireGuard 接口
wg-quick up wg0
# 设置开机自启(通过 systemd 管理)
systemctl enable wg-quick@wg0
3.6 验证腾讯云状态
# 查看 WireGuard 连接状态(需显示 handshake 记录)
wg
# 测试到 iStoreOS 虚拟 IP 的连通性(SSH 示例,目标需开通ssh远程访问)
ssh root@10.8.0.2
# 测试到家用内网设备的连通性(telnet 示例,需目标设备开放对应端口)
telnet 192.168.9.52 [目标设备服务端口]
四、家用 iStoreOS 配置
4.1 安装 WireGuard 插件
我的istoreOS在状态里,好像已经有了,可能以前安装过吧**,所以并没有执行本步骤。**
- 登录 iStoreOS 管理界面(默认地址:
192.168.9.1)。 
- 进入 系统 → 软件包,搜索并安装 
luci-app-wireguard 和 wireguard-tools。 
- 安装完成后重启 iStoreOS(或刷新页面)。
 
4.3 创建 WireGuard 接口(客户端)
- 进入 网络 → 接口 → 添加新接口 → WireGuard VPN → 生成新的密钥对。
- 接口名称:
wg0 
- 协议:选择 
WireGuard VPN 
 
- 配置接口参数:
- 生成新的密钥对,公钥需要填到3.3章节的配置文件中。
 
- 虚拟 IP 地址:
10.8.0.2/32(与腾讯云网段一致,且不冲突)。 
- 点击 “保存”。
 
 
4.4 添加腾讯云 Peer(服务端)
- 在 
wg0 接口页面,点击 “编辑 → 对端 → 添加”:
- 公钥:填写腾讯云步骤 3.2 生成的公钥。
 
- 允许的 IP:
10.8.0.1/32(仅允许访问腾讯云虚拟 IP,按需可加 0.0.0.0/0 实现 “通过腾讯云上网”)。 
- 端点主机:填写腾讯云公网 IP(示例:
1.2.3.4)。 
- 端点端口:
51820(与腾讯云监听端口一致)。 
- 持续 Keepalive:
25(与腾讯云配置匹配)。 
- 点击 “保存” 并 “应用配置”。
 
 
4.5 配置端口转发与防火墙
- 端口转发(确保家用公网能访问 iStoreOS 的 WireGuard 端口):
- 进入 网络 → 防火墙 → 端口转发 → 添加:
- 外部端口:
51820(UDP)。 
- 内部 IP 地址:iStoreOS 内网 IP(示例:
192.168.9.1)。 
- 内部端口:
51820(UDP)。 
- 点击 “保存”。
 
 
 
- 防火墙规则(允许隧道与内网互通):
- 进入 网络 → 防火墙 → 通用设置:勾选 “转发”(允许数据包转发)。
 
- 进入 网络 → 防火墙 → 区域设置:将 
wg0 接口加入 “lan” 区域(确保与内网设备互通)。 
 
4.6 配置 DDNS(动态解析家用公网 IP)
不再赘述了,就是用一个域名,解析非固定的IP。
4.7 验证 iStoreOS 状态
- 进入 网络 → WireGuard → 状态:
- 查看 “最新握手时间”(需显示几分钟内,证明连接正常)。
 
- 查看 “流量传输”(有数据表示隧道已在使用)。
 
 
- 终端验证(可选,需开启 iStoreOS SSH):
# 登录 iStoreOS 终端
ssh root@192.168.9.1
# 查看 WireGuard 状态
wg
# 测试到腾讯云的连通性
ping 10.8.0.1
 
五、常见问题与排查
| 问题现象 | 
可能原因 | 
解决方法 | 
腾讯云 wg无 handshake 记录 | 
1. 腾讯云安全组未开放 51820/UDP;2. iStoreOS 端口转发错误 | 
1. 检查腾讯云安全组入站规则;2. 确认 iStoreOS 端口转发指向正确 IP 和端口 | 
| ping 10.8.0.2 显示 “Destination Port Unreachable” | 
iStoreOS 禁用 ICMP 响应 | 
1. 无需处理(不影响服务);2. 在 iStoreOS 终端执行 iptables -A INPUT -i wg0 -p icmp --icmp-type echo-request -j ACCEPT允许 ping | 
| 腾讯云 telnet 192.168.9.52 [端口] 拒绝连接 | 
1. 目标设备未启动对应端口服务;2. 目标设备防火墙拦截 | 
1. 在目标设备启动服务;2. 开放目标设备对应端口 | 
| iStoreOS 无法连接腾讯云 | 
DDNS 域名解析错误 | 
1. 在腾讯云执行 nslookup wireguard.868333.xyz确认解析 IP 正确;2. 检查 iStoreOS DDNS 配置 | 
六、验证组网成功的标准
- 腾讯云 
wg 命令显示 latest handshake: X seconds ago(连接正常)。 
- 腾讯云可通过 
ssh root@10.8.0.2 登录 iStoreOS。 
- 腾讯云可访问家用内网设备的服务(如 
telnet 192.168.9.52 [端口] 连接成功)。