找回密码
 加入我们
搜索
      
查看: 6062|回复: 28

[网络] 咨询一个异地组网,内网穿透相关问题

[复制链接]
发表于 2024-1-24 15:11 | 显示全部楼层 |阅读模式
本帖最后由 ghj 于 2024-1-24 22:54 编辑

家里情况是光猫拨号,光猫做主路由没改桥接,光猫下lan口连接了刷有openwrt机器的lan口(是硬路由刷机改的设置的AP交换机模式,关了openwrt的路由功能)
然后其他设备有的设备连接的是光猫的lan口,有的设备连接的是openwrt的lan口,这种网络结构下所以内网所有设备都能获取到192.168.1.x的ipv4地址与公网ipv6地址

openwrt机器上装了tailscale,其他设备下都没装tailscale

这种情况下能否实现外网装有tailscale的设备连接家里的所有设备呢(包括光猫的管理界面)?

(刚刚试了半天,捣鼓了半天只实现了外网tailscale访问openwrt的管理界面,其他的都没实现,不知道是我设置错了还是不能实现呢? openwrt的tailscale 里面subnet和exit-node已经开了,有几个报错不知道影不影响 报错如下)

太蛋疼了,查了一天教程试了不少命令,还是不能实现外网设备访问内网所有设备。。有个教程上说需要在外网设备的tailscale客户端开启一下use tailscale subnet功能(教程演示的是windows客户端,可是我打算用安卓手机作为外网设备,安卓客户端并没有这个开关(最后实测不需要这个开关也能访问))

ssh执行了如下指令 按照教程 又过了几分钟 发现可以连内网其他设备了tailscale up --accept-dns=false --advertise-routes=192.168.1.0/24 --reset  openwrt图形界面 网络-防火墙-常规设置,第一个lan到wan和tailscale的规则 最后一个ip动态伪装勾要打上(图二),就可以了

1.JPG
2.PNG
发表于 2024-1-24 15:16 | 显示全部楼层
本帖最后由 smallfount 于 2024-1-24 15:19 编辑

我的tailscale是装在PVE的LXC上的。。配置完以后可以直接访问所有内网资源...
你先确认下你tailscale在openwrt上的路由广播放行没

不光需要在client端adv,在tailscale的管理网页上需要放行下
 楼主| 发表于 2024-1-24 15:25 | 显示全部楼层
本帖最后由 ghj 于 2024-1-24 15:26 编辑
smallfount 发表于 2024-1-24 15:16
我的tailscale是装在PVE的LXC上的。。配置完以后可以直接访问所有内网资源...
你先确认下你tailscale在open ...


https://openwrt.org/docs/guide-user/services/**/tailscale/start
我是按照这个教程装的,也不是完全按照顺序,因为按照里面的顺序开头某些程序会报错,总之这里面的所有命令我都执行过看上去没有错误

这个教程是不是不包含你所说的广播放行呢

上面网址一部分被和谐了,需要换成v*p*n(去掉星号)
发表于 2024-1-24 15:25 | 显示全部楼层
添加接口了吗?
在OpenWrt上新建一个接口,协议选静态地址,设备选tailscale0,地址为Taliscale管理页面上分配的地址,掩码255.0.0.0。防火墙区域选lan区域。
添加防火墙规则
iptables -I FORWARD -i tailscale0 -j ACCEPT
iptables -I FORWARD -o tailscale0 -j ACCEPT
iptables -t nat -I POSTROUTING -o tailscale0 -j MASQUERADE
发表于 2024-1-24 15:26 | 显示全部楼层
我装的zerotier,可以访问所有设备的。
 楼主| 发表于 2024-1-24 15:33 | 显示全部楼层
pokwong 发表于 2024-1-24 15:25
添加接口了吗?
在OpenWrt上新建一个接口,协议选静态地址,设备选tailscale0,地址为Taliscale管理页面上 ...

https://openwrt.org/docs/guide-user/services/**/tailscale/start
我是按照这个教程装的,也不是完全按照顺序,因为按照里面的顺序开头某些程序会报错,总之这里面的所有命令我都执行过看上去没有错误

这个教程是不是不包含你所说的新建地址?
上面网址一部分被和谐了,需要换成v*p*n(去掉星号)
发表于 2024-1-24 16:13 | 显示全部楼层
ghj 发表于 2024-1-24 15:33
https://openwrt.org/docs/guide-user/services/**/tailscale/start
我是按照这个教程装的,也不是完全按 ...

就是在web界面手动设置的部分:

How to setup a Subnet Router/Exit Node
In order to get tailscale to cooperate well with LuCI, you will need to create a new managed interface and firewall zone for tailscale.

1. Create a new unmanaged interface via LuCI: Network → Interfaces → Add new interface

Name: tailscale
Protocol: Unmanaged
Device: tailscale0
2. Create a new firewall zone via LuCI: Network → Firewall → Zones → Add

Name: tailscale
Input: ACCEPT (default)
Output: ACCEPT (default)
Forward: ACCEPT
Masquerading: on
MSS Clamping: on
Covered networks: tailscale
Allow forward to destination zones: Ensure that your WAN zone is selected. (Add LAN here as well if you intend to allow hosts in your tailscale network to connect to hosts on your LAN)
Allow forward from source zones: Select your LAN and/or other internal zones (Leave this blank if you do not want to route LAN traffic to hosts on your tailscale network, e.g a WAN-only exit node)
3. Click Save & Apply
发表于 2024-1-24 16:33 | 显示全部楼层
能,假如你的OpenWrt设备作为旁路由所在局域网网段是192.168.2.x,那你就在OpenWrt的后台输入这个命令行

tailscale up --accept-routes=true --accept-dns=false --advertise-routes=192.168.2.0/24

然后在TailScale的管理页面Edit route settings下勾选相关网段192.168.2.0/24和exit-node就行了。
 楼主| 发表于 2024-1-24 16:37 | 显示全部楼层
pokwong 发表于 2024-1-24 16:13
就是在web界面手动设置的部分:

How to setup a Subnet Router/Exit Node

教程里有添加接口和添加防火墙规则,你发的也有添加教程和防火墙规则,但是我还不熟悉你发的防火墙规则的代码。请问一下你发的防火墙规则代码是不是和教程中添加防火墙规则本质是一样的?
还有就是教程中添加接口的时候协议是不配置协议,你发的是静态地址,是不是只需要在原接口设置界面把不配置改成静态地址就行?(如果是这样的话,还需要填写ipv4的网关,怎么写呢?)
 楼主| 发表于 2024-1-24 16:45 | 显示全部楼层
pokwong 发表于 2024-1-24 16:13
就是在web界面手动设置的部分:

How to setup a Subnet Router/Exit Node

另外我看其他视频教程的时候说要实现内网所有设备访问 要把教程中的命令 中ip 10.0.0.0那些改成自己网段的地址 我家内网光猫分配的是192.168.1.xxx  所以我实际执行的是下面的而不是发的网址教程中的10.0.0.0(tailscale up --accept-routes --advertise-exit-node --advertise-routes=192.168.1.0/24 --netfilter-mode=off)
 楼主| 发表于 2024-1-24 16:50 | 显示全部楼层
radeon911 发表于 2024-1-24 16:33
能,假如你的OpenWrt设备作为旁路由所在局域网网段是192.168.2.x,那你就在OpenWrt的后台输入这个命令行

t ...

这个我在发帖之前已经做过了,发现这样做之后只能访问openwrt,但是上级光猫和家庭局域网内电脑都不能访问
我是按照这个教程并改了其中的10.0.x.0变成自己家的网段192.168.1.0 已经操作完成了。
https://openwrt.org/docs/guide-user/services/**/tailscale/start
(上面网址一部分被和谐了,需要换成v*p*n(去掉星号))
请问你看看教程中有什么问题吗?
 楼主| 发表于 2024-1-24 17:00 | 显示全部楼层
pokwong 发表于 2024-1-24 15:25
添加接口了吗?
在OpenWrt上新建一个接口,协议选静态地址,设备选tailscale0,地址为Taliscale管理页面上 ...

照你说了新建一个tailscale的静态地址接口,ipv4 网关目前不知道就空着,其他没动,防火墙规则按照网页教程的,设置完成了试了一下还是不能实现访问内网其他设备
发表于 2024-1-24 17:21 | 显示全部楼层
ghj 发表于 2024-1-24 17:00
照你说了新建一个tailscale的静态地址接口,ipv4 网关目前不知道就空着,其他没动,防火墙规则按照网页教 ...

一些疑问。如果你关了路由模式,用交换机模式。那OpenWrt有自己的IP吗?因为tailscale需要常驻在内网的一个节点以中转流量。如果OpenWrt不占用内网IP,不算内网的一个节点。我感觉无法中转吧。

tailscale up --accept-routes --advertise-exit-node --advertise-routes=192.168.1.0/24 --netfilter-mode=off

这条命令。
如果你没有其他节点启用了subnet,应该不需要加--accept-routes。
--advertise-exit-node和--advertise-routes不要同时用。你只是共享内网。--advertise-routes就够了。
除非你自己知道怎么配置防火墙和转发规则一类的。否则去掉--netfilter-mode=off。保持默认开启。

另外,subnet是需要到官网的管理界面上手动确认以放行的。
 楼主| 发表于 2024-1-24 17:33 | 显示全部楼层
weiweiwitch 发表于 2024-1-24 17:21
一些疑问。如果你关了路由模式,用交换机模式。那OpenWrt有自己的IP吗?因为tailscale需要常驻在内网的一 ...

openwrt之前设置过ap交换机模式,能从光猫主路由获取ip,openwrt也能正常上网下载软件包之类的。方法是把默认的wan和wan6口都改成不配置协议,把默认就有的lan口协议改成不配置协议,然后新建了两个以@lan为设备的口,协议设置分别为dhcp客户端v4与v6。这样设置完成之后openwrt就能通互联网并且能通过局域网其他设备访问管理页面了。(目前我还不懂设备@lan和br lan有啥区别,如果有人知道可以交流讲下)
发表于 2024-1-24 17:41 | 显示全部楼层
ghj 发表于 2024-1-24 17:33
openwrt之前设置过ap交换机模式,能从光猫主路由获取ip,openwrt也能正常上网下载软件包之类的。方法是把 ...

看教程,里面明确说了需要添加--netfilter-mode=off。那就按照教程来吧。tailscale默认的配置可能对OpenWrt来说不够。

然后你现在的具体现象是什么?
官网的管理界面的设备页面里面能看到OpenWrt设备有subnets的标签吗?
外网的节点能通过OpenWrt获得的tailscale的IP打开管理界面吗?
外网的节点能直接用你OpenWrt的内网IP打开管理界面吗?


 楼主| 发表于 2024-1-24 18:00 | 显示全部楼层
本帖最后由 ghj 于 2024-1-24 20:36 编辑
weiweiwitch 发表于 2024-1-24 17:41
看教程,里面明确说了需要添加--netfilter-mode=off。那就按照教程来吧。tailscale默认的配置可能对OpenW ...


发帖之前  官网管理页面subnet 和exit node都有,开关也都开了
外网有tailscale的设备可以通过100.x.x.x (tailscale客户端上给的ip)访问openwrt的管理页面
外网有tailscale的设备访问192.168.1.x(openwrt设备的ip),可以访问openwrt的管理界面
(还没来得及按照你13楼的回复执行命令)
 楼主| 发表于 2024-1-24 19:40 | 显示全部楼层
weiweiwitch 发表于 2024-1-24 17:21
一些疑问。如果你关了路由模式,用交换机模式。那OpenWrt有自己的IP吗?因为tailscale需要常驻在内网的一 ...

按你说的只写--advertise-routes的话,加上教程的--netfilter-mode=off,我发了如下命令还有报错

root@OpenWrt:~# tailscale up --advertise-routes=192.168.1.0/24 --netfilter-mode=off
Warning: netfilter=off; configure iptables yourself.
Error: changing settings via 'tailscale up' requires mentioning all
non-default flags. To proceed, either re-run your command with --reset or
use the command below to explicitly mention the current value of
all non-default settings:

        tailscale up --advertise-routes=192.168.1.0/24 --netfilter-mode=off --accept-routes --advertise-exit-node
 楼主| 发表于 2024-1-24 19:47 | 显示全部楼层
本帖最后由 ghj 于 2024-1-24 19:48 编辑
weiweiwitch 发表于 2024-1-24 17:21
一些疑问。如果你关了路由模式,用交换机模式。那OpenWrt有自己的IP吗?因为tailscale需要常驻在内网的一 ...


然后我根据报错提示又执行了如下命令
root@OpenWrt:~# tailscale up --reset
Patch "http://local-tailscaled.sock/localapi/v0/prefs": EOF
root@OpenWrt:~# tailscale up --advertise-routes=192.168.1.0/24 --netfilter-mode=off
Warning: netfilter=off; configure iptables yourself.

然后官网上的exit node开关变灰了,猜测应该是关了exit node功能,
试了下外网还是不能访问家里局域网内的其他设备,只能通过官网和tailscale客户端上给的100.x.x.x 或者192.168.1.x来访问openwrt设备本身
发表于 2024-1-24 19:59 | 显示全部楼层
ghj 发表于 2024-1-24 19:47
然后我根据报错提示又执行了如下命令
root@OpenWrt:~# tailscale up --reset
Patch "http://local-tailsc ...

Warning: netfilter=off; configure iptables yourself.
这个警告是说,你需要自己配置防火墙相关的转发规则了。
也就是tailscale帮不了你。这个要你自己想办法了。

另外,就是你是否已经在官网的管理界面里面,你的openwrt这个节点的Edit route settings里面,把路由开关打开?

最后,如果还是不行,那你就不要添加--netfilter-mode=off试试。尝试不按照教程来。让tailscale试着帮你搞定防火墙规则。
 楼主| 发表于 2024-1-24 20:09 | 显示全部楼层
weiweiwitch 发表于 2024-1-24 19:59
Warning: netfilter=off; configure iptables yourself.
这个警告是说,你需要自己配置防火墙相关的转发 ...

防火墙设置我是照抄的3楼我发的官方教程链接里的步骤How to setup a Subnet Router/Exit Node,唯一区别就是里面提到WAN口设置我没管,因为我是交换机模式wan口根本没插网线(2. Create a new firewall zone via LuCI: Network → Firewall → Zones → Add
里面有提到wan口)。
 楼主| 发表于 2024-1-24 20:16 | 显示全部楼层
weiweiwitch 发表于 2024-1-24 19:59
Warning: netfilter=off; configure iptables yourself.
这个警告是说,你需要自己配置防火墙相关的转发 ...

官网的Subnet routes开关早就已经开过了

照你说的不加netfilter
root@OpenWrt:~# tailscale up --reset
Patch "http://local-tailscaled.sock/localapi/v0/prefs": EOF
root@OpenWrt:~# tailscale up --advertise-routes=192.168.1.0/24
没有warning了但还是不能访问内网其他设备

 楼主| 发表于 2024-1-24 21:49 | 显示全部楼层
radeon911 发表于 2024-1-24 16:33
能,假如你的OpenWrt设备作为旁路由所在局域网网段是192.168.2.x,那你就在OpenWrt的后台输入这个命令行

t ...


你的外网设备是什么,外网的tailscale客户端是不是要开启use tailscale subnet开关才能访问192.168.1.x的家庭局域网设备(家庭局域网已经有一个设备开了subnet router)
发表于 2024-1-24 23:16 | 显示全部楼层
ghj 发表于 2024-1-24 21:49
你的外网设备是什么,外网的tailscale客户端是不是要开启use tailscale subnet开关才能访问192.168.1.x的 ...

你可以试试打开那个开关。我这边是windows,默认是打开的。

官网文档中,除了Linux,其他系统是默认打开的。
发表于 2024-1-24 23:29 | 显示全部楼层
ghj 发表于 2024-1-24 21:49
你的外网设备是什么,外网的tailscale客户端是不是要开启use tailscale subnet开关才能访问192.168.1.x的 ...

1.jpg

我外网设备是iPhone,笔记本电脑,或者办公室的OpenWRT。

只需要在TailScale管理网页打开两个OpenWrt的 subnet routes功能,就能互访这两个局域网内所有设备了。只不过我的TailScale是备用方案,日常不开起局域网互访。
 楼主| 发表于 2024-1-25 07:31 | 显示全部楼层
radeon911 发表于 2024-1-24 23:29
我外网设备是iPhone,笔记本电脑,或者办公室的OpenWRT。

只需要在TailScale管理网页打开两个OpenWrt ...

我已经解决了,是主贴openwrt有个防火墙转发开关没开。你是什么作为主要方案呢,比tailscale好?
 楼主| 发表于 2024-1-25 07:32 | 显示全部楼层
weiweiwitch 发表于 2024-1-24 23:16
你可以试试打开那个开关。我这边是windows,默认是打开的。

官网文档中,除了Linux,其他系统是默认打开 ...

我外网是安卓。没有这个开关,但是我已经解决问题了
发表于 2024-1-25 07:37 来自手机 | 显示全部楼层
ghj 发表于 2024-1-25 07:32
我外网是安卓。没有这个开关,但是我已经解决问题了

怎么解决的,什么原因?
发表于 2024-1-25 09:56 | 显示全部楼层
ghj 发表于 2024-1-25 07:31
我已经解决了,是主贴openwrt有个防火墙转发开关没开。你是什么作为主要方案呢,比tailscale好? ...

我用直接用WireGuard连接两个局域网。Tailscale也是基于这种协议,但是在没有互访的情况下会断开连接,不利于工作时随时随地访问。TS只安装在路由系统里,端到端登录路由器后台,只在WG偶尔断开,或者DDNS解析不正常的情况下使用TS异地登录路由器后台。
 楼主| 发表于 2024-1-25 10:28 | 显示全部楼层
weiweiwitch 发表于 2024-1-25 07:37
怎么解决的,什么原因?

一楼主贴更新了
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-27 00:22 , Processed in 0.025597 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表