数码杂锅

  • 首页
  • docker应用
    • docker知识
    • docker可视化管理
    • AIGC相关
    • 内网穿透
    • 在线文档
    • 笔记软件
    • 聊天软件
    • 刮削工具
    • 浏览器
    • 运维平台
    • 音乐软件
    • 网盘工具
    • 网络工具
    • 书籍管理
    • 在线教育
    • 备份同步
    • 相册管理
    • 协同办公
    • 抽奖系统
    • 稍后阅读
    • 工具集软件
    • 脚本平台
    • 密码管理
    • 数据库管理
    • 族谱管理
    • 思维导图
    • 视频会议
    • 文件管理
    • 监控管理
    • 远程桌面
    • Nas系统
    • 下载工具
    • devops代码托管
    • 导航书签
    • 办公软件
    • 聚合网盘
    • 智能家居
    • 网盘搜索
    • 影音播放
  • Nas杂项
    • 飞牛
    • 群晖
  • 电脑知识
  • 隐私政策
数码爱好者的分享小站
  1. Main page
  2. docker应用
  3. Main content

飞牛nas的4种远程访问方式介绍第三篇:4种软件的内网穿透及3种代理服务框架搭设

2024年10月28日 903hotness 0likes 0comments
总纲

飞牛nas目前我知道的有如下几种远程访问的方式:

1、公网ip和动态公网ip v4v6下的直连

2、通过中转服务器实现的异地虚拟组网,大部分软件兼具打洞功能

3、通过中转服务器实现的内网穿透代理

4、通过串流服务器打洞实现的p2p直连

简介

本篇介绍第3种的软件实现方式:作用是内网穿透,本质就是通过中转服务器代理访问,所有数据经过中转服务器,中转服务器是有成本的,所以肯定会限速或者收费,飞牛nas的远程访问我不知道他有没有设置打洞,但他至少有内网穿透的代理功能

实现方式的相关软件:1、贝瑞花生壳 2、路由侠 3、飞牛nas的远程访问FNID 4、节点小宝 5、自建代理服务器。排序不分先后,软件其实应该还很多,但是内网穿透稍微了解一下就行,知道1-2个就行,端口代理没有虚拟局域网那么方便。反而是第5项自建代理的方法有兴趣的同学可以看看。

单纯内网穿透的软件,都可以同时安装存在,一般不会互相影响

 

1、贝瑞花生壳

无需依赖公网IP、无需配置路由器,花生壳支持在客户端上

添加端口映射,快速将内网服务发布到外网

windows版官网下载:https://hsk.oray.com/download/

控制台添加映射:https://console.hsk.oray.com/home

线路只有2条,每月流量限制1gb,带宽限速125kb/s

访问协议可以是http、https、tcp,http可以是固定80端口,tcp的外网端口只能是动态的

小结:聊胜于无,最后我发现官方网页没有docker版的,windows版可以用,有个可能是非官方版的容器部署失败,放弃,有兴趣的同学可以自己试试,映像是bygc612/hsk_ddns。类似的软件比如nat123、金万维快解析、natapp等有很多。

2、路由侠

路由侠有windows版的:https://www.luyouxia.com/download/

这里主要将部署nas用的docker版:

windows版安装好后,在设备中心中添加设备

获得安装码:***********

services:
    luyouxia:
        network_mode: host
        container_name: luyouxia
        privileged: true
        restart: always
        environment:
          - code= ******  #需填写安装码
        image: luyouxia/lyx

容器运行日志显示设备创建成功

windows端设备中心也显示出了nas

在内网映射里添加ip和端口,和花生壳差不多

应用场景如下:有自定义端口、网站80 443端口,和sock5代理服务

免费模式是按流量计费,每月可用1gb,带宽的都是收费的

这里我映射了下飞牛nas的页面,实测访问成功

优点:每个场景都会给你一个固定公网三级域名,端口不限制,场景较丰富

缺点:映射只有2条,流量只有1gb

小结:有流量小的需求可以试试,毕竟固定域名还是方便点

 

3、飞牛nas的远程访问FNID

这个原理上是内网穿透,但是又固定端口了,就一笔带过

飞牛nas开启了FN connect服务后,飞牛nas就可以通过FNID.fnox.net或者fnox.net/FNID穿透访问

 

4、节点小宝

节点小宝除了虚拟组网,也自带了内网穿透,而且穿透代理可以自定义二级域名,这个我感觉挺方便的,之前的虚拟组网篇章已经讲了,有需要的同学可以自己试试那些功能

 

5、自建代理服务器的内网穿透

方案原理:

这个方式主要途径是在有固定公网ip的云服务器上,自建代理服务,就能满足内网穿透需求,目前可以使用frp、nps、 Ngrok、SPP,4种方案,这里ngrok不讲,我没官网账号没有授权key

对于有公网ip的同学,也可以在软路由器上搭设代理服务,比公网ip直连可以安全一点

方案流程:

方案的流程是,在云服务器上运行服务端程序,在nas端运行客户端程序,建立服务器程序和客户端程序之间的隧道,我们的计算机就能通过访问云服务器上的公网ip地址来达到反向代理访问nas的目的

也可以在有公网ip的电脑上搭设代理服务器


这三种代理方案各有优缺点,适合不同的使用场景。下面是它们的简要比较:
1. FRP (Fast Reverse Proxy)
高性能:FRP 是用 Go 语言编写的,性能高且资源消耗较低。
灵活配置:支持多种协议(TCP、UDP、HTTP、HTTPS),适用于多种应用场景。
开源免费:FRP 是开源的,可以自由修改和使用。
2. NPS (Network Proxy Server)
高效:NPS 的性能也相当不错,支持高并发。
简单配置:相对来说,配置较为简单,易于上手。
支持多协议:同样支持多种协议。
安全性问题:需要自行注意安全配置,防止未经授权的访问。
3. SPP (Smart Proxy Protocol)
高效智能:SPP 是一种高效且智能的代理协议,能够自动优化数据传输。
支持多种协议:支持多种常见协议,使用灵活。
较少使用:相对于 FRP 和 nps,SPP 的用户和社区较少,资料也相对稀缺。
复杂性:可能需要更多的配置和调试工作,学习曲线较陡。

 

因为我有一个公网ip的云轻量服务器(内置了宝塔),所以这些在我宝塔下演示下

1、frp框架搭设

frp的官方开源页:https://github.com/fatedier/frp

中文文档:https://gofrp.org/zh-cn/docs/

别人打包的dockerhub页:https://hub.docker.com/r/snowdreamtech/frps

云服务器上我们只搭建服务端程序,宝塔上我也采用docker compose安装,但我觉得宝塔的compose有点麻烦,多了个模板的操作。注意云服务器上防火墙关闭或者端口放行


services:
    frps:
        restart: always
        network_mode: host
        privileged: true # 拥有容器内命令执行的高权限
        volumes:
            - /etc/frp/:/etc/frp/ 
        container_name: frps
        image: snowdreamtech/frps

然后再宝塔的文件管理里/etc/frp/目录下上传配置文件(下面代码在txt文件编辑后修改名称为frps.toml,下同)


[common]
# 监听端口
bind_port = 6868
# 面板端口
dashboard_port = 7878
# 登录面板账号设置
dashboard_user = admin
dashboard_pwd = 12345678
# 身份验证
token = hswz

然后就可以访问公网IP:7878的frp后台面板了,然后再nas端搭建客户端程序

nas端的客户端程序frpc的dockercompose代码:


services:
    frpc:
        restart: always
        network_mode: host
        volumes:
            - ./:/etc/frp/
        container_name: frpc
        image: snowdreamtech/frpc

下面是frpc.toml配置文件代码,自己把云服务器公网ip填下server_addr,(下面代码在txt文件编辑后修改名称为frpc.toml,上传到nas端的docker的frpc项目文件夹下):

[common]
server_addr = *****
#server_addr为FRPS服务器IP地址,即公网服务器的ip
server_port = 6868
#server_port为服务端监听端口,bind_port,与frps.toml中保存一致
token = hswz
#身份验证,与frps.toml中保存一致
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
#这里是nas本地管理页面用户名
admin_pwd = 12345678
#这里是nas本地管理页面密码
[admin_ui]
type = tcp
local_port = 7400
#这里是nas本地管理端口
remote_port = 5556
#这里是nas本地管理端口对应的云服务器管理端口
[web] 
type = tcp
local_ip = 127.0.0.1
local_port = 8000
#这里是飞牛的本地访问端口
remote_port = 5000
#这里的你云服务器访问local_port的端口

这是通过云服务器IP:5000端口成功访问nas

这是通过云服务器IP:5556端口成功访问nas的客户端管理页面

云服务器服务端也显示出了frpc配置文件上配置的隧道2个

云服务器一般不用考虑重启问题,nas端客户端如果经常重启可以考虑下

frpc的自动启动设置,可以参考官方文档,写的很细了,这里直接贴链接:

https://gofrp.org/zh-cn/docs/setup/systemd

你搭建的服务器带宽决定了你的上传带宽,如果你家庭宽带是公网ip,把frps搭建在自己的软路由器上,那你的代理服务就跑满

类似的采用frp框架的网站有樱花frp、***Frp百度有很多,他们的免费通道也够用。可以不用像我一样在自己云服务器上搭建

2、nps搭建

开源代码页:https://github.com/ehang-io/

文档页:https://ehang-io.github.io/nps/

云服务器端:


services:
    nps:
        container_name: nps
        network_mode: host
        volumes:
            - /etc/nps/:/conf
        image: ffdfgdfg/nps
/etc/nps/conf文件夹下的nps.conf配置文件修改下,如果没有就创建下

appname = nps
#Boot mode(dev|pro)
runmode = dev

#HTTP(S) proxy port, no startup if empty
http_proxy_ip=0.0.0.0
http_proxy_port=10080
#这个默认是80,修改是会和宝塔冲突
https_proxy_port=10443
#这个默认是443,修改是会和宝塔冲突
https_just_proxy=true
#default https certificate setting
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key

##bridge
bridge_type=tcp
bridge_port=8024
bridge_ip=0.0.0.0

# Public password, which clients can use to connect to the server
# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file.
public_vkey=12345678

#Traffic data persistence interval(minute)
#Ignorance means no persistence
#flow_store_interval=1

# log level LevelEmergency->0  LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7
log_level=7
#log_path=nps.log

#Whether to restrict IP access, true or false or ignore
#ip_limit=true

#p2p
#p2p_ip=127.0.0.1
#p2p_port=6000

#web
web_host=a.o.com
web_username=admin
web_password=12345678
web_port = 8080
web_ip=0.0.0.0
web_base_url=
web_open_ssl=false
web_cert_file=conf/server.pem
web_key_file=conf/server.key
# if web under proxy use sub path. like http://host/nps need this.
#web_base_url=/nps

#Web API unauthenticated IP address(the len of auth_crypt_key must be 16)
#Remove comments if needed
#auth_key=test
auth_crypt_key =1234567812345678

#allow_ports=9001-9009,10001,11000-12000

#Web management multi-user login
allow_user_login=false
allow_user_register=false
allow_user_change_username=false


#extension
allow_flow_limit=false
allow_rate_limit=false
allow_tunnel_num_limit=false
allow_local_proxy=false
allow_connection_num_limit=false
allow_multi_ip=false
system_info_display=false

#cache
http_cache=false
http_cache_length=100

#get origin ip
http_add_origin_header=false

#pprof debug options
#pprof_ip=0.0.0.0
#pprof_port=9999

#client disconnect timeout
disconnect_timeout=60

配置文件的说明:

输入公网ip:8080,进入nps管理页面,用户名admin,密码12345678

左边菜单客户端,新增 basic用户名和认证密码可以填一下,用与和nps-client客户端通信认证用的

生成了一个id2的客户端,这个唯一验证密钥记住,后面连接npc-client要用

这里设置一个tcp代理,因为飞牛nas的不是80端口,客户端就写刚才的id2,服务端口设置9999,这个9999是通过云服务器ip:9999来代理访问nas端客户端对应绑定端口的。目标(ip端口)写127.0.0.1:8000

客户端这里展开id2的详情,后面会用到

nas端docker compose部署代码:


services:
    npc:
        container_name: npc
        network_mode: host
        volumes:
            - ./conf:/conf
        image: ffdfgdfg/npc
        command: -config=/conf/npc.conf

nas端的文件./conf/npc.conf文件配置如下:


[common]
server_addr=******:8024
conn_type=tcp
vkey=mfda0fl4znox9409
username=
password=
compress=true
crypt=true
rate_limit=10000
flow_limit=100
remark=test
max_conn=10
#pprof_addr=0.0.0.0:9999

#[http]
#mode=httpProxy
#server_port=9999

#[socks5]
#mode=socks5
#server_port=9004
#multi_account=multi_account.conf

[tcp]
mode=tcp
target_addr=127.0.0.1:8000
server_port=9999

我这配置只贴了常见的,还需要其他配置的看官方说明

客户端代理文件配置说明:https://ehang-io.github.io/nps/#/use?id=%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e6%a8%a1%e5%bc%8f

容器日志显示运行成功

云服务器服务端页面的客户端id2也显示在线了

访问云服务器IP:9999就能访问飞牛nas了

 

3、spp框架搭设

dockerhub源码页:https://hub.docker.com/r/esrrhs/spp

云服务器端docker compose部署:开启后服务器端程序监听7777端口


services:
    spp:
        container_name: spp
        restart: always
        network_mode: host
        image: esrrhs/spp
        command: ./spp -type server -proto tcp -listen :7777

nas端客户端docker compose部署:


services:
    spp:
        container_name: spp-client
        restart: always
        network_mode: host
        image: esrrhs/spp
        command: ./spp -name "test" -type reverse_proxy_client -server ***:7777 -fromaddr :9000 -toaddr :8000 -proxyproto tcp
        #这里填下云服务器ip就可以,fromaddr是服务器端口,toaddr是nas端口

这里spp的代理协议区分的比较清楚,这里是使用的反向代理类型reverse_proxy_client访问的nas端管理页面

我这只讲了个粗略部署,有兴趣的同学可以看看hub代码页的说明或者这篇文章也很详细:

https://blog.csdn.net/weixin_44604541/article/details/119606359

4、Ngrok框架搭设

官网:https://ngrok.com/

这里类似的网站有**ngrok,像cpolar的代理方法我感觉也和ngrok类似

总结
内网穿透也就是代理访问,根据你与服务器之间的地理位置和带宽影响速度,在国外的延迟就高,但在国外能访问国外网站。
本次部署的相关yml等文件下载链接:https://pan.quark.cn/s/7115ac92ab7e

 


 如果文章对您有帮助,

欢迎点赞、关注、分享

 

相关文章

  • Nas上部署一款开箱即用的在线视频播放器docker应用:MoonTV
  • Nas上部署一款开源、轻量的在线视频搜索与观看docker应用:libretv
  • 告别U盘拷来拷去!只要几分钟就能拥有个人或企业专属「影音库」:mediacms
  • Nas上部署智能表格+工作流+应用搭建的一站式数字化平台:SeaTable最新5.3版本
  • Nas上docker部署一个动画数字人:Awesome Digital Human
  • Nas上docker部署web文件分享快递柜:FileCodeBox
  • nas上部署m3u8在线视频下载工具:mediago
  • 一款多平台的开源电子书阅读器:Anx-Reader
Tag: Nothing
Last updated:2025年4月24日

红薯丸子

好好学习,天天向上

Like
< Last article
Next article >

Comments

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
Cancel

COPYRIGHT © 2024 红薯丸子. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

EnglishEnglish
简体中文简体中文