NAS外网访问方案

news2024/11/27 16:47:37

基础流程

  • 路由器开启端口映射(如果有猫则要配置猫为转发模式,由路由器直接拨号即可
  • 使用第三方程序让内网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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于ssm学院党员管理系统论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对鄂尔多斯应用技术学院党员信息管理混乱,出错率高&#x…

金蝶云星空业务对象列表显示动态列

文章目录 金蝶云星空业务对象列表显示动态列需求设计开发实现列表插件字段标题数据绑定前事件数据绑定列表插件注册测试 金蝶云星空业务对象列表显示动态列 需求设计 《产品序列号档案》的序列号、适用组织分别关联《序列号主档》的序列号字段,的适用组织表的组织…

Java简易版 TCP协议一对一聊天

客户端 package 二十一章;import java.io.*; import java.net.Socket; import java.util.Date; import javax.swing.*;public class Server {private JFrame jf;private JButton jBsend;private JTextArea jTAcontent;private JTextField jText;private JLabel JLcontent;priv…

1.pipenv创建pyqt5虚拟环境

pipenv创建pyqt5虚拟环境 一、安装pipenv ​ cmd输入指令: pip install pipenv二、安装虚拟环境 cmd进入我要创建环境的目录下 我使用以下命令在当前目录下创建虚拟环境: pipenv --python 3.8创建一个基于Python 3.8的虚拟环境,并生成一个…

深度探索Linux操作系统 —— 构建内核

系列文章目录 深度探索Linux操作系统 —— 编译过程分析 深度探索Linux操作系统 —— 构建工具链 深度探索Linux操作系统 —— 构建内核 文章目录 系列文章目录前言一、内核映像的组成 前言 内核的构建系统 kbuild 基于GNU Make,是一套非常复杂的系统。 对于编译内核…

【神化世界】asp网页500内部服务器错误的解决方法

问题解决方案记录 一、问题 在asp网页调试的时候,不小心改错了,好好的页面突然出现如下错误信息了: 二、解决方法 终于找到了问题所在,是sql语句出错造成的,特别记录一下。 正确的写法 sql"select * from mem…

好用的远程访问软件有哪些?

借助远程访问软件可以对不在身边的电脑进行远程控制或访问,这对于需要远程办公的人来说十分的方便,通过这些软件可以使团队协作和沟通不再受地域限制。市面上的远程访问软件有很多,有哪些好用的远程访问软件呢?这里,本…

【顶级神刊】IEEE旗下TOP,CCF-A,投稿5次也要一试再试,升职法宝,这本期刊逆天了!

计算机类 • 好刊解读 今天小编带来IEEE旗下计算机领域顶级神刊,CCF-A类推荐的期刊解读,众多作者投稿5次也要一试再试,究竟这本期刊如何?如您有投稿需求,可作为重点关注!后文有相关领域真实发表案例&#…

网络安全攻击预警/态势预测算法汇总

总结: 网络安全攻击预警/态势预测算法众多,主要包括: 基于统计学的算法:协方差矩阵、马尔可夫模型等; 基于机器学习的算法:贝叶斯网络、聚类算法、支持向量机SVM、遗传算法、层次分析法AHP、决策树等&am…

Talk | UCSB博士生欧阳思琦: 利用词级别对比学习实现低资源下的语音翻译

本期为TechBeat人工智能社区第553期线上Talk。 北京时间12月6日(周三)20:00,加州大学圣塔芭芭拉分校博士生—欧阳思琦的Talk将准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “利用词级别对比学习实现低资源下的语音翻译”,介绍了他…

扔掉sql语句,用 QxOrm 让你的数据库操作从来没有这么简单过!

ORM简介: ORM 全称是 Object Relational Mapping(对象关系映射),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟…

优思学院|六西格玛质量管理的工具、方法和手段

质量管理涉及多种技术不同的手段,包括了理性分析的和数据分析的工具,绝大部分工具都可以在六西格玛绿带和黑带知识领域中找到,因此,质量人应该学好六西格玛。以下,我们列举一些常见的技术手段。 六西格玛项目方法&…

Java基础——桥洞盖小被

文章目录 1. ArryayList2. LinkedList3. HashMap 1. ArryayList 2. LinkedList 3. HashMap

免费的AI改写工具推荐,AI改写工具大全

在本文中,我们将专心分享AI改写的方法、工具以及技巧,旨在帮助大家更好地理解和利用写作利器。我们将揭示AI改写的背后原理,探讨目前市场上主流的AI改写工具,并分享一些提高改写效果的使用技巧。 AI改写的背后技术原理 在深入讨…

基于ssm学生请假系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本学生请假系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

构建socket的客户端和服务端

网络函数 WSAStartup socket bind listen accept connect send recv closesocket WSACleanup 为什么要用WSAStartup初始化? 本函数必须是应用程序或DLL调用的第一个Windows Sockets函数.它允许应用程序或DLL指明Windows Sockets API的版本号及获得特定Windows So…

Unity中Batching优化的动态合批

文章目录 前言一、动态合批的规则1、材质相同是合批的前提,但是如果是材质实例的话,则一样无法合批。2、支持不同网格的合批3、动态合批需要网格支持的顶点条件二、我们导入一个模型并且制作一个Shader,来测试动态合批1、我们选择模型的 Mesh…

一对一单聊

服务端 package 一对一用户;import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Vector;…

【深度学习】迁移学习中的领域转移及迁移学习的分类

领域转移 根据分布移位发生的具体部分,域移位可分为三种类型,包括协变量移位、先验移位和概念移位 协变量移位: 在协变量移位的情况下,源域和目标域的边际分布是不同的,即ps(x)∕ pt(x),而给定x的y的后验分布在域之间…

Android Init系统:引领设备启动的先锋

Android Init系统:引领设备启动的先锋 引言 Init系统是一个操作系统启动的必要组件,负责在启动时初始化所有系统资源、服务和应用程序。在Android设备中,Init系统起到了至关重要的作用,它是启动过程中的第一个进程,负…