NAS外网访问方案

基础流程

  • 路由器开启端口映射(如果有猫则要配置猫为转发模式,由路由器直接拨号即可
  • 使用第三方程序让内网ip发布到公网上
  • (如果有云服务器)需要开启防火墙端口

好用的第三方程序

FRP穿透

优点:开源免费,速度快,轻量化,部署方便,比某生壳好用太多且相对便宜
缺点:必须要有云服务器且受限于云服务器带宽

安装/配置

去github下载包https://github.com/fatedier/frp/releases

frp分为frps和frpc,顾名思义,frps是放在云服务器上的,frpc则是放在nas里,两个都启动了之后frpc就会向frps发送数据,frps接收到之后用户就可以在云服务器对应的ip上访问nas的服务了

frps配置

我云服务器是linux系统,所以下载了linux_amd版本的,解压之后可以看到这些文件

图 0

我们修改frps.ini这个文件就可以,改成以下的样子,XXXX要你们自己填

[common]
bind_port = 7000

# frp服务端可视化界面管理控制面板相关配置
dashboard_port=7001# 可视化管理界面的端口
dashboard_user=XXXXXX# 可视化管理界面的登录密码
dashboard_pwd=XXXXXXXX# 客户端与服务端连接认证密码
token=XXXXXXXXXXXXXXXX# 随机生成字符串,之后配置frpc的时候要用到

修改好之后,建立一个快速启动脚本,脚本名称自定,我这边定义为frps.sh,脚本内容如下(注意路径要修改成自己的

nohup /frp/frp_0.42.0_linux_amd64/frps -c /frp/frps.ini >/frp/logs/log 2>&1 &

创建完成之后,直接输入命令./frps.sh这样frps就成功启动了

frpc配置

我不太想污染nas环境,而且nas的linux版本也奇奇怪怪的,所以nas的所有安装程序我都基于docker了,包括这个frpc
因为一开始没有统一规划使用docker-compose来管理,所以就盲打了一个docker-compose,可以参考一下(注意:这个容器会默认使用/frp/frpc.ini这个配置,所以如果要启动多个frpc服务的话记得区分。像我就分了两个服务,一个是用于系统的和一些基础服务的,这些服务是稳定上线的。而另一个是一些应用功能的映射,有时会频繁上下线

version: '3'
services:
  frpc-os:
    image: oldiy/frpc:latest    #镜像名称
    container_name: zz-frpc-os    #指定容器名
    restart: always    #在容器退出时总是重启容器
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai    #指定容器运行所属时区
    volumes:
      - ./config/frpc-os.ini:/frp/frpc.ini
    network_mode: "host"
  frpc-app:
    image: oldiy/frpc:latest    #镜像名称
    container_name: zz-frpc-app    #指定容器名
    restart: always    #在容器退出时总是重启容器
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai    #指定容器运行所属时区
    volumes:
      - ./config/frpc-app.ini:/frp/frpc.ini
    network_mode: "host"

创建好docker-compose之后就可以创建frpc.ini文件了。

[common]
server_addr = XXX.XXX.XXX.XXX  #部署了frps的云服务器公网ip,记得要开放端口
server_port = 7000
token = XXXXXXXXXXXXXXXXXXXXXX #frps文件里面的token,一定要对应上

[nas]
type = tcp
local_ip = 127.0.0.1
local_port = 5001
custom_domains = XXX.taotaojs.top
remote_port = XXXX

[nasssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
custom_domains = XXX.taotaojs.top
remote_port = XXXX

···都是这种格式,复制黏贴就行,当然frp还有其他好玩的模式也可以自行尝试···

然后根据docker-compose中的volumes配置,把创建的ini文件放到正确的目录下,就可以输入sudo docker-compose up -d启动了(什么?不知道怎么开启ssh?百度一下对应nas的开启方式就可以了

可视化管理界面

frps自带了可视化管理界面,就是之前frps.ini文件中配置的端口,进入之后输入用户名密码就可以看到所有在转发的端口了

图 1

ipv6动态ddns

优点:满速度!不挑运营商,无需云服务器,只要一个廉价域名即可,轻量化,部署方便
缺点:部分网络会禁用ipv6

不多说,提供一个docker-compose,自己去页面上研究吧

version: "3.9"
services:
  ddns-go:
    image: jeessy/ddns-go
    restart: always
    network_mode: "host"
    volumes:
      - ./config:/root

差不多就是

  • 配置DNS服务商

图 2

  • 启用IPV6,通过网卡获取,domains填入自己的域名

图 3

  • 测试+保存就好了

ipv4静态ip

反正移动是不能设置,移动只有固定ipv6,没有固定ipv4,其他运营商不清楚。就不细说了,这个最简单,找运营商开通即可

黑群晖

最后放一张我黑群的截图吧,从618升级一次配置后一直稳定运行到现在。目前这台机器是16G内存,250G固态,4T+8T硬盘,6T云盘。其中固态仅用于docker,4T用来安装其他套件和临时存放/下载东西,8T则是仅备份,云盘用于备份8T那个盘的数据。以后有机会也会分享一些nas的相关东西。敬请期待!

图 4

END。

欢迎访问我的blog > https://blog.taotaojs.top/archives/nas-wai-wang-fang-wen-fang-an

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/222570.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为OD机试 - 九宫格按键输入 - 逻辑分析(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷&#…

Windows(Microsoft)win电脑装Xcode方法

你想在你的Windows电脑上体验和使用苹果的Xcode进行应用打包。遗憾的是,Xcode官方只支持macOS操作系统,但别担心,我们有替代方案可以让你在Windows环境下进行iOS应用的开发和打包。接下来我将指导你如何实现这一目标。 图片来源:W…

Pyside2 (Qt For Python)进度条功能实现

Pyside2 (Qt For Python)进度条功能实现 进度条(QProgressBar) 今天来介绍PySide2进度条(QProgressBar)的使用,如下所示: 说明 进度条也是一个常用的控件,当程序需要做一件比较耗费时间的任…

【SpringCloud篇】Eureka服务的基本配置和操作

文章目录 🌹简述Eureka🛸搭建Eureka服务⭐操作步骤⭐服务注册⭐服务发现 🌹简述Eureka Eureka是Netflix开源的一个基于REST的服务治理框架,主要用于实现微服务架构中的服务注册与发现。它由Eureka服务器和Eureka客户端组成&#…

15+铁死亡超高分推荐,快来码思路

今天给同学们分享一篇生信文章“Polydopamine Nanoparticles Targeting Ferroptosis Mitigate Intervertebral Disc Degeneration Via Reactive Oxygen Species Depletion, Iron Ions Chelation, and GPX4 Ubiquitination Suppression”,这篇文章发表在Adv Sci (Wei…

laravel记录mysql日志最便捷的办法

因为页面执行的sql很多,因此决定记录一下执行的sql语句。最简便快速的方式就是使用下面的代码: app\Providers\AppServiceProvider.php 在boot方法里面加上下面的代码: \DB::listen(function ($query) {$tmp str_replace(?, ".%s.&quo…

老师如何管理学生?

老师可以通过以下几点来管理学生: 1. 建立积极的关系:老师应该与学生建立积极的关系,鼓励学生参与课堂和课外活动,热情地回应学生的问题和需求。 2. 设定明确的规则:老师应该制定明确的课堂和学校规则,并向…

第一篇:MongoDB的安装、启动、关闭、链接shell

目录 简介 安装 安装遇到的问题 查看brew 当前使用的源: 更换brew 源。更换成清华大学镜像源 版本查看 MongoDB 数据目录与日志目录 启动方式一: 启动MongoDB 验证MongoDB 是否正常运行 停止或重新启动 停止MongoDB 服务 重新启动MongoDB服…

向量数据库有什么意义?AWS向量引擎的优势解析与未来展望

向量数据库是一种以向量为基础的数据库,它的出现为数据存储和检索带来了巨大的改进和创新。在传统的关系型数据库中,数据是以表格形式存储的,而向量数据库采用了更先进的数据结构,将数据以向量的形式进行存储和索引。 那么&#x…

从零开始,轻松实现Python接口自动化测试(基于PyCharm)

1.接口清单整理 (1)请求: 请求URL请求方法请求参数请求报文 (2)响应 状态码响应数据 2.用例设计 (1)单接口测试用例 模板:id、模块、接口名称、请求URL、用例名称、请求方法、…

PySpark开发环境搭建常见问题及解决

PySpark环境搭建常见问题及解决 1、winutils.exe问题2、SparkURL问题3、set_ugi()问题 本文主要收录PySpark开发环境搭建时常见的一些问题及解决方案,并收集一些相关资源 1、winutils.exe问题 报错摘要: WARN Shell: Did not find winutils.exe: {} ja…

配置集群免密登录

文章目录 前言配置集群免密登录1. 设置主机名与 IP 地址的映射关系2. 生成 SSH 密钥对3. 将公钥复制到集群节点4. 测试免密登录5. 配置节点之间互相免密登录 总结 前言 本文介绍了如何配置集群之间免密登录,以便在搭建集群环境时方便地进行节点之间的通信。通过设置…

力扣面试经典150题——Unix简化路径

https://leetcode.cn/problems/simplify-path/description/?envTypestudy-plan-v2&envIdtop-interview-150 思路:将串以/分割,判断字符串是…/./其他,进行入栈和出栈,最后留下的就是结果,拼装一下就好了。 三个…

Python的内置数据类型有哪些?

目录 一、数字类型 二、字符串类型 三、列表类型 四、元组类型 五、字典类型 六、集合类型 七、布尔类型 八、None类型 九、迭代器和生成器 总结 Python是一种高级编程语言,它具有丰富的内置数据类型。这些数据类型包括数字、字符串、列表、元组、字典、集…

Tubulysin F微管蛋白抑制剂 F 368870-67-1星戈瑞

Tubulysin F 是从粘细菌 Archangium geophyra 和 Angiococcus disciformis 中分离出来的天然产物。Tubulysin F 是一种具有细胞毒性活性的微管蛋白抑制剂,可抑制微管蛋白聚合并导致细胞周期停滞和细胞凋亡。 英文名称:Tubulysin F 中文名称:…

华为认证 | 11月底这门HCIP认证正式发布!

华为认证openGauss高级工程师HCIP-openGauss V1.0(中文版)自2023年11月30日起,正式在中国区发布。 01 发布概述 基于“平台生态”战略,围绕“云-管-端”协同的新ICT技术架构,华为公司打造了覆盖ICT领域的认证体系&…

C //例10.2 将一个磁盘文件中的信息复制到另一个磁盘文件中。

C程序设计 (第四版) 谭浩强 例10.2 例10.2 将一个磁盘文件中的信息复制到另一个磁盘文件中。 IDE工具:VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法:使用指针,函数的模块化设计,动态分…

基础课18——表格问答引擎

1.定义 表格问答引擎是一种针对结构化二维表的知识问答引擎,它可以基于表格内容快速抽取信息,并回答用户提出的问题。表格问答引擎的核心技术包括自然语言处理和机器学习等,它通过对表格数据的处理和分析,能够实现自动化问答的目…

外包干了3年,技术退步太明显了。。。

简单的说下,我大学的一个同学,毕业后我自己去了自研的公司,他去了外包,快3年了我薪资、技术各个方面都有了很大的提升,他在外包干的这3年人都要废了,技术没一点提升,学不到任何东西,…

软件工程之架构设计

从公众号转载,关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、架构设计的目的 1.什么是复杂的软件项目 复杂的软件项目通常有两个特点: 需求不确定 技术复杂 技术的复杂性主要体现在四个方面…