文章最后更新时间2025年01月16日,若文章内容或图片失效,请留言反馈!
之前的文章,我分享过一些组网的架构和内网穿透方案,由于我家里有两条宽带,且一条宽带有动态公网,并且个人也有公网云服务器,使用起来非常方便。留言有很多呼声搞一期无公网的内网穿透教程,为了回应大家对无公网内网穿透教程的呼声,今天我们就来聊聊这个方案。本期我使用的产品是Tailscale,它是一款基于开源的点对点加密协议 WireGuard 的零配置 VPN 工具,旨在帮助用户快速建立私人网络(Mesh VPN)。通过它,您可以轻松实现分布式设备之间的安全连接,无需复杂的网络配置和公网 IP。tailscale不需要具备公网IP,可以快速的创建一个虚拟网络,将设备加入后,就能轻松实现内网穿透、异地组网。虽然tailscale是商业产品,不过也允许个人使用,免费版本限制3个账号和100台设备,已经足够个人使用了。tailscale的使用非常简单,安装、登录验证、路由发布如此三步即可完成组网,具体步骤可能视环境的差异有一些简单的设置,话不多说直接往下看实操吧。首先介绍openwrt,如果你使用istoreos,插件里直接可以安装tailscale插件,openwrt也可以先安装istore商店再进行安装,我这里使用手动安装。我在GitHub上面找到了以下项目,项目地址我会放到文末。这个项目默认会将tailscale运行到内存中,每次重启都会下载一次,为了长期稳定使用,我找到了issue中手动安装的方法简单来说就是下载release里面的两个二进制文件,如下将二进制文件和配置文件分别上传到相应路径,配置文件我是通过复制然后手动编辑的随后执行命令授予权限和启动即可,启动后你会看到一个url,形如:https://login.tailscale.com/a/xxxxxxxxx,复制在浏览器打开这个url第一次使用需要注册账号,国内网络可以使用微软账号,我这里直接使用谷歌账号关联注册登录了随后可以看到登录成功,并且告诉你ImmortalWrt(就是我的openwrt)这个设置已经注册进来注册并绑定成功后可以看到openwrt的命令行也返回了Success随后可以看到已经加入的openwrt设备,此页面也会提示各个类型的终端如何加入,其实就是下载app或者客户端,登录账号就行了在其他需要组网、穿透的终端上下载客户端,登录账号即可,如下图我将安卓手机也进行了添加安装包可以从下述网页进行下载,地址我同样会放到文末的附录里设备添加成功之后可以在tailscale的管理端将认证key超时时间关闭,这样就不会出现需要再次认证的情况,这个不是必须,为了安全性可以不关在DNS选项可以可以将MagicDNS关闭,否则tailscale服务运行时会将DNS修改为100.100.100.100在需要发布路由的设备上,使用tailscale up -advertise-routes=x.x.x.x/24,x.x.x.x/24进行发布即可,可以同时发布多个网段,如下图我在openwrt上发布了10.10.11.0/24这个网段随后到tailscale管理页面找到openwrt,点击Edit route settings...随后我又在使用的笔记本上安装了tailescale,安装过程和登录账号比较简单,就不展示了这样我就有个三个设备加入到了tailscale组网中,并且在openwrt里面发布了一个子网路由随后在windows上进行测试,使用tailscale status可以看到组网状态,使用tailscale ping 设备名可以进行测试,测试后可以看到当前v4已经打洞成功,active direct代表的是p2p打洞,没有走DERP中继在windows上使用tailescale netcheck,可以看到当前v4地址是打洞成功状态在openwrt上查看,可以看到v4和v6均处于打洞成功状态随后我在openwrt上面测试到安卓手机,一开始没有打洞成功,上图可以看到openwrt延迟最低的中继节点是Tokyo,所以此时走了tok的DERP,延迟200ms+几秒钟后再次查看状态的时候发现已经使用v6打洞成功了(tailscale默认先使用v6打洞,手机移动网络和op的网络都有v6,所以使用v6打洞),且使用ping命令进行测试可以看到到安卓手机延迟也有所降低,只不过延迟不是很稳定随后在windows上面直接ping openwrt地址和tailscale所分配的地址,都提示无法连接到端口这个问题是因为op防火墙导致的,只需要在openwrt上面添加一个tailscale的防火墙规则,设备选择tailscale,放通所有流量即可。理论上这部分防火墙规则tailscale会自动放通的,不过在我openwrt上并没有,所以手动操作一下:随后再次ping测试,两个地址均能正常通信,并且延迟很低,这就是p2p打洞的功劳。这里我再介绍一下,我的windows所用的网络是公司电信网络,openwrt是家里普通pppoe拨号的联通宽带,没有公网。由于我在openwrt上面发布了10.10.11.0/24网段的子网路由,这里我使用ping测试同网段的10.10.11.110,也是能够正常连通的,延迟和上述一致,基本在10ms以内使用openwrt做服务端,windows做客户端,基本可以跑满公司百兆的上行反过来使用windows做服务端,openwrt做客户端,可以跑满家里宽带的50兆上行当时测试忘记看移动网络的上行了,后面我测试了一下,基本上我这张卡也就跑个30兆的上行,所以tailscale的穿透也算打满了上行使用手机做iperf3服务端,openwrt作为客户端,测试基本在45-60兆之间波动openwrt资源占用大概30M+,在我测试的期间内没有达到100M资源和时间有限,简单安装和使用体验了一下,直观的感受就是tailscaler打洞穿透的速度还是比较不错的,不过稳定性受设备网络影响较大。我个人较少有远程观影之类高带宽、高稳定性的需求,基本能够满足我80%使用场景。市面上还有很多类似的软件,比如同样热门的zerotier,以及其他优秀的开源项目,目前我还都没试过,如果留言有推荐,后续也可以抽空测试体验一下然后分享出来。最后,请帮忙点点关注、留言、在看、转发,谢谢大家!https://github.com/CH3NGYZ/tailscale-openwrthttps://pkgs.tailscale.com/stable 推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
宙飒zhousa.om
还没有评论,来说两句吧...