求助万能的 V 友关于两台 OpenWRT 异地组网的问题

16 天前
 yellowstrong

首先,家庭环境无公网 IP,老家环境也无公网 IP,但是手中有一台具有公网 IP 的国内服务器

在国内服务器上搭建了一个 WireGuard(简称服务端),用于转发流量

目前实现服务端连接家庭客户端 WG,可可访问家中内网环境,其他设备(例如手机,电视,电脑)通过 WG 客户端连接服务器上的服务端,也可以访问家庭环境的内网 IP

现在想实现,老家的 openwrt 上搭建一个 WG 连接服务端,让 openwrt 下的子设备可以通过家庭环境的内网 IP 直接访问家庭内网,该如何做

感谢

702 次点击
所在节点    OpenWrt
8 条回复
Danswerme
16 天前
主要是配路由,两台路由器访问对方网段的路由指向对方的 WireGuard 地址
CapNemo
16 天前
Router1 <-> Server <-> Router2

在两个 Router 的“网络” -> “路由表”中,添加一个新的静态路由,将另一个 Router 的 IP 段指向 Server

Server 里配置两条静态路由,把两个 Router 的 IP 段分别指向对应 Router 的 WireGuard 地址即可
masterclock
16 天前
还不如 softether 搞定
JerryYuan
16 天前
建议还是研究下 IPv6 公网地址,直连的带宽和延迟不是转发能比拟的(可以多配置一条转发的路由备用)

回到题主的问题,所谓的 A 网络主机访问 B 网络主机实际包含两步,A 网络主机请求 B 网络主机,B 网络主机处理请求响应 A 网络主机(这一层很容易被忽视)

所以按题主配置,ping 包传输的整个链路应该是:

去程:
* A 网络主机→A 路由器 LAN(ICMP Request)
* A 路由器 LAN→A 路由器 WG0(ICMP Request)
* A 路由器 WAN→中转节点 WAN(wg 协议)
* 中转节点 WG0→中转节点 WG0(ICMP Request ,中转节点 wg0 也许能抓到,抓不到跳过也行)
* 中转节点 WAN→B 路由器 WAN(wg 协议)
* B 路由器 WG0→B 路由器 br-lan(ICMP Request)
* B 路由器 br-lan→B 网络主机(ICMP Request)

回程:
* B 网络主机→B 路由器 br-lan(ICMP Echo)
* B 路由器 br-lan→B 路由器 wg0(ICMP Echo)
* B 路由器 WAN→中转节点 WAN(WG 协议)
* 中转节点 wg0→中转节点 wg0(ICMP Echo)
* 中转节点 WAN→A 路由器 WAN(wg 协议)
* A 路由器 WG0→A 路由器 br-lan(ICMP Echo)
* A 路由器 br-lan→A 主机(ICMP Echo)

捋清楚完整的预期数据通路以后,就可以分段配置每一台设备,让数据包按预期流转。
这里引入一个调试技巧,即在整体不通时,在每一段两端的网络适配器抓包看看数据包走到哪一步就迷路了,找到迷路的那一步,对照发送的一侧适配器所在主机的路由表看看实际走到哪条路由上去了,一般修正这个路由表配置,数据包就能继续往前走了。所有链路都抓包确认成功以后,网络应该也就通了。
asvow
16 天前
luci-app-tailscale 了解一下,分别开启 [启用路由] + [公开网段] + [子网互通] 选项。一般官方节点够用,如果打洞失败无法直连还可以自建 derp
SenLief
16 天前
不要那么复杂了,直接用 tailscale 或者 easytier ,尽量的不给自己找别扭。
wuruxu
15 天前
这个简单的,只要把两台 openwrt 都连上您的国内服务器的 wireguard

然后在 /etc/config/network 中 添加类似的路由,就可以了
```
config route
option interface 'wg1'
option target '192.168.117.0/24'

config route6
option interface 'wg1'
option target 'fd08:0099:1117::/80'
```
cndns
15 天前
easytier

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1105826

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX