电脑数码 篇十八:记录 wireguard+IPv6+IPTV 设置过程,用两台 x-wrt 路由实现异地组网看电视

2023-08-28 23:34:53 17点赞 191收藏 14评论

写作说明:最近创作产量有点高啊,不是我喜欢舞文弄墨记录 wireguard+IPv6+IPTV 设置过程,用两台 x-wrt 路由实现异地组网看电视,而是为下下月家里移动IPTV停播着手准备。有人可能会说,不就区区每月多花20元钱,至于吗?但是蚊子虽小,那也是肉啊!况且经济下行带来的影响下,中国移不动宽带的优惠力度一减再减(加价不加量记录 wireguard+IPv6+IPTV 设置过程,用两台 x-wrt 路由实现异地组网看电视),下个月原手机套餐赠送的宽带和电视到期后,再也没有免费的午餐了,要收200元的安装费,每月还要70元宽带使用费呢。

本文可以说是前面几篇关于异地组网和IPTV文章的优化和提升,内容涉及wireguard、IPv6、ddns动态域名、udpxy等知识,有兴趣的同志可以随着我的介绍动手实操一遍哈。至于稳定性,由于我只是在同一条宽带下的测试,目前还不确定真正拿回老家使用的效果如何。

一、硬件准备

需要两台可刷openwrt的路由器,一台是上篇介绍的已刷x-wrt的极路由4增强版,另一台是前面花30元钱购入的JDC无线宝一代,也给它刷上x-wrt。为什么选择x-wrt,主要是该系统已集成了WireGuard,比自个加装的更容易成功些。

这里还有个小插曲,之前在准备JDC-1系统时,x-wrt.com上还没有适配的系统,刚开始想着采用padavan下设置open微屁恩,折腾了老久握不了手。无奈之下,准备拿出另一台吃灰的小米R2100(在海鲜市场挂了一个多月几乎无人问津),登陆x-wrt,习惯性地在搜索框输入cloud,结果显示有3个,往下一看,一阵狂喜,居然是JDCloud,后面一串不知道代表啥。莫不成是无线宝一代?想着反正已刷不死,何不拿来开刀试试。于是把那台旁路由方案的无线宝当作小白鼠,开搞。

x-wrt终于有适配JDCloud1了x-wrt终于有适配JDCloud1了

插上网线,按住重启键同时插上电源线开机,更新JDCloud x-wrt固件,进度条走完后原来闪烁的蓝色灯熄灭,电脑显示网线已断开,初以为要糟。但凭着多年搞机的经验,按捺住焦急的心情,经过有点漫长的等待,发现网口又有动静了,一会指示灯也亮了,哈哈,这回成绿灯了,果然跟padavan老毛子系统不一样(蓝灯)。进系统一看,虽然闪存比极4P小得多,但同样集成了wireguard。

JDC刷完x-wrt后有个坑需要填。就是路由的各个接口mac地址不固定,我是设置mac绑定才允许上网的,导致刷完后重启路由就上不了网的问题。这可能是新适配系统的一个bug吧。

解决的办法就是去网络>>接口>>设备>>配置,把br-lan、eth0、lan1/2配置成与phy0-ap0相同的MAC地址,wan的MAC地址在此基础上相应加1。如下所示

JDC网口MAC需手动固定JDC网口MAC需手动固定

其他路由一般不需要做此修改。

对于wireguard就不过多介绍了,不了解的可以问度娘。先上拓扑图

拓扑图拓扑图

二、光猫开启IPv6

我的移动宽带原先开启过IPv6,里面的参数又被我动过。导致我的各式路由均获取不到IPv6。经过摸索和学习(B站韩风大佬的视频),对光猫设置如下,看到已是连接状态了。

宽带设置宽带设置LAN侧地址配置-IPv6配置LAN侧地址配置-IPv6配置IPv6已连接IPv6已连接

三、设置IPv6和ddns

之前我有一篇文章也写到过,是修改DHCP文件的,有点麻烦。以下是web网页操作方式,照作就行。

3.1 wan6口配置

网络>>接口>>wan6

wan6接口配置wan6接口配置

3.2 lan口配置

网络>>接口>>lan

lan配置lan配置

保存并应用,客户端网络断开重连一下,如果不行把路由重启试试。

3.3 阿里云域名解析

阿里云的域名解析我用了几年了,续费太贵,所以到期我就换一个。这不又到期了,新换的.fun后缀域名首年才8元费用。到AccessKey管理下创建子账号,ddns设置会用到。

云解析DNS>>域名解析>>解析设置>>添加记录

记录类型:AAAA

主机记录:就是域名前缀,如ab.cd.ef

记录值:到你的x-wrt路由wan6端口查看下,把*.*.*.*/64斜杠前面部分拷贝到这里

状态显示正常就可以回到路由器管理页面操作ddns了。

3.4 wrt路由设置ddns

服务>>动态 DNS(DDNS)>>编辑myddns_ipv6

域名和用户名、密码均用阿里云的域名和用户名、密码均用阿里云的网络选择有获取到IPv6的接口网络选择有获取到IPv6的接口

保存并应用,查看日志是否正常,如果不正常则重启下。

万事具备只欠东风!接下来就该今天的主角——WireGuard登场了!

哦,差点忘了!两台路由的内网IP网段都是192.168.15.0/24,这样是行不通的,配置wireguard之前先把JDC无线宝的网段改成192.168.25.0/24,命名为B路由,保留原网段的极4P路由以下称为A路由,A放在老家,设置udpxy转发,详见拓扑图。

四、WireGuard IPv6组网

大部分设置参照这篇文章,在此谢过Neo博主。WireGuard on OpenWrt+IPv6 组网 | Neo's Blog

为了便于识别两台路由,我把A路由的系统界面修改成OpenWrt2020风格。

OpenWrt2020主题OpenWrt2020主题

4.1 配置 WireGuard 接口

我所了解到,WireGuard是不分客户端和服务端(公和母)的,引用博文“若使用 N 台路由器互相连接,则需要在每台路由器上设置 N-1 个对端,这样可以确保任意两台路由器之间能互相连接。此处假设使用两台路由器来配置互相连接,每台路由器上均需要设置一个对端。”

如果你利用一台路由做IPTV转发,然后给你的亲戚朋友送上已配置好wireguard联网的路由器,再帮他们把安卓电视接收软件如 IPTV Pro 或 PerfectPlayer TV版安装好,快乐地共享吧!呵呵哒,想想而已,要面对不同运营商逐一去配置IPv6就够你受的了。

好了,废话少说。下面开始配置:

(1)A路由

① 网络>>接口>>添加新接口...

新建wg接口新建wg接口

② 接口>> wg >>常规设置,生成新的密钥对,监听端口填写12000,IP地址填入172.16.1.1/16

wg接口常规配置wg接口常规配置

③ 接口>> wg >>高级设置

MTU:填入1280,此处尽量填小值,如果大了会让两端连接速度变慢。什么道理我也搞不明白,照搬博文。

④ 接口>> wg >>防火墙设置

新建一个区域,命名随意。

创建防火墙区域创建防火墙区域

⑤ 保存并应用,完成接口创建

在 状态 – WireGuard 中可以看到 A 路由器的公钥,复制下来,等下要填入路由器 B 的对端设置中。

A路由的公钥A路由的公钥

此时A路由的配置先暂停,因为对端的配置需要用到B路由的公钥,因此,先参照A路由的配置对B路由进行一些操作,然后再回过头来完成A的配置。

(2)B路由

过程可以照着A路由配置,注意B路由在wireguard中的IP地址变成:172.16.2.1/16

wg常规配置wg常规配置

查看B路由的公钥,复制下来

查看B路由公钥查看B路由公钥

配置对端

顺势以B路由为例,配置wg接口的对端,即A路由

接口>> wg >>添加对端,描述可以写routerA,公钥填入前面记下的A路由生成的公钥,私钥不用填,允许的IP填入 172.16.1.1/32 和 192.168.15.0/24,勾选路由允许的IP,端点主机填入对端路由器你在前面ddns设置好的域名,端点端口填入对端路由器的端口12000,持续Keep-Alive按照建议填入25,保存应用所有设置。

B路由wg对端配置B路由wg对端配置

防火墙设置(与博文不同,主要是MSS钳制)

网络>>防火墙>>编辑在wg配置里新建的区域

入站、转发都改为接受,勾选 MSS 钳制,允许转发到目标区域、允许来自源区域的转发都勾选 lan。

防火墙设置防火墙设置

网络>>防火墙>>通信规则,添加一条规则

在 常规设置 中,名称填写 Allow-WireGuard,协议保持默认 TCP+UDP ,源区域选择 wan,目标区域选择 设备(输入),目标端口调入 WireGuard 监听端口 12000,操作选择接受。

通信规则-基本设置通信规则-基本设置

有在B站视频中见到目标地址处,添加如下内容,::110:110/::ffff:ffff:ffff:ffff

我并没有添加,因为已经正常使用了就不做尝试啦。

在 高级设置 中,地址族限制选择 仅 IPv6。

通信规则-高级设置通信规则-高级设置

保存并应用防火墙设置。

在 网络>>接口 页面,重启 wg 接口。

(3)回到A路由继续配置

配置对端,即B路由

接口>> wg >>添加对端,描述可以写routerB,公钥填入前面记下的B路由生成的公钥,私钥不用填,允许的IP填入 172.16.2.1/32 和 192.168.25.0/24,勾选路由允许的IP,端点主机填入对端路由器你在前面ddns设置好的域名,端点端口填入对端路由器的端口12000,持续Keep-Alive按照建议填入25,保存应用所有设置。

A路由防火墙设置,可以照抄B路由的。

(4)完成

两台路由的wg接口都重启后,稍等片刻,在各自路由器的 状态>>WireGuard 中,可以看到另一台路由的连接信息。刚开始我只能在B中看到A的连接,A中木有连上,经故障排查发现是A路由的wg接口配置对端时,误把A自己的公钥填入了,导致连接不成功。

4.2 重启两台路由

可能有些性急的朋友会像我一样,见到wg连接成功就迫不及待地在浏览器中输入远端的IP地址,想试下“毒苹果”的滋味,估计多数会无功而返。开始我还想着会不会还需要设置静态路由表呢,还动手实践了下,搞完重启了下,再进到 状态>>路由,查看路由表,发现比我设置的要多得多。于是把另一台路由也重启了下,才知道不用手动增加静态路由。所以明白了一个道理,设置完成后,要重启。再次强调:

重启两台路由!重启两台路由!重启两台路由!

4.3 配合 WatchCat 使用,守护wg不断线

“当出现问题无法连通对端路由器的时候,如果有自动化的操作可以直接重启接口,就很方便了,省去手动重启操作。”——Neo's Blog

  • opkg update

  • opkg install watchcat luci-app-watchcat luci-i18n-watchcat-zh-cn

(1)安装watchcat

我是在路由的 系统>>软件包 里安装的,先操作 更新列表,再筛选器里输 watchcat ,完成安装

安装watchcat插件安装watchcat插件

(2)配置watchcat

服务>>Watchcat,直接利用已有实例修改。

模式:选择重启接口;周期:调整为1m(1分钟),它表示待1分钟没收到回复就重启接口

要检查的主机:在A路由上的watchcat就填B路由的IP地址 192.168.25.1,在B路由上的watchcat就填A的IP地址 192.168.15.1

接口:选择wg,其余参数默认即可

watchcat配置watchcat配置

这样,在路由器发现无法ping通对端1分钟后将会自动重启wg接口,保证两台路由器持续连接。

五、一些并不必要的测试

5.1 互ping测响应时间

互ping响应时间在2ms左右,太过理想状态了。

5.2 利用iperf3测传输速率

在A路由器的 服务>>终端 中,用root/admin登陆,输入命令(前提是已安装ttyd插件,没有插件的用putty也行)

# 开启 iperf3 服务

  • iperf3 -s

在B路由器终端输入命令:

  • iperf3 -c 192.168.15.1

得到传输速率结果如下图,有点夸张,因为是同一台光猫下的两个百兆口,基本能跑满。

理想状态下的测速理想状态下的测速

等下次回老家再真刀真枪地测试一下。

六、有IPTV的一端设置udpxy,有网的地方就有电视

6.1 A路由设置udpxy

通过WireGuard搭设好异地组网后,当然就是安装udpxy进行组播转单播啦。这部分内容就不再重复造轮子,请看我的上一篇文章吧。

6.2 IPTV抓包

至于广东移动的抓包,还得移步去看第十篇文。

6.3 路由器搭建web服务,用于存放.m3u文件

uHTTPdOpenWrt/LuCI 开发者从零开始编写的 Web 服务器,默认80端口就是用于登陆wrt主界面的,我们要添加自己的web服务,那么只需重新定义一个端口即可。我定义了一个8088端口作为网站端口。

首先使用WinSCP登陆路由器,以A路由为例

记录 wireguard+IPv6+IPTV 设置过程,用两台 x-wrt 路由实现异地组网看电视

先在/usr/目录下新建webfile目录,用于存放.m3u文件

新建web访问的目录新建web访问的目录

把/etc/config目录下的uhttpd复制出来,再编辑

备份后编辑uhttpd备份后编辑uhttpd

编辑/etc/config/uhttpd

记录 wireguard+IPv6+IPTV 设置过程,用两台 x-wrt 路由实现异地组网看电视
  • config uhttpd 'web'

    • list listen_http '0.0.0.0:8088'

    • option home ' /usr/webfiel'

    • option cgi_prefix ' /cgi-bin'

还是用WinSCP将原先整理好的.m3u文件上传到路由的/usr/webfile目录,m3u文件里格式如下

http://192.168.15.1:4022/rtp/239.*.*.*:*

具体要求另外我前面两篇文章。

上传要放在网站的.m3u文件上传要放在网站的.m3u文件

在 服务>>终端 或使用 putty 重启 uhttpd,命令如下

  • /etc/init.d/uhttpd restart

在浏览器中输入:http://192.168.15.1:8088

A路由web搭建完成A路由web搭建完成

同样在B路由器中也搭建好web网站,上传的.m3u文件用同A路由的。

6.4 电脑vlc软件测试播放

媒体>>打开网络串流,网址输入:http://192.168.25.1:8088/51iptv-15.m3u

记录 wireguard+IPv6+IPTV 设置过程,用两台 x-wrt 路由实现异地组网看电视

成功播放。至于电视端如何播放,自行百度找软件吧,我这里用的是 IPTV Pro TV 版。

好啦,折腾暂告一段落,完美收官!

七、后记

7.1 强化进程守护设置

使用了几天,刚开始还是会出现断链情况,于是我又在两端路由上添加了两条静态路由,如下

静态路由(无效果)静态路由(无效果)

感觉没起到什么效果。于是我又回到watchcat,在 ModemManager 接口的名称 里选择wg接口

保险起见,多选一个接口保险起见,多选一个接口

并在下方新增一个 重启接口,如下设置:

要检查的主机:你用于连接wireguard的公网IP或域名

接口:wan

ModemManager 接口的名称:wan6

增加一条重启接口的规则增加一条重启接口的规则

顺便在后面增加一条ping重启规则,一量ping不通 x-wrt.com 或 baidu.com,即触发重新启动路由器。

经过这番补强守护进程的操作,目前运行稳如老狗。

7.2 后续展望

后面在无线宝padavan系统上无意间发现已标配 SoftEther 威皮恩,又在B站上扒拉了一些关于softether的介绍,听了wireguard与之对比分析,说是 softether => wireguard。于是又着手捣鼓 softether 来。

我的思路是利用两台padavan路由,开启softether服务,服务端IPTV桥接到释放出来的一个lan口,对端(其实也是开启softether服务,并非client)桥接接口同样选释放的lan口,这个lan口插上移动机顶盒,打开电视,10%……85%……居然认证登陆成功。

这么多电视节目,“看不完,根本看不完”记录 wireguard+IPv6+IPTV 设置过程,用两台 x-wrt 路由实现异地组网看电视,打开一部免费电视,播放很流畅,呵呵,马上下单给家里的机顶盒找个替身,月底退网去。

正当我喜不自禁手舞足蹈飘飘欲仙时,一盆冷水从天而降,电视直播看不了,打开时有点声响,之后就一直转圈圈。

可以看综合节目和电视回看,却看不了直播。这是个什么道理呢?这对于非IT专业的我来说,实在是个天大的难题啊!希望有大神指点一二,在些谢过!!

softether自带ddnssoftether自带ddns管理级联连接管理级联连接记录 wireguard+IPv6+IPTV 设置过程,用两台 x-wrt 路由实现异地组网看电视

后续再折腾通过softether的常规用法,即连通两地的 internet 网络,直接相当于同 IP 段的大内网,再 udpxy 转发 源IP/接口 填入有IPTV一端的 IP 地址,相信明天更美好。

展开 收起

Xiaomi 小米 AX3000T 双频3000M 家用千兆Mesh路由器 Wi-Fi 6 白色 单个装

Xiaomi 小米 AX3000T 双频3000M 家用千兆Mesh路由器 Wi-Fi 6 白色 单个装

99元起

Xiaomi 小米 BE6500 Pro 双频6500M 家用千兆Mesh无线路由器 Wi-Fi 7

Xiaomi 小米 BE6500 Pro 双频6500M 家用千兆Mesh无线路由器 Wi-Fi 7

535元起

Ruijie 锐捷 雪豹 X30E 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

Ruijie 锐捷 雪豹 X30E 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

159元起

ZTE 中兴 AX3000 巡天版 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

ZTE 中兴 AX3000 巡天版 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

149元起

ASUS 华硕 RT-BE88U 双频7200M 家用Mesh无线路由器 Wi-Fi 7 黑色 单个装

ASUS 华硕 RT-BE88U 双频7200M 家用Mesh无线路由器 Wi-Fi 7 黑色 单个装

1999元起

Xiaomi 小米 BE3600 2.5G版 3600M 双频千兆家用无线路由器 Wi-Fi 7 白色

Xiaomi 小米 BE3600 2.5G版 3600M 双频千兆家用无线路由器 Wi-Fi 7 白色

219元起

Redmi 红米 AX6000 双频5952M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装黑色

Redmi 红米 AX6000 双频5952M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装黑色

319元起

Xiaomi 小米 AX6000 双频6000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

Xiaomi 小米 AX6000 双频6000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

299元起

HUAWEI 华为 BE3 Pro 双频3000M 千兆家用路由器 Wi-Fi 7 黑色

HUAWEI 华为 BE3 Pro 双频3000M 千兆家用路由器 Wi-Fi 7 黑色

249元起

Xiaomi 小米 BE7000 三频千兆Mesh无线路由器 Wi-Fi 7

Xiaomi 小米 BE7000 三频千兆Mesh无线路由器 Wi-Fi 7

406元起

ZTE 中兴 问天BE7200Pro+ 双频7200M 家用千兆Mesh无线路由器 WiFi 7 黑色

ZTE 中兴 问天BE7200Pro+ 双频7200M 家用千兆Mesh无线路由器 WiFi 7 黑色

594元起

京东云 BE6500 千兆无线路由器 WiFi7

京东云 BE6500 千兆无线路由器 WiFi7

586.01元起

TP-LINK 普联 BE5100 双频5100M 家用千兆Mesh无线路由器 Wi-Fi 7 黑色 单个装

TP-LINK 普联 BE5100 双频5100M 家用千兆Mesh无线路由器 Wi-Fi 7 黑色 单个装

279元起

TP-LINK 普联 飞流系列 TL-XDR5480 易展Turbo版 双频5400M 家用千兆Mesh无线路由器 WiFi 6 单个装 灰色

TP-LINK 普联 飞流系列 TL-XDR5480 易展Turbo版 双频5400M 家用千兆Mesh无线路由器 WiFi 6 单个装 灰色

379元起

HUAWEI 华为 Q6 网线版 双频3000M 千兆Mes无线分布式路由器 Wi-Fi 6 一母三子装 白色

HUAWEI 华为 Q6 网线版 双频3000M 千兆Mes无线分布式路由器 Wi-Fi 6 一母三子装 白色

397元起

ZTE 中兴 巡天AX3000Pro+ 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

ZTE 中兴 巡天AX3000Pro+ 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

269元起
14评论

  • 精彩
  • 最新
  • 按照教程一步步走,用的istoreos,出现吊诡的一幕,现在我用ipv6格式的标准地址就是240那个填入端点主机处,一切正常了,但是填入我自己已配置好的ddns域名,就不行,但我正常用浏览器打开域名没问题,反过来说ipv6的地址本身就是ddns解析中复制过来的,这种要怎么解?wireguard版本是22.316.76227-771eb78,我的公网ipv6地址就是用istoreos里的lucky插件配置完成的,解析没有问题,直接外网域名访问端口映射都没问题

    校验提示文案

    提交
  • 用WireGuard 打通了两个城市,4个局域网,局域网之间可以随便访问,不用IPV6啊

    校验提示文案

    提交
    有公网IP的吧,我两边都是移动大内网,想都别想。

    校验提示文案

    提交
    开始没有仔细看你的文章,今天仔细看了一下,还是有收获的,居然有“ Watchcat”这个软件,我之前都是自己写定时脚本判断wg的连接状态,发现wg断掉重启wg接口的;学习了!

    校验提示文案

    提交
    收起所有回复
  • 既然有ipv6公网ip,为啥还要wiregurad连通啊?不是可以直接访问吗?

    校验提示文案

    提交
    直接访问不能等同于异地组网

    校验提示文案

    提交
    收起所有回复
  • 挺高深的样子,玩不转 [喜极而泣]

    校验提示文案

    提交
  • 有这种需求,就是看起来好复杂,研究研究

    校验提示文案

    提交
  • 这两天又GET到了新招式,基于前前前篇padavan方案的,就是利用其自带的SoftEthe喂屁摁,组建虚拟局网,实现漫游看TV。规划方案已立项,尚未实施。

    校验提示文案

    提交
  • 前天腿伤了,请假在家,折腾了两天的SoftEther异地组网,终于搞定了。现在网络、直播、回看,连综合节目都搞定了。

    校验提示文案

    提交
  • wg需要内核支持,小米路由ssh后用zerotier挺好,程序文件占用空间小,挤挤还装alist和科学,目前湖南电信公网与广东移动异地组网没问题

    校验提示文案

    提交
  • 好复杂啊

    校验提示文案

    提交
  • ping延迟2ms啊,这速度像是在同一个机房啊 [赞]

    校验提示文案

    提交
  • 异地组网的瓶颈在于两端的上行带宽,哪怕两边都是100m/20m上下行的,组起来也变成了20m/20m对等,楼主可以研究下tr069组网 [高兴]

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
191
扫一下,分享更方便,购买更轻松