Zerotier 如何才能暴露整个网段内的所有设备?

2020-02-08 00:58:10 +08:00
 tyhunter
在 N1 上安装了 zerotier,尝试了下 Mac 可以访问到 N1 后台,但同网段下还有 NAS,PC,Debian 等设备,逐一安装 zerotier 比较麻烦,请教下大佬们,有没有办法能够一次性通过 N1 上的 zerotier 暴露整个 192.168.123.0/24 网段,让这个网段内的所有设备都能在 Mac 上访问到
8381 次点击
所在节点    问与答
19 条回复
saluton
2020-02-08 01:10:50 +08:00
N1 开启 ipv4.forward
Zerotier 控制台添加路由表 192.168.123.0/24 via N1
N1 添加两条 iptables 命令转发(配置 VPN 那种,具体命令你查一下)
Mac 端可能也要添加一条路由表 192.168.123.0/24 via N1
saluton
2020-02-08 01:11:54 +08:00
#1 MAC 端应该不用添加,控制台配置过就行了
qinghon
2020-02-08 01:17:03 +08:00
用 bridge 也可以,在 n1 建个 bridge 把,eth0 加到 bridge 里去,连上 zerotier 后把也加到 bridge 里去,这其他设备可用 dhcp 直接获得 123.0/24 的 ip
Kaiyuan
2020-02-08 02:52:42 +08:00
如果你的 N1 是做路由,基本做一下转发就可以了,如果 N1 不是路由,则需要路由上添加路由表指向 N1,同时 zerotier 上也要设置路由表和允许 N1 转发。

我自己的操作: https://blog.boxks.com/archives/zerotier-0ffsite-networking/
tyhunter
2020-02-08 02:56:30 +08:00
@saluton 感谢大佬的回复,我试着操作了下,但还是没法找到其他设备
1、ZT 分配的 IP 端为 192.168.192.0/24,现实网段为 192.168.123.0/24
2、ZT 控制台路由表我是这么设置的:
192.168.123.0/24 via 192.168.192.66 (这个为 N1 的 ZT 地址)
3、iptables 我添加了下面两条:
iptables -A FORWARD -d 192.168.192.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE
4、直接访问 192.168.192.2 ( NAS 地址,对应 192.168.123.2 )并不行,用了下扫描工具扫了下 192.168.192.0/24 网段,也只知道 N1


@qinghon 这个好高级,一时竟然没有理解
tyhunter
2020-02-08 03:03:08 +08:00
@Kaiyuan 感谢提供这么详细的教程,我操作下试试
hiplon
2020-02-08 07:45:40 +08:00
建议做端口转发会比暴露整个内网好
yzwduck
2020-02-08 09:26:03 +08:00
@tyhunter #5 楼上 Kaiyuan 已经说了,我再说直白一些。
我猜你没有在路由器上配静态路由。
你做完这几步后,去程 Mac > N1 > NAS 的路由是通的,返程预期的路由是 NAS > 路由器 > N1 > Mac,但实际上 NAS > 路由器 > 默认 WAN 网关(丢包)。
你需要在路由器(而不仅仅是 N1 )上,配置一条 192.168.192.0/24 via 192.168.123.xxx (N1 地址) 的静态路由。
以及,推荐使用 ping、tcpdump 等工具,来能调试这种网络问题。
yzwduck
2020-02-08 09:29:53 +08:00
刚才说的有点歧义,最后第二句改为:
你不仅仅需要在 N1 上配置防火墙,允许讲 ZT 流量转发到 192.168.192.0/24 ;还需要在路由器上,配置一条 192.168.192.0/24 via 192.168.123.xx (N1 地址) 的静态路由,来修正返程路由。
yzwduck
2020-02-08 09:36:38 +08:00
哭,我的网络基础全部还给老师了…允许我再修正一下说法,如果我猜想的大前提错了的话,还请原谅我的频繁发帖。
你不仅需要在 N1 上配置防火墙,允许将 ZT 流量转发到 192.168.123.0/24 ;还需要在路由器上,配置一条 192.168.192.0/24 via 192.168.123.xx (N1 地址) 的静态路由,来修正返程路由。
hawhaw
2020-02-08 10:04:52 +08:00
楼上所说的主路由上的静态路由应该是不用做的
hawhaw
2020-02-08 10:05:57 +08:00
因为 zt 控制端配好了之后各个节点都会知道的
yzwduck
2020-02-08 10:31:20 +08:00
@hawhaw zt 是会帮忙加路由规则,但只有加入 /运行 zt 的设备才会自动配置;如果要在非路由器上用 zt 来路由两个网段,就需要手工在路由器上配静态路由了。
hawhaw
2020-02-08 10:52:38 +08:00
@yzwduck 你说的这两点是对的
saluton
2020-02-08 16:40:19 +08:00
@tyhunter #5
3、第二条后面可能要加一个 -o eth0,不大确定
iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0
4、你试试在 mac 上 ping 192.168.123.2 呢?

@yzwduck #10
我理解的是 iptables forward 之后会修改 src IP 地址,路由器那一条静态路由应该是不用配的
yzwduck
2020-02-08 17:14:11 +08:00
@saluton 原来如此,是在 ZT 节点上配置 DNAT。我 iptables 用得太少,没有看出来。
yzwduck
2020-02-08 17:17:05 +08:00
又说错了…是配置 SNAT。
whywhywhy
2020-02-09 14:31:30 +08:00
所以说这类组网应用,不支持服务器直接推送路由表下去是多么的不方便啊!
hawhaw
2020-02-10 07:14:26 +08:00
这种问题,其实自己画画图,包根据路由从哪儿到哪儿,源地址目标地址源 Mac 地址目标 Mac 地址是怎么变的,先自己弄清楚了,再去几个关键的地方听下包验证下,自然就知道问题在哪里了

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

https://www.v2ex.com/t/642895

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

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

© 2021 V2EX