说明: 当我们在家中的设备中部署安装了 Emby、Jellyfin 等影音平台又或者是搭建了 nextcloud 个人云盘等程序,以往这些只能通过局域网才能进行内部访问,而现在你可以通过给路由器或设备配置DDNS动态解析(有公网IP)以及ZeroTier(无公网IP)就能达到远程访问的目的。
一、DDNS 动态解析
通常 OpenWrt 自带 ddns 插件(动态DNS)默认支持较多的DDNS 服务提供商其中也包括我一直使用的 HE.NET,考虑到如果要以 HE.NET 为例进行介绍篇幅太长,就算介绍完如何更换DNS解析平台、创建域名、生成 Key这些内容还只是个开头,想了想就此作罢,退而求其次就简单介绍一下两款国内常用的DSNS插件吧。
配置阿里云 AliDDNS
登录阿里云,注册域名(具体步骤不赘述了)需要通过实名认证才可以进行域名解析等操作
创建Access Key
进入「控制台」,鼠标移动到个人头像,点击「AccessKey管理」;
点击「使用子用户AccessKey」
创建用户,填入登录名称和显示名称(随意填写),点击「确定」
为子用户添加权限
在「系统策略」中输入AliyunDNSFullAccess
,点选AliyunDNSFullAccess
添加,并点击「确定」。
为子用户创建 AccessKey
保存好个人的AccessKey ID
、AccessKey Secret
,OpenWrt 插件配置会用到。
添加 A 记录
找到域名解析设置,添加一条A记录
OpenWrt 插件设置
OpenWrt AliDDNS 插件下载 | 点击下载 ,安装过程不做赘述,请自行下载安装。
进入 OpenWrt 管理后台,在左侧导航中找到「AliDDNS」进行插件设置,参考如下:
需要设置的内容包含:
- 勾选「启用」;
- 将此前获得的ID和Secret填入相应的区域。
- 设置「WAN-IP来源」(wan/internet,建议设置wan);
- 设置「主域名」(例如: test.github.com 则填: github.com)
- 设置「子域名」(例如: test.github.com, 则填: test);
- 「检查时间」(若WAN-IP来源选择internet则建议检查时间填写5分钟,否则建议填写1分钟)
最后,「保存并应用」,查看更新域名记录。
配置腾讯云 DDNS(推荐)
登录->腾讯云,注册域名(具体步骤不赘述了)需要通过实名认证后才可以进行域名解析等操作。
添加 A 记录
使用腾讯云的账号登录 DNSPOD 域名解析平台,在「我的域名」找到自己的域名,点击「解析」,添加记录:主机记录(随意填写)、记录类型(A记录)、线路类型(默认)、记录值(IP随意填写)、TTL(最低允许600),如下:
填写完成后,点击确认。
创建 DNSPod Token
腾讯云 API 密钥 ->传送门,点击「DNSPod Token」,然后「创建密钥」。随意填写一下密钥名称,这时会自动生成密钥相关信息包含ID、Token,切记一定要保存好你的ID、Token信息,OpenWrt 插件配置会用到。
OpenWrt 插件设置
OpenWrt 腾讯云 DDNS插件下载地址 --> 点击下载 ,安装过程不做赘述,请自行下载安装。
进入 OpenWrt 管理后台,在左侧导航中找到「腾讯云 DDNS」进行插件设置,参考如下(插件版本变化可能导致面板设置有所不同,但区别并不大):
需要设置的内容包含:
- 勾选「启用」;
- 将此前创建好的ID和Token填入相应的区域。
- 设置「WAN-IP来源」(wan/internet,建议设置wan);
- 设置「主域名」(例如: test.github.com 则填: github.com)
- 设置「子域名」(例如: test.github.com, 则填: test);
- 「检查时间」(若WAN-IP来源选择internet则建议检查时间填写5分钟,否则建议填写1分钟)
最后,「保存并应用」,查看更新域名记录。
端口转发设置
「网络」-「防火墙」-「端口转发」,新建端口转发规则:
名称 | 协议 | 外部区域 | 外部端口 | 内部区域 | 内部IP地址 | 内部端口 |
---|---|---|---|---|---|---|
LUCI | TCP | WAN | 9080 | LAN | 192.168.0.1 | 80 |
SSH | TCP+UDP | WAN | 9022 | LAN | 192.168.0.1 | 22 |
注:OpenWrt 默认使用的Web端口为80
端口被封禁,这里通过外部使用9080
端口转发;SSH默认为22
端口,这里使用外部9022
端口进行转发。
例如,端口转发 emby 默认端口 8096
,这里建议外部端口和内部端口保持一致:
防火墙设置
「网络」-「防火墙」-「常规设置」,修改「转发」设置为「接受」。
「网络」-「防火墙」-「常规设置」,在「区域」中将WAN口的「入站数据」和「转发」设置由「拒绝」修改为「接受」。
此刻 DDNS 配置完成!若不出意外,通过使用指定域名(包含主机记录的完整地址)+端口号(端口转发对应的外部端口号)的形式应该就能访问。例如 http://subdomain.com:9080/
常见问题
问题一:外网无法通过域名/公网IP访问?
解决方案:
进入 OpenWrt 后台,找到 uHTTPd 取消勾选「忽略公共接口上的私有 IP」
如果面板上找不到 uHTTPd ,请通过 SSH 终端进入 OpenWrt 修改 uHTTPd 配置文件:
# 修改uhttpd配置文件
vim /etc/config/uhttpd
# 找到下面这行
option rfc1918_filter '1'
# 修改为
option rfc1918_filter '0'
修改完成后保存并退出,重启 uhttpd 使配置失效:
/etc/init.d/uhttpd restart
问题二:通过域名和公网IP访问速度奇慢?
解决方案:
1、关闭Turbo ACC,至少要关闭/禁用 「SFE (FLOW)Fast Path」,否则会严重影响端口转发效率。
2、对速度要求较高的应用,配置端口转发时,确保外部端口号和内部端口号是一致的。
二、ZeroTier 虚拟局域网
1、注册帐号
访问 ZeroTier -> 注册一个帐号 (账号注册过程不做赘述)
2、创建网络
登录 https://my.zerotier.com/
,创建一个虚拟局域网。
此时系统会自动为你生成一个 NETWORK ID
,保存好此 ID,OpenWrt 加入到虚拟局域网络会用到 NETWORK ID
。
选择「Access Control」访问类型,推荐设置为「PRIVATE」,因为「PRIVATE」更具私密性,安全性更高。
3、OpenWrt 插件设置
OpenWrt 插件 ZeroTier 下载地址 --> 插件下载 ,安装过程不做赘述,请自行下载安装。
插件安装完成后,进入 OpenWrt 管理后台,在左侧导航中找到「ZeroTier」配置如下:
设置内容包含:
- 勾选「启用」
- 将获得的
NETWORK ID
填入到对应的区域 - 保存并应用
4、授权设备加入网络
此时 ZeroTier NetWork 会收到一条授权请求,在列表中找到设备,勾选以授权此设备加入到你的网络。
等待一会儿,刷新一下页面,此时会显示 ZeroTier 为该设备分配的虚拟局域网IP
5、远程访问
作为用来访问 OpenWrt 的一端,请根据设备所属平台,下载 ZeroTier One 并完成安装。
打开 ZeroTier One 点击 Join Network 填写之前获取到的 Network ID
然后点击 「Join」
等待片刻 ZeroTier NetWork 会收到新的一条授权请求,在列表中找到该设备,勾选以授权此设备加入到你的网络。
此时,当前设备可被允许访问虚拟局域网内的任一设备,通过 OpenWrt 的虚拟局域网IP http://172.24.62.179/
访问 OpenWrt 管理后台,而无需额外配置(无需配置端口转发、防火墙设置),就能轻松访问当前设备开放的所有端口。
三、两者差异比较
名称/类型 | 速度与稳定性 | 公网IP | 端口转发与防火墙 | 开放程度 | 配置难易度 | 安全性 |
---|---|---|---|---|---|---|
DDNS 动态解析 | 稳定,可跑满带宽 | 需要 | 需配置 | 公开访问 | 较复杂 | 一般 |
ZeroTier | 一般,速度勉强 | 无需 | 无需配置 | 局域网络 | 简单 | 较高 |
相关推荐
- 将 OpenWrt 设置为交换机 / AP 模式
- Tailscale:基于 WireGuard 异地组建虚拟局域网
- OpenWrt 存储空间扩容的两种方案
- OpenWrt 固件自编译教程:从入门到酸爽!
- 群晖 VMM 虚拟机安装 OpenWrt 配置旁路由
- Proxmox VE 虚拟机安装 OpenWrt 配置旁路由教程
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/4106.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
您好,如果软路由只有一个网口的话,做旁路有,没有wan口,是不是不能配置ddns,我防火墙设置的地方,wan对应的是空
旁路由配置 ddns 获取IP的话,可以通过 curl 命令获取外网 ip,在 ddns 插件上将 WAN-IP 来源设置为互联网,这通常需要配置IP查询接口,同时要在主路由做好端口转发。
大大,op的ipv6要怎么设置?设置好后,域名解析ipv6+端口号,有的端口号可以访问,但有的又无法访问,是需要设置哪里吗?
1、启动 UPnP 与 NAT-PMP 服务或者自定义设置端口转发;
2、防火墙入站出站转发均设置接受;
以上,你试试看,我自己的是禁用 IPv6 的