首页 >>  正文

永久免费外网

来源:baiyundou.net   日期:2024-06-30

作者:NowAnti

本篇文章记录下,如何在外网访问群晖,并利用群晖来访问内网其他设备(以目前比较流行的虚拟局域网软件有ZeroTierTailscale为例)。

写在前面

异地访问NAS,常见的还是公网IP+DDNSFRP方案,需要暴露较多的端口在公网上,因此考虑使用虚拟局域网组网。
个人使用感受:
ZeroTier稳定易用,但异网打洞成功率较低,且由于中继服务器在外国,中继后对速度较慢,要求高的可以尝试自建Moon/根服务器或采用双ZeroTier网络(参考扩展链接)。
Tailscale打洞成功率更高,支持MagicDNS(https://tailscale.com/kb/1081/magicdns/),使用也很方便。
笔者由于目前使用环境是电信与联通组网,ZeroTier无法成功打洞,且暂不想折腾自建Moon,所以选用Tailscale。

准备工作

  • 由于  DSM  7  不允许第三方应用直接使用root权限运行,因此使用Docker安装。

  • 本文在容器上执行的所有操作都通过 Docker CLI 完成。

  • 本文均为在DSM7下操作,理论上可以兼容DSM6(未测试)。

    创建持久性 TUN

    使用SSH  连接到NAS

    ssh user@local-ip -p 22

以下设置步骤必须以 root 用户身份运行

sudo -i

写入脚本,使得设备启动时调用/dev/net/tun

echo -e ‘#!/bin/sh -e ninsmod /lib/modules/tun.ko’ > /usr/local/etc/rc.d/tun.sh

给这段脚本添加权限(其实应该先vi这个空的脚本,然后添加权限,最后在写入上面的脚本内容,不然会提示你readonly)

chmod a+x /usr/local/etc/rc.d/tun.sh

运行脚本一次以创建 TUN

/usr/local/etc/rc.d/tun.sh

检查TUN的运行状态

ls /dev/net/tun
/dev/net/tun

在 NAS 上安装 Docker

打开套件中心->搜索Docker->安装

ZeroTier的安装和配置

设置容器

创建目录以存储ZeroTier的身份和配置

mkdir /volume1/docker/zerotier-one

创建ZeroTier容器,命名为zt(Repo: zerotier/zerotier-synology)

docker run -d          
 —name zt            
 —restart=always      
 —device=/dev/net/tun
 —net=host            
 —cap-add=NET_ADMIN  
 —cap-add=SYS_ADMIN  
 -v /volume1/docker/zerotier-one:/var/lib/zerotier-one zerotier/zerotier-synology:latest

授权入网

  1. 查看节点ID和状态(c715e6680c 为节点ID)

    docker exec -it zt zerotier-cli status
    200 info c715e6680c 1.6.5 ONLINE

  2. 加入您的网络 (替换成自己的网络ID)

    docker exec -it zt zerotier-cli join e5cd7a9e1cae134f

  3. 在管理后台(https://my.zerotier.com/),对 NAS 进行授权和分配ID。

    ZeroTier管理后台的其他设置和详细用法可以参考官方文档或者网上其他教程

常用命令

查看节点状态

docker exec -it zt zerotier-cli status

查看网络状态

docker exec -it zt zerotier-cli listnetworks

显示正在运行的容器(可选)

docker ps

输入容器(可选)

docker exec -it zt bash

Tailscale的安装和配置

设置容器

创建目录以存储Tailscale的身份和配置

mkdir /volume1/docker/tailscale

创建Tailscale容器,命名为ts(Repo: tailscale/tailscale)

docker run -d          
 —name ts            
 —restart=always      
 —device=/dev/net/tun
 —net=host            
 —cap-add=NET_ADMIN  
 —cap-add=SYS_ADMIN  
 -v /volume1/docker/tailscale:/var/lib/tailscale tailscale/tailscale:stable

授权入网

  1. 执行以下代码,获取授权链接

    docker exec ts tailscale up

  2. 复制并在浏览器打开授权链接,然后登录(鉴于国内环境,建议选择Microsoft)并授权

  3. 可以进入管理后台查看节点状态(https://login.tailscale.com/admin/machines)

    可选操作

  • 禁用授权自动过期(Tailscale的授权默认6个月过期)

操作路径:后台->Machines->点击节点右侧『•••』->Disable key expiry

  • 启用MagicDNS(可使用用机器名作为域名访问设备

操作路径:后台->DNS->Add nameserver然后Enable MagicDNS

在外网访问群晖所在内网的其他设备

设置群晖的内网转发

  1. 使用SSH连接到NAS并切换到ROOT身份

  2. 启用IP转发(永久修改)

    echo ‘net.ipv4.ip_forward = 1’ | tee -a /etc/sysctl.conf
    echo ‘net.ipv6.conf.all.forwarding = 1’ | tee -a /etc/sysctl.conf
    sysctl -p /etc/sysctl.conf

第三行可能会执行失败,可以重启系统或者执行以下代码临时开启IP转发:

echo 1 > /proc/sys/net/ipv4/ip_forward

  1. 设置NAT转发

  • 方式一(推荐

    iptables -t nat -A POSTROUTING -o ! lo -j MASQUERADE

  • 方式二

eth0为网卡名,如果是多网口的机器,请使用ifconfig查找自己机器的网卡名

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

  1. 添加用户自定义脚本,使得启动时自动设置NAT转发

操作路径:
控制面板->服务->任务计划->新增->触发的任务->用户自定义的脚本
常规->一般设置->事件->开机
任务设置->用户自定义的脚本,输入以下代码并确定
为保证开机启动已加载所有网络模块,延迟1分钟再添加NAT,否则会遇到模块不存在错误

sleep 1m
iptables -t nat -A POSTROUTING -o ! lo -j MASQUERADE

设置ZeroTier

  1. 登录管理后台(https://my.zerotier.com/),进入NetWorks管理页面

  2. NetWorks->Advanced->Managed Routes添加子网路由规则即可

    10.10.2.0/24        via        10.10.10.10

根据自己实际设置,第一个为群晖所在内网的IP段、第二个为ZeroTier分配给群晖的IP

设置Tailscale

  1. 设置子网路由(10.10.2.0/24为当前节点的内网段,自行替换)

    docker exec ts tailscale up —advertise-routes=10.10.2.0/24 —accept-routes

  2. 登录管理后台(https://login.tailscale.com/admin/machines)并启用该节点的子网:

操作路径:后台->Machines->点击节点右侧『•••』->Edit route settings->打开对应子网前面的开关

验证

在外网设备上配置好对应的虚拟局域网客户端,然后就可以直接Ping群晖以及内网IP了

后记

本文外网访问内网设备的重点在于设置TUN设置内网转发部分,虽然是以群晖为例,但各位也可以根据下方的官方文档稍加变通,应用于其他设备。
TailscaleZeroTier还有其他强大的功能,大家可以自行探索。目前免费版额度均可满足个人使用,有额外需求的可以考虑它们的付费套餐。

参考链接

  1. Tailscale官方安装文档 https://tailscale.com/kb/installation/

  2. 群晖DSM7安装Docker版Zerotier教程(官方) Install ZeroTier For Synology NAS

  3. 群晖DSM7安装Docker版Zerotier教程(译文) https://zhuanlan.zhihu.com/p/479171790

  4. 外网使用内网IP访问全内网设备 https://post.smzdm.com/p/adwgkopd/

扩展阅读

  1. 详解+原理:基于Zerotier的虚拟局域网(内网穿透方案)  https://zhuanlan.zhihu.com/p/383471270

  2. 中继+优化:基于Zerotier的虚拟局域网(VPS中继优化) https://zhuanlan.zhihu.com/p/431770438

  3. ZeroTier 配置Moon节点 https://post.smzdm.com/p/allv5k6o/

  4. 放弃moon节点,直接搭建Zerotier根服务器 https://post.smzdm.com/p/apxkx2m7/

","force_purephv":"0","gnid":"9a2c33187855386bb","img_data":[{"flag":2,"img":[{"desc":"","height":"254","title":"","url":"https://p0.ssl.img.360kuai.com/t011c78c8cd684e4e62.jpg","width":"600"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1656662120000,"pure":"","rawurl":"http://zm.news.so.com/a9abda9b81847573cb8e7942dfafa6f2","redirect":0,"rptid":"be16378b2acb9a7d","s":"t","src":"什么值得买","tag":[],"title":"群晖接入虚拟局域网:实现外网访问群晖和内网设备

奚放伟4871无线和有线路由器的区别 -
习薇岩18888122673 ______ 1、有线路由器 有线路由器是一种专门用于宽带网络连接的简化路由器,它只支持TCP/IP网络协议,在多种宽带线路接入设备(如:ADSL MODEM)接入或直接接入LAN后面承担本地局域网终端访问外网的NAT(网络地址翻译)功能,可允许多个用户或局域网共享一条宽带线路上网. 2、无线路由器 无线路由器是家用型宽带路由器和无线AP这两种设备的集合体,它既有家用型宽带路由器的NAT功能,1个WAN口和4个LAN口,又有无线AP的无线局域网接入功能. 因此无线路由器具有共享上网和同时组建有线网和无线网的能力,组网更灵活,可用性更高.

奚放伟4871如何使电脑内外网同时上 -
习薇岩18888122673 ______ 首先需要有两块网卡,分别接到两个路由上.下面是双网卡的网络IP地址配置示例: 外网地址设置 本地IP地址:192.168.1.1 子网掩码: 255.255.255.0, 网关: 192.168.1.1 内网地址设置: 本地IP地址: 192.168.42.129 子网掩码:255.255....

奚放伟4871双网卡,一个内网一个外网,怎么route一下,零时一下,不用永久,外网自动获取的192.168.1 -
习薇岩18888122673 ______ 内网:route add 内网网段 mask 内网掩码 内网网关外网:route add 0.0.0.0 mask 0.0.0.0 外网网关

奚放伟4871安上无限网卡就可以永久的免费上网吗?
习薇岩18888122673 ______ 看电视上说的吧 骗人的 这样的话一个电脑才几千 一年枉费要600.700啦 网通电信才不敢拿 无线网卡就和手机一样 就是无线的 网费还是那样 该多少多少的

奚放伟4871XP+iis5.1+花生壳 建站,外网访问不到我的网站
习薇岩18888122673 ______ 花生壳 还能用吗 不是停止服务了吗? 我刚去官方网站了 MS还可以用. 看一下你的路由器 映射 没有路由…… ADSL给的IP每天是不固定的

奚放伟4871远程控制服务器方法 -
习薇岩18888122673 ______ 连入内网的路由上面开端口映射,然后用办公室的pc的远程桌面连接连到那个路由的你自己设定的映射端口,这个端口会重新定位到其下内网的ip上面,自己上网搜搜你的机房路由器型号+端口映射,一定能...

奚放伟4871局域网远程控制软件 求一款免费不用通过外网的局域网远程控制软件. -
习薇岩18888122673 ______ 如果是域结构你可以考虑使用远程控制,但不利于双方沟通,建议使用PCANY WHERE 或DameWare 我现在是使用DameWare,这款软件在你远程连到用户桌面时,用户自己也可以看到桌面,双方能同时操作,利于双方对问题的交流和沟通.

奚放伟4871用路由上网后怎样架设外网web服务器 -
习薇岩18888122673 ______ 第一步:将域名A记录设置成你的固定IP 第二步:在路由器中设置NAT转换,将80(或其它)端口映射到内网WEB服务器的IP地址的WEB服务端口80(或其它) 第三步:在内网WEB服务器的IIS上发布WEB,指定IP为你做过映射的IP,完毕 这可从外网通过你的域名访问到你内网的WEB服务器,另外有些路由器可能会有你无法通过域名或外网IP访问内网的WEB服务,这就需要你通过内网IP来访问WEB服务,或在内网建立DNS服务器.

奚放伟4871怎样办自己的网站?
习薇岩18888122673 ______ 现在有很多免费空间,去申请一个,把你做好的网页上传,架设连接,一个网站只要一个域名,但可以有多个二极域名转向 自己在自己的机器上也可以架设网站,如果是固定IP就方便的多,用ISS就可以架起来,也可以用其它软件把自己做好的网页架起来,没有域名可以用外网IP进行登陆的 申请一个域名 一个网站空间 制做网站程序我公司有服务 叮当互联-www.dingdang.net

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024