未来星球 未来星球
  • 首页
  • 新闻资讯
  • 技术教程
  • 软件工具
  • 知识百科
  • 生活实用
  • 个人随笔
  • 生命外星人
首页 › 技术教程 › 用 WireGuard 组建家庭内网:三台设备、一份可复现的配置
  • 0
  • 0

用 WireGuard 组建家庭内网:三台设备、一份可复现的配置

admin
21 小时前
7 views
用 WireGuard 组建家庭内网:三台设备、一份可复现的配置-未来星球

你在外面连不上家里的 NAS,多半不是网速问题

出差时想取一份存在家里硬盘上的文件,结果发现:没有公网 IP,端口映射做不了,运营商把入站连接全挡在外面。于是有人开始用网盘中转,有人开了各种“内网穿透”服务,把家里的入口交给了第三方。

其实这类需求有个更干净的解法:让设备之间自己组一个虚拟内网。本文用 WireGuard 做一遍完整流程,三台设备(一台云服务器、一台笔记本、一部手机),所有命令可复制,配置可复现。

1. 先明确拓扑,再动手

本文采用的拓扑是“一台有公网 IP 的服务器做中转节点”,其余设备都连它。这样家里不需要公网 IP,也不需要动路由器端口映射。

  • 云服务器:公网 IP,UDP 51820 放行,作为 WireGuard 服务端,虚拟地址 10.8.0.1
  • 笔记本:虚拟地址 10.8.0.2
  • 手机:虚拟地址 10.8.0.3
  • 家庭内网网段:192.168.1.0/24,通过笔记本所在的网络访问

如果你的目标只是“让手机访问家里的 NAS”,也可以把服务端直接放在家里的树莓派或 NAS 上,只要能解决公网可达性即可。拓扑变了,配置逻辑不变。

2. 工具清单与前置条件

项目 要求 说明
系统 Linux 内核 5.6 以上 内核已内置 WireGuard,无需装 DKMS 模块
软件 wireguard-tools 提供 wg、wg-quick 命令
端口 UDP 51820 云厂商安全组与系统防火墙都要放行
权限 root 或 sudo 需要改 sysctl 与防火墙规则

Debian / Ubuntu 上一条命令装完:

apt update && apt install -y wireguard-tools

3. 生成密钥对

WireGuard 用公钥认证,每台设备一对密钥,私钥绝不外传。在服务器上执行:

umask 077
wg genkey | tee server.key | wg pubkey > server.pub
cat server.key server.pub

客户端同理,把文件名换成 client1、client2 即可。私钥文件权限必须是 600,wg-quick 会拒绝加载权限过宽的私钥,报错信息不太直观,容易被误判成配置语法错误。

4. 服务端配置

写入 /etc/wireguard/wg0.conf:

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <server.key 的内容>
PostUp   = sysctl -w net.ipv4.ip_forward=1; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <client1.pub 的内容>
AllowedIPs = 10.8.0.2/32

三个要点:eth0 要换成你服务器真实的网卡名(用 ip route 查默认路由对应的接口);AllowedIPs 在服务端写 /32,表示这个公钥只允许使用这一个地址;PostUp 里的转发规则是让客户端能出公网,不做 NAT 就只能互通、不能上网。

5. 客户端配置

笔记本的配置文件长这样:

[Interface]
PrivateKey = <client1.key 的内容>
Address = 10.8.0.2/32
DNS = 10.8.0.1

[Peer]
PublicKey = <server.pub 的内容>
Endpoint = your-server-ip:51820
AllowedIPs = 10.8.0.0/24, 192.168.1.0/24
PersistentKeepalive = 25

AllowedIPs 决定了哪些流量走隧道,这是最容易配错的一项。上面这份配置只把虚拟网段和家庭网段导进隧道,其余流量照常走本地网络,属于“分流模式”。如果想全局代理,把它改成 0.0.0.0/0。

手机端更简单:装官方 App,扫码或导入配置文件即可,不需要命令行。

6. 启动与验证

systemctl enable --now wg-quick@wg0
wg show
ping -c 3 10.8.0.2

wg show 的输出里,latest handshake 有时间戳、transfer 有收发字节数,才说明隧道真的通了。如果 handshake 一直是空的,先查 UDP 端口是否被安全组挡住,再看 Endpoint 是否写错。

7. 五个真实踩过的坑

第一个:MTU。默认 1420 在部分移动网络下会“能 ping 通但网页打不开”,表现极像 DNS 故障。把客户端 MTU 改成 1280 通常能解决。

第二个:DNS。服务端没有跑 DNS,客户端却写了 DNS = 10.8.0.1,结果全部域名解析失败。要么去掉这行,要么真的部署一个解析服务。

第三个:内核转发没开。只在 PostUp 里临时开,重启后可能失效。建议写进 /etc/sysctl.d/99-wireguard.conf 持久化。

第四个:AllowedIPs 重叠。同一网段被两条 Peer 声明,后加载的会覆盖先加载的,症状是“某些设备时通时不通”。

第五个:忘了 reload。改完配置不执行 wg-quick down/up,规则不会生效,人却以为改错了方向,越改越乱。

写在最后

WireGuard 的配置量比 OpenVPN 小一个数量级,代价是它只负责加密和路由,不负责发地址、不负责推 DNS。地址要自己规划,密钥要自己管,出问题要靠 wg show 和 tcpdump 自己看。

这种“把复杂度交还给使用者”的设计,恰好适合家庭场景:设备数量固定,拓扑一年不变,一次配好能跑很久。如果你需要频繁增减成员、集中审计,那还是选带管理面板的方案更省事。


你的家庭内网是怎么连的?有没有被 MTU 坑过一次?

0

修鞋摊消失以后:一座城市怎样失去它的修补匠

上一篇

AI 新闻日报 – 2026年10月25日

下一篇

评论 (0)

登录后可发布~
立即登录
暂无评论

admin

当生活给你的全是不如意,那你一定要相信自己的兴趣!
97
文章
0
评论
-11
喜欢
2026 年 10 月
一 二 三 四 五 六 日
 1234
567891011
12131415161718
19202122232425
262728293031  
« 9 月    

近期评论

聚合文章

密码管理器怎么选:Bitwarden、KeePassXC、1Password 的取舍
飞机舷窗为什么是圆的:一个直角和两次空中解体
家庭药箱清理指南:该扔的、该留的、该补的
塔比星:一颗恒星的亮度反复下跌,和那些没能成立的解释
给一百年后的人留一封信:文明该如何保存自己
AI 新闻日报 – 2026年10月25日
用 WireGuard 组建家庭内网:三台设备、一份可复现的配置
修鞋摊消失以后:一座城市怎样失去它的修补匠

猜你喜欢

Python自动化办公实战:用30行代码搞定重复工作

Python自动化办公实战:用30行代码搞定重复工作

admin
57 0 0
用 restic 做自动备份:一份可复现的完整方案

用 restic 做自动备份:一份可复现的完整方案

admin
13 0 0
深入理解 JavaScript 异步编程:从回调到 async/await

深入理解 JavaScript 异步编程:从回调到 async/await

admin
86 0 0
Python 自动化办公:每天省2小时,从这些脚本开始

Python 自动化办公:每天省2小时,从这些脚本开始

admin
75 0 0

关于我们

你是否对浩瀚的宇宙充满好奇?你是否渴望掌握未来科技的力量?现在,机会来了!“未来星球”将带你进入奇妙世界,开启你的科技探险之旅! 这是一个充满想象和创造力的博客!

分类导航

首页 新闻资讯 技术教程 软件工具 知识百科 生活实用 个人随笔 生命外星人

友情链接

未来星球AI工具【网络版】 未来星球 pycharm官方站【中国】
Copyright © 2026 未来星球. Designed by nicetheme. 蒙ICP备2026002569号-1
  • 请到 [后台->外观->菜单] 中设置菜单
  • AI未来
  • 生活百科
  • 档案
  • 外星人
  • 未来星球

admin

当生活给你的全是不如意,那你一定要相信自己的兴趣!
97
文章
0
评论
-11
喜欢