Mobile wallpaper 1Mobile wallpaper 2Mobile wallpaper 3Mobile wallpaper 4Mobile wallpaper 5Mobile wallpaper 6Mobile wallpaper 7Mobile wallpaper 8
2064 字
10 分钟
没有公网如何远程访问

没有公网如何远程访问?#

1 序言#

前面那么多篇博客我都是介绍,域名解析+端口转发。前提是你有公网啊,公网不是人人都有。这篇文章是用来拯救那些没有公网的朋友;然后有 IPv6 搭建的,但是公司没有 IPv6 用不了的;以及其他等等的情况。这篇大多数介绍的都是内网穿透,原理我都不细细说了,会用就行。


2 Tailscale#

2.1 什么是 Tailscale#

Tailscale 的官网是 https://tailscale.com,用谷歌邮箱登录。

https://img.nw177.cn/blog/20.routers/2006-MAC地址重复问题修正-01-地址修正-01.webp

https://img.nw177.cn/blog/20.routers/2005-没有公网如何远程访问-01-ts-01.webp

2.2 怎么搭建 Tailscale#

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

https://img.nw177.cn/blog/20.routers/2005-没有公网如何远程访问-01-ts-02.webp

在 docker 中创建 compose 项目,如代码注释所示替换个人信息。

# 官方文档
# https://tailscale.com
# ---
name: tailscale
# 最后编辑时间:2025-02-14
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

找到 FNOS 设备,然后删除禁用,保持一直在线。

https://img.nw177.cn/blog/20.routers/2005-没有公网如何远程访问-01-ts-03.webp

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

https://img.nw177.cn/blog/20.routers/2005-没有公网如何远程访问-01-ts-04.webp

2.3 如何使用 Tailscale#

手机打开 Tailscale APP,打开左上角按钮。这样就相当于成功组网了,你可以用注册给的 FNOS 的公网 IP 100.x.x.x + 你飞牛内网哪个服务的端口,就能打开,比如 100.x.x.x:8096 就能打开 emby。

Tailscale 最舒服的就是可以使用内网 IP+端口,不用他给的公网IP,因为我们不是设置过一个子网路由,如图所示。

https://img.nw177.cn/blog/20.routers/2005-没有公网如何远程访问-01-ts-05.webp


3 星空组网#

3.1 什么是星空组网#

星空组网的官网是 https://starvpn.cn,注册一个账号。可能会弹出实名认证,其实不需要实名认证也能使用。为什么要使用星空组网呢?首先上面的 TS 是国外软件,星空组网是国内软件,所以在一些单位或者公司的朋友就可以使用,不会被单位公司防火墙阻拦。

3.2 怎么搭建星空组网#

创建星空组网子账号,添加成员,比如添加飞牛 nas 的,添加 openwrt 的,添加电脑的,添加手机的。那么我们下载相对应的软件就可以用这个账号密码登录,比如我们创建飞牛的账号为xkzw:fnos

https://img.nw177.cn/blog/20.routers/2005-没有公网如何远程访问-02-星空组网-01.webp

https://img.nw177.cn/blog/20.routers/2005-没有公网如何远程访问-02-星空组网-02.webp

我们在 docker 中新建 compose 项目。

# 官方文档
# https://www.starvpn.cn/
# ---
name: stars_client
# 最后编辑时间:2025-02-14
services:
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

3.3 如何使用星空组网#

打开手机星空组网 APP,输入子成员手机账号密码登陆,我们就会获得一个内网 IP 为 192.168.188.1,可以去星空组网网页查看飞牛给的内网IP为 192.168.188.2。那么我们访问飞牛 OS 就是 192.168.188.2:5666,如图所示。

https://img.nw177.cn/blog/20.routers/2005-没有公网如何远程访问-02-星空组网-03.webp


4 皎月连#

4.1 什么是皎月连#

皎月连得官网是 https://natpierce.cn,登录网站用手机注册,下载一个手机 APP。

4.2 怎么搭建皎月连#

手机或者异地电脑端下载好软件,用注册的手机号登录。

我们在 docker 中新建 compose 项目。

# 官方文档
# https://www.natpierce.cn/
# ---
name: natpierce
# 最后编辑时间:2025-02-14
services:
natpierce:
# 镜像地址
image: natpierce/natpierce:latest
# 容器名字
container_name: natpierce
# 主机名
hostname: natpierce
# 特权模式,赋予容器几乎与主机相同的权限
privileged: true
# 网络模式,host模式
# webui端口33272
network_mode: host
# 重启策略,总是重启
restart: always

4.3 如何使用皎月连#

创建好 compose 项目 webUI 打开端口为 33272 的网页,输入密码然后打开组网,打开服务。最后在手机上登录账号,指定 FNOS 连接,就可以用内网 IP+端口访问了。

https://img.nw177.cn/blog/20.routers/2005-没有公网如何远程访问-03-皎月连-01.webp

https://img.nw177.cn/blog/20.routers/2005-没有公网如何远程访问-03-皎月连.webp


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
没有公网如何远程访问
https://mizuki.nw177.cn/posts/10-技术专栏/20-软路由/06没有公网如何远程访问/
作者
十三
发布于
2025-08-16
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00