没有公网如何远程访问?
1 序言
前面那么多篇博客我都是介绍,域名解析+端口转发。前提是你有公网啊,公网不是人人都有。这篇文章是用来拯救那些没有公网的朋友;然后有 IPv6 搭建的,但是公司没有 IPv6 用不了的;以及其他等等的情况。这篇大多数介绍的都是内网穿透,原理我都不细细说了,会用就行。
2 Tailscale
2.1 什么是 Tailscale
Tailscale 的官网是 https://tailscale.com,用谷歌邮箱登录。


2.2 怎么搭建 Tailscale
首先下载,windows 版本以及安卓(苹果)版本安装,并且用谷歌邮箱登录。那么你就可以在上面看到你的设备。在 setting 中打开 keys,生成两个 keys,但是我们需要的是上面这个 Auth_keys,保存备用。

在 docker 中创建 compose 项目,如代码注释所示替换个人信息。
# 官方文档# https://tailscale.com
# ---
name: tailscale# 最后编辑时间:2025-02-14services: tailscale: # 镜像地址 image: tailscale/tailscale # 容器名字 container_name: tailscale # 主机名,这里修改为设备的名字,在网页上就会显示对应的名字,和下面配置文件中功能一样 #hostname: nas # 特权模式,赋予容器几乎与主机相同的权限 privileged: true environment: # 需要到TS官网-Setting-keys内生成,可设置多台设备使用同一个key,切勿泄露 # 默认90天失效,需要到TS官网-Machine,点击设备右侧的三个点,点击Disable key expiry进行取消失效 # 如果使用密钥方式登录,则不需要去容器内的ssh终端内进行tailscale login命令登录 # 如果去容器内的ssh终端内使用tailscale login命令登录,则不需要配置该项 #去TS官网获取auth key - TS_AUTHKEY=替换我 # 192.168.x.0/24为本机所在的局域网网段,注意修改,允许本机作为流量出站点这个需要用到 - TS_ROUTES=192.168.x.0/24 #修改为主机所在的网段 # 允许本机作为流量出站点 - TS_EXTRA_ARGS=--advertise-exit-node #填写主机名,例如FnOS,和上面hostname功能一样,选一即可 - TS_HOSTNAME=FNOS # 配置文件目录,默认的 - TS_STATE_DIR=./state/ volumes: # 配置文件目录 - /docker/apps/tailscale/var/lib:/var/lib # 内核调用 - ./dev/net/tun:/dev/net/tun # 网络模式,host模式,无WebUI网页 network_mode: host # 重启策略,总是重启 restart: always找到 FNOS 设备,然后删除禁用,保持一直在线。

其次打开,编辑线路设置,将异地组网的内网 IP 打勾。

2.3 如何使用 Tailscale
手机打开 Tailscale APP,打开左上角按钮。这样就相当于成功组网了,你可以用注册给的 FNOS 的公网 IP 100.x.x.x + 你飞牛内网哪个服务的端口,就能打开,比如 100.x.x.x:8096 就能打开 emby。
Tailscale 最舒服的就是可以使用内网 IP+端口,不用他给的公网IP,因为我们不是设置过一个子网路由,如图所示。

3 星空组网
3.1 什么是星空组网
星空组网的官网是 https://starvpn.cn,注册一个账号。可能会弹出实名认证,其实不需要实名认证也能使用。为什么要使用星空组网呢?首先上面的 TS 是国外软件,星空组网是国内软件,所以在一些单位或者公司的朋友就可以使用,不会被单位公司防火墙阻拦。
3.2 怎么搭建星空组网
创建星空组网子账号,添加成员,比如添加飞牛 nas 的,添加 openwrt 的,添加电脑的,添加手机的。那么我们下载相对应的软件就可以用这个账号密码登录,比如我们创建飞牛的账号为xkzw:fnos


我们在 docker 中新建 compose 项目。
# 官方文档# https://www.starvpn.cn/
# ---
name: stars_client# 最后编辑时间:2025-02-14services: stars_client: # 镜像地址 image: registry.cn-beijing.aliyuncs.com/ld_beijing/stars.client:5.0.5 # 容器名字 container_name: stars_client # 主机名 hostname: stars_client # 特权模式,赋予容器几乎与主机相同的权限 privileged: true environment: # 指定您的星空组网成员账号 - STARS_USER=填写成员账号 # 指定您的星空组网成员密码 - STARS_PASS=填写成员密码 # 网络模式 network_mode: host # 重启策略,总是重启 restart: always3.3 如何使用星空组网
打开手机星空组网 APP,输入子成员手机账号密码登陆,我们就会获得一个内网 IP 为 192.168.188.1,可以去星空组网网页查看飞牛给的内网IP为 192.168.188.2。那么我们访问飞牛 OS 就是 192.168.188.2:5666,如图所示。

4 皎月连
4.1 什么是皎月连
皎月连得官网是 https://natpierce.cn,登录网站用手机注册,下载一个手机 APP。
4.2 怎么搭建皎月连
手机或者异地电脑端下载好软件,用注册的手机号登录。
我们在 docker 中新建 compose 项目。
# 官方文档# https://www.natpierce.cn/
# ---
name: natpierce# 最后编辑时间:2025-02-14services: natpierce: # 镜像地址 image: natpierce/natpierce:latest # 容器名字 container_name: natpierce # 主机名 hostname: natpierce # 特权模式,赋予容器几乎与主机相同的权限 privileged: true # 网络模式,host模式 # webui端口33272 network_mode: host # 重启策略,总是重启 restart: always4.3 如何使用皎月连
创建好 compose 项目 webUI 打开端口为 33272 的网页,输入密码然后打开组网,打开服务。最后在手机上登录账号,指定 FNOS 连接,就可以用内网 IP+端口访问了。


5 总结
内网穿透服务,对于没有公网用户还是挺友好的。我们可以把三个 compose 项目合成一个 yaml 文件。
services: tailscale: # 镜像地址 image: tailscale/tailscale # 容器名字 container_name: tailscale # 主机名,这里修改为设备的名字,在网页上就会显示对应的名字,和下面配置文件中功能一样 #hostname: nas # 特权模式,赋予容器几乎与主机相同的权限 privileged: true environment: # 需要到TS官网-Setting-keys内生成,可设置多台设备使用同一个key,切勿泄露 # 默认90天失效,需要到TS官网-Machine,点击设备右侧的三个点,点击Disable key expiry进行取消失效 # 如果使用密钥方式登录,则不需要去容器内的ssh终端内进行tailscale login命令登录 # 如果去容器内的ssh终端内使用tailscale login命令登录,则不需要配置该项 #去TS官网获取auth key - TS_AUTHKEY=替换我 # 192.168.x.0/24为本机所在的局域网网段,注意修改,允许本机作为流量出站点这个需要用到 - TS_ROUTES=192.168.x.0/24 #修改为主机所在的网段 # 允许本机作为流量出站点 - TS_EXTRA_ARGS=--advertise-exit-node #填写主机名,例如FnOS,和上面hostname功能一样,选一即可 - TS_HOSTNAME=FNOS # 配置文件目录,默认的 - TS_STATE_DIR=./state/ volumes: # 配置文件目录 - /docker/apps/tailscale/var/lib:/var/lib # 内核调用 - ./dev/net/tun:/dev/net/tun # 网络模式,host模式,无WebUI网页 network_mode: host # 重启策略,总是重启 restart: always
stars_client: # 镜像地址 image: registry.cn-beijing.aliyuncs.com/ld_beijing/stars.client:5.0.5 # 容器名字 container_name: stars_client # 主机名 hostname: stars_client # 特权模式,赋予容器几乎与主机相同的权限 privileged: true environment: # 指定您的星空组网成员账号 - STARS_USER=填写成员账号 # 指定您的星空组网成员密码 - STARS_PASS=填写成员密码 # 网络模式 network_mode: host # 重启策略,总是重启 restart: always
natpierce: # 镜像地址 image: natpierce/natpierce:latest # 容器名字 container_name: natpierce # 主机名 hostname: natpierce # 特权模式,赋予容器几乎与主机相同的权限 privileged: true # 网络模式,host模式 # webui端口33272 network_mode: host # 重启策略,总是重启 restart: always部分信息可能已经过时
















