收起左侧

腾讯云 Ubuntu 24.04 与 iStoreOS WireGuard 组网配置文档

0
回复
147
查看
[ 复制链接 ]

4

主题

7

回帖

0

牛值

江湖小虾

一、组网目标

通过 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在状态里,好像已经有了,可能以前安装过吧**,所以并没有执行本步骤。**

  1. 登录 iStoreOS 管理界面(默认地址:192.168.9.1)。
  2. 进入 系统 → 软件包,搜索并安装 luci-app-wireguardwireguard-tools
  3. 安装完成后重启 iStoreOS(或刷新页面)。

4.3 创建 WireGuard 接口(客户端)

  1. 进入 网络 → 接口 → 添加新接口 → WireGuard VPN → 生成新的密钥对
    • 接口名称:wg0
    • 协议:选择 WireGuard VPN
  2. 配置接口参数:
    • 生成新的密钥对,公钥需要填到3.3章节的配置文件中
    • 虚拟 IP 地址10.8.0.2/32(与腾讯云网段一致,且不冲突)。
    • 点击 “保存”。

4.4 添加腾讯云 Peer(服务端)

  1. wg0 接口页面,点击 “编辑 → 对端 → 添加”:
    • 公钥:填写腾讯云步骤 3.2 生成的公钥。
    • 允许的 IP10.8.0.1/32(仅允许访问腾讯云虚拟 IP,按需可加 0.0.0.0/0 实现 “通过腾讯云上网”)。
    • 端点主机:填写腾讯云公网 IP(示例:1.2.3.4)。
    • 端点端口51820(与腾讯云监听端口一致)。
    • 持续 Keepalive25(与腾讯云配置匹配)。
    • 点击 “保存” 并 “应用配置”。

4.5 配置端口转发与防火墙

  1. 端口转发(确保家用公网能访问 iStoreOS 的 WireGuard 端口):
    • 进入 网络 → 防火墙 → 端口转发 → 添加
      • 外部端口:51820(UDP)。
      • 内部 IP 地址:iStoreOS 内网 IP(示例:192.168.9.1)。
      • 内部端口:51820(UDP)。
      • 点击 “保存”。
  2. 防火墙规则(允许隧道与内网互通):
    • 进入 网络 → 防火墙 → 通用设置:勾选 “转发”(允许数据包转发)。
    • 进入 网络 → 防火墙 → 区域设置:将 wg0 接口加入 “lan” 区域(确保与内网设备互通)。

4.6 配置 DDNS(动态解析家用公网 IP)

不再赘述了,就是用一个域名,解析非固定的IP。

4.7 验证 iStoreOS 状态

  1. 进入 网络 → WireGuard → 状态
    • 查看 “最新握手时间”(需显示几分钟内,证明连接正常)。
    • 查看 “流量传输”(有数据表示隧道已在使用)。
  2. 终端验证(可选,需开启 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 配置

六、验证组网成功的标准

  1. 腾讯云 wg 命令显示 latest handshake: X seconds ago(连接正常)。
  2. 腾讯云可通过 ssh root@10.8.0.2 登录 iStoreOS。
  3. 腾讯云可访问家用内网设备的服务(如 telnet 192.168.9.52 [端口] 连接成功)。
收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则