绿联 DX4600 NAS 支持Docker服务,可惜只能在内网使用,必须掌握内网穿透技术,才能在外网访问Docker提供的服务。下面介绍如何在绿联 DX4600 NAS 配置内网穿透的方法。
基本原理
NAT
NAT 是网络地址转换的缩写。它是一种在网络中广泛使用的技术,主要作用是在数据包通过路由器或防火墙时,修改数据包中的源IP地址或目标IP地址。
NAT主要解决以下问题:
- 解决 IPv4 地址短缺问题:NAT 允许一个家庭或公司里的所有设备(电脑、手机、平板等)共享同一个公网 IP 地址上网。
- 安全与隐私(天然的防火墙):因为外界只能看到 NAT 路由器的公网 IP,无法直接访问到你内网的具体设备。
- 网络灵活性:你可以在家里随意增加或更换设备,只要它们使用的是私有 IP 地址(如 192.168.0.10)
NAT常见类型主要有三种:
- 静态 NAT : 一个私有 IP 地址固定映射到一个公网 IP 地址(一对一)
- 动态 NAT :多个私有 IP 地址竞争使用一个公网 IP 地址池(多对多)
- PAT / NAPT: 多对一。让家里所有设备共用路由器上的同一个公网 IP。路由器除了记录 IP 地址,还会记录端口号。当你手机和电脑同时上网时,路由器把它们的请求发出去,但给它们分配不同的源端口。
- 例如:手机请求用的是 公网IP:10001,电脑请求用的是 公网IP:10002。当数据返回时,路由器根据端口号 10001 或 10002,就知道该把数据转发给手机还是电脑。
内网穿透
内网穿透的核心原理,可以通俗地理解为:让没有公网IP的设备,通过一个有公网IP的中转服务器,和外部设备建立数据通道。
其工作流程分为两步:
第一步:建立隧道(内网设备主动连接服务器)
第二步:数据转发(打给服务器,转给内网)
这个过程就是内网穿透的本质:数据全部经过服务器中转。
进阶版:P2P(点对点)打洞
为了提高速度,更高级的穿透(如P2P模式,即点对点模式)会尝试让两个内网设备直接连接。原理如下:
- 中介牵线: 服务器依然存在,但它只负责“牵线搭桥”,帮双方交换IP和端口信息。
- 打洞: 双方利用UDP协议的特性,互相往对方的公网IP和端口发送数据。虽然一开始会被路由器拒绝,但当双方都发送时,路由器会误以为是之前请求的回复,从而打开一个临时通道。
- 直连: 一旦通道打开,两台设备就可以直接通信了,数据不再经过服务器中转,速度取决于双方各自的宽带。
这就是P2P打洞技术,也是P2P(如BT下载)和视频通话流畅运行的基础。
P2P(点对点)打洞限制
NAT的不同“性格”(类型)直接决定了打洞的成败。主要有以下四种类型:
| NAT类型 | 工作原理 | 打洞成功率 |
|---|---|---|
| 完全锥型 | 映射关系建立后,任何外部主机都可以通过这个公网端口访问内网主机。 | ✅ 最容易 |
| 受限锥型 | 只有内网主机主动发送过数据的外部主机(不限端口),才能通过公网端口向内网发起通信。 | ✅ 较容易 |
| 端口受限锥型 | 要求更严格,只有内网主机主动发送过数据的特定(IP+端口)组合,才能向内网通信。 | ✅ 有条件 |
| 对称型 | 最严格。每次内网主机向不同目标主机发起连接,NAT都会重新分配一个新的公网端口,导致无法预测对方的“入口”。 | ❌ 基本无效 |
实现方法
使用Docker服务
请参考:
目前绿联DX4600提供的Docker镜像仓库均无法下载Docker镜像,可修改使用轩辕镜像下载Docker镜像。
使用cpolar服务
使用cpolar提供的免费内网穿透服务,可实现远程登陆绿联 DX4600 进行操作。
DX4600操作系统是基于OpenWrt系统的,因此安装 cpolar 请参考:
具体步骤如下:
- 开启绿联 DX4600 调试功能
- 使用 MobaXterm 远程登陆绿联 DX4600系统
- 使用如下命令安装 cpolar
1 | # 下载公钥 |
- 用浏览器访问 http://nas_ip:9200 ,创建访问绿联 DX4600的 SSH隧道。注意绿联 DX4600 ssh服务的端口为922。
- 登录 cpolar官网,注册账号,可以看到创建的 ssh 隧道,后续可以在外网通过该 ssh 隧道远程登录内网的绿联 DX4600。
参考链接
- 外网SSH远程连接linux服务器「cpolar内网穿透」,by 不会kao代码的小王.
- 手把手教你:零基础实现绿联NAS外网访问,随时随地访问Docker服务,by 黑衣教主.
- NAS探索篇一:绿联DX4600利用DDNS-GO和阿里云免费部署动态解析,by 墨鱼的猪.
- 原来Docker这么好用,绿联DX4600,Docker上手实际操作体验,by 鼠鼠的鼠.
- NAS用户必备!170 多个好玩的,好用的docker容器,by 什么值得买.