Skip to content
0

没有公网如何远程访问?

1 序言

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


2 Tailscale

2.1 什么是 Tailscale

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

/imgURL/blog/20.routers/2006-MAC地址重复问题修正-01-地址修正-01.webp

/imgURL/blog/20.routers/2005-没有公网如何远程访问-01-ts-01.webp

2.2 怎么搭建 Tailscale

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

/imgURL/blog/20.routers/2005-没有公网如何远程访问-01-ts-02.webp

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

yaml
# 官方文档
# 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 设备,然后删除禁用,保持一直在线。

/imgURL/blog/20.routers/2005-没有公网如何远程访问-01-ts-03.webp

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

/imgURL/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,因为我们不是设置过一个子网路由,如图所示。

/imgURL/blog/20.routers/2005-没有公网如何远程访问-01-ts-05.webp


3 星空组网

3.1 什么是星空组网

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

3.2 怎么搭建星空组网

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

/imgURL/blog/20.routers/2005-没有公网如何远程访问-02-星空组网-01.webp

/imgURL/blog/20.routers/2005-没有公网如何远程访问-02-星空组网-02.webp

我们在 docker 中新建 compose 项目。

yaml
# 官方文档
# 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,如图所示。

/imgURL/blog/20.routers/2005-没有公网如何远程访问-02-星空组网-03.webp


4 皎月连

4.1 什么是皎月连

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

4.2 怎么搭建皎月连

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

我们在 docker 中新建 compose 项目。

yaml
# 官方文档
# 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+端口访问了。

/imgURL/blog/20.routers/2005-没有公网如何远程访问-03-皎月连-01.webp

/imgURL/blog/20.routers/2005-没有公网如何远程访问-03-皎月连.webp


5 总结

内网穿透服务,对于没有公网用户还是挺友好的。我们可以把三个 compose 项目合成一个 yaml 文件。

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
最近更新