Unraid 篇三:IPV6公网远程访问家中设备,Padavan主路由加OW旁路由加Unraid
如何才能快速换一种生活方式?参加#牛年Flag#征稿活动,征集你2021年的购物学习生活计划!>>点击查看活动详情<<本次征稿活动欢迎你的敢出敢买Flag、学习Flag以及各种生活Flag,优秀的投稿文章能获得优厚的大奖,让我们一起努力实现目标吧!
创作立场声明:分享一种在IPV6环境下远程访问家中服务的方法
背景:
家中装有中国移动的宽带,提供公网IPV6,如果不好好利用怪可惜的,于是开启了漫漫折腾之路。折腾的目标,实现像公网IPV4一样,远程访问家中设备。分析IPV6远程访问的可行性,取决于一下几点:
1. 家中服务器支持IPV6。影响的因素:网卡、系统。据查到的资料来看,对于网卡,自2012年以来的,网卡陆续支持IPV6,凡是最近5年以来的网卡,基本支持IPV6;系统:桌面类和服务类的主流系统均已支持,如win7/8/10,Ubuntu、Centos等Linux、群辉、Unraid、freenas等主流NAS系统
2. 网络运营商支持IPV6。根据目前查到的资料,三大运营商的手机终端均支持IPV6。中国移动的宽带提供公网IPV6,可实现公网信息上下行连接。联通宽带,由于目前可以申请到动态的公网IPV4,推荐公网IPV4远程访问(IPV4的配置比IPV6简单太多了)。
3. 设备终端支持IPV6。此处推荐使用手机作为访问的终端。目前,2018年以来发布的各大品牌主流旗舰级手机基本支持IPV6可。本文使用手机:某国产手机。
4. 家中服务器的上级路由(主路由)需要支持公网IPV6(最近几年的中端以上的路由器基本支持),且对IPV6数据包的入站出站放行(关键)。本文使用的主路由系统为老毛子Padavan固件,需要通过合理配置开启IPV6的中继和转发,以及合理的防火墙配置,才能是家中局域网络具备完善的IPV6环境。
网络环境
手机外网远程访问的IPV6数据 <---> 中国移动运营商提供的IPV6网关 <---> 家中主路由(老毛子Padavan固件)分发IPV6 <---> 旁路由(具有动态DDNS功能,虚拟在Unraid宿主系统中的OpenWrt旁路由系统)与域名绑定,转发IPV6数据 <---> 服务器提供的各种服务.
使用的设备信息
主路由器:安装老毛子Padavan固件的极路由
;
旁路由:在Unraid Nas系统中虚拟的旁路由(Unraid中虚拟OPenwrt旁路由,可参考文章);
服务器:安装在J3455主板的Unraid Nas系统,提供Web、相册、Jellyfin、私人网盘等服务;
访问终端:某国产手机;
个人域名:本文使用阿里云的域名;
正文
一. 老毛子Padavan固件开启IPV6及正确配置防火墙
1. 首先确保光猫开启IPV6的转发。中国移动光猫的设置为:使用管理员账号登录,设置光猫为拨号桥接模式,光猫不拨号,选择IPV4/IPV6协议,如下图所示:
2. 进入主路由的后台界面,找到IPV6配置,位于:高级设置 -> 外部网络 -> IPV6设置,按下图配置。为局域网开启IPV6分发,对局域网设备分配公网IPV6.
3. 配置IPV6防火墙,为个人域名或者服务器IPV6地址入站出站放行。(注意,此处可以将防火墙直接关闭,就可以不用配置下面的指令,但是会带来安全问题,直接将内网的设备暴露在外网中,及其不安全,建议按下面来配置!!!) 找打在防火墙规则(Emong's Qos)启动后执行,位于:高级设置 -> 自定义位置 -> 脚本 -> 在防火墙规则(Emong's Qos)启动后执行。 按下图所示的区域内加上必要的两句指令:
ip6tables -A FORWARD -d 你的域名.com -j ACCEPT
ip6tables -P OUTPUT ACCEPT
可以不使用域名,直接家中服务器的公网IPV6地址:
ip6tables -A FORWARD -p tcp -m multiport -d 2000:xxxx::1000 -j ACCEPT
ip6tables -P OUTPUT ACCEPT
只指定开放域名/公网IPV6地址的某几个端口:
ip6tables -A FORWARD -p tcp -m multiport --dport 8096,51413 -d 2000:xxxx::1000 -j ACCEPT
ip6tables -A FORWARD --dport 8096,51413 -d 你的域名.com -j ACCEPT
ip6tables -P OUTPUT ACCEPT
4. 点击"应用本页配置".
二. 旁路由OpenWrt安装动态DDNS插件及配置
1. unraid nas系统安装Openwrt虚拟机,配置如下:可参考之前写过的文章
2. 打开OPenWrt后台界面,安装动态DDNS插件。位置为:系统 -> 软件包 -> 更新列表 -> 过滤器 搜索并安装以下几个插件:
wget openssl-util
ddns-scripts
luci-app-ddns
luci-i18n-ddns-zh-cn
3. 本文使用的阿里云域名,需要单独为动态DDNS插件安装一个补丁:ddns-scripts_aliyun。安装方式为:手动安装,如下图所示:
4. 配置动态DDNS:找到位置:服务 -> 动态DDNS,添加一个新配置,如下图所示.
5. 进入刚刚添加的配置,按下图所示配置。其中阿里得令牌用户名和密钥需要在阿里控制台创建子账号,然后创建一个AccessKey令牌,为令牌分配DDNS相关的权限(具体步骤在下一步)。
6.1 登录阿里控制台 点击创建用户,按下图配置最后点击确定
6.2 点击进入刚刚配置好的子账号,分配权限:点击权限管理,在红色框内依次添加权限:
AliyunDNSReadOnlyAccessAliyunDNSFullAccess
AliyunPvtzFullAccess
AliyunPvtzReadOnlyAccess
AliyunDomainFullAccess
6.3 添加权限之后,点击创建AccessKey, 然后记录下ID和对应的秘钥。
7.1 为OPenWrt添加IPV6接口。其中,协议为“DHCPv6 客户端”,接口.
7.2 进入刚刚创建的IPV6接口,按下图所示配置,最后添加保存。
7.3 最后,配置效果如下:
7.4 配置防火墙,如下图所示:
8 高级设置中,设置“IP 地址来源 [IPv6]”为“接口”,“接口”为OpenWrt接口的IPv6接口。
9 至此动态DDNS配置完成。点击保存并应用,然后启动刚刚创建的DDNS 直到出现PID线程值。
三. IPV6转发配置
1. 打开win10命令控制行,输入 ssh root@IP地址(OPenWrt)进入OPenwrt的后台终端。输入指令:
vi /etc/init.d/autosocat
然后输入一下内容:其中,TCP6-LISTEN为监听IPV6的端口,TCP4为内网服务器的ipv4地址及对应的端口。这样就实现了IPV6的端口的数据包转发到了局域网IPV4对应的的设备。
#!/bin/sh /etc/rc.commonSTART=99
STOP=15start() {
socat TCP6-LISTEN:1443,reuseaddr,fork TCP4:192.168.123.210:1443 &
socat TCP6-LISTEN:8096,reuseaddr,fork TCP4:192.168.123.210:8096 &}
2. 保存配置:输入指令:“Shift "+":”, 待左下角出现输入提示行,然后输入:“wq”,点击回车。最后输入指令: "reboot",重启旁路由。
3. 检查开机启动项是否成功:出现“autosocat”项表示成功,检查是否已启用,如果没有启动,则点击启动
四. 测试
手机连接4G,远程访问域名,成功访问远程路由的管理界面。
远程访问域名加端口
至此 实现了基于IPV6的远程访问及本地转发到ipv4的设备。
我是江枫雨,如果觉得有用,多多点赞收藏~