
WI-FI无线中继, 无线桥接, 扩大WIFI信号覆盖范围/面积
有什么用/怎么用
本文仅围绕着有限的硬件投入情况下, 如何扩大WIFI信号覆盖范围/面积. 抛砖引玉, 如果您有更好的方案, 请大方地留言告诉我, 提前感谢
需求:
当无法使用网线将室外或远程的AP连接起来时, 假如没有无线网桥的硬件环境下,
这时可以使用多个K2P将型号从上游K2P中继到远端的K2P, 这样可以轻松实现(仅需电源)WIFI信号的拓展覆盖(增加WIFI信号的覆盖面积)
应用场景, 比如: 需要将WIFI信号覆盖到楼下的区域, 不管是小区还是自建楼, 在没有提前布线预留的情况下, 将可上网的WIFI覆盖到楼下更广阔的区域. 这样方便了在WIFI覆盖范围内无缝地使用上游路由器网络内的全部应用.
记录一下, 方面下一次排查潜在的故障
硬件:
需要多个K2P路由器
软件:
将每个K2P都刷机成为这个系统: © 2011-2022 版权属于 Padavan & N56U project community
比如我使用的固件版本:
| 固件版本: | 3.4.3.9-099_22-07-1 |
| ———————————– | ———————————————————— |
| 这台是室外的K2P, 作为将WIFI信号扩大 | |
| 固件版本: | 4.4.198.9-100_20231021 |
| —————————————— | ———————————————————— |
| 这台是室内, 连接外网ADSL宽带光猫或主路由器 | |
相关内容
实现方法
上游K2P

手动指定: 无线信道
室外中继使用的K2P
作为扩大WIFI信号使用的AP, 在室外负责增加WIFI区域/面积
- 设置路由器模式为

- 设置2.4G的WIFI作为中继用的频道

设置要中继的上游AP的具体信息: SSID, 信道, 加密方式, WIFI密码
故障及解决方案
故障点: 室外K2P
故障详情: 可以连接WIFI, 但是无法获取IP地址
修复过程:
连接室外的WIFI, 然后需要手动修改本机IP地址为192.168.123.110网段,
然后就可以打开网页配置: http://192.168.123.1:8080/
发现是: 中继的2.4G信号OpenWrt的信道变了, 从原来的9信道变到10信道.
这样就需要重新配置室外K2P的‘无线中继’.
设置好, 连接上上级的路由器WIFI以后, 可以正常获取IP地址, 可以上网.
20240928 最新更新如下:
通过在K2P的Lan口设置(手动设置) 192.168.6.112
然后把DHCP手动开启, 设置IP段: 192.168.6.200 – 192.168.6.244
管理地址变更为: http://192.168.6.112:8080/Advanced_APLAN_Content.asp
故障点: 主路由盘的室内上游K2P
故障详情: 连续运行几天, 就会导致室内的上游K2P断网
进一步解决:
手动指定上游路由器到 2.4GWIFI 信道9, 拓展信道13
5GWIFI 信道153
中继K2P的 中继点是2.4G的WIFI, 这回指定了信道9, 理论上不会改变了.
这样在一天以后, 看看还不会不会导致上游路由器断开了外网连接.
一周后(20240913)验证结果: 不是由于这个信道的变化引起的上游K2P断网
断网当时, WIFI连接但无法上网(或网速很慢),
偶然想到, 并查看到Multi stream daemon lite有两个客户端
也就是说: 这种断网极有可能是msd_lite占用了什么带宽导致的.
当即修改了msd_lite的服务端口, 上网速度瞬间恢复; WIFI连接也正常了
相关联的话题/文章: 电视节目资源 – 实测联通移动IPTV组播转单播方案
又一周后(20240926), 仍然出现偶发性断流(断开外网, AP无法上网); 需要手动断电重启才会恢复. 怀疑是硬件的问题(已下单采购新的路由器AC86U)
今天了解到: msd_lite原来可以安装到docker中! 这样它耗路由器硬件性能的问题就解决了.
关键字:
群晖docker安装udpxy或msd_lite
RouterOS中如何安装与使用udpxy(更推荐使用msd_lite组件, 因为msd_lite占用CPU资源更少)
华硕RT-AC86U
刷入 最新官改测试..
路由器管理的IP: 192.168.50.1
admin:00000
4:14pm
1. 设置pC机 ip到手动 192.168.1.100
2. 设置Mac ip到192.168.1.11; 用于远程协助PC机的连接
3. 操作PC机的华硕固件刷新Exe应用程序
ASUS 救援模式版本 2.1.0.3
版本 2.1.0.3
1.25 MB
2021/10/27
支援操作系统: Windows XP/7/8/8.1/10/11
来源官网下载 https://www.asus.com.cn/supportonly/rt-ac86u/helpdesk_download?model2Name=RT-AC86U
救援模式实测https://52asus.com/thread-34-1-1.html
4:41pm 直接在WEB界面刷
doc: https://www.koolcenter.com/article/firmware/6_download/official_mod/40_rt-ac86u_official_mod/
[20240927测试中 RT-AC86U_386.10_0]
1. https://fw.koolcenter.com/KoolCenter_Merlin_New_Gen_386/RT-AC86U/
RT-AC86U_386.10_0_cferom_ubi_koolcenter.w 81.9 MiB 2023-05-03 20:47
官改
2. https://www.koolcenter.com/fw/device/rt-ac86u/merlin
RT-AC86U_386.9_0_cferom_ubi_koolcenter.w 81.8 MiB 2023-05-03 20:47
梅林改
www.speedtest.cn(连接大连联通节点)
测速发现上传又明细提升(达到93+速度), 下载不变稳定在260左右
AP模式 获取到的WAN口IP为: http://192.168.6.115/Main_Login.asp
重新设置:
- TP1Z按重置按钮10s, 重新设置网络; 重新输入WIFI密码 和 设备的安全密码
- 由于摄像头都重新设置了, 重新推流启动: supervisorctl restart ffmpeg
- 中继的K2P
- 必须要关闭新的AC86U热点OpenWrt, 手动设置的192.168.123.12改网段才会工作
- 重新配置中继(无线桥接)http://192.168.123.1:8080/Advanced_WMode2g_Content.asp
- 正常中继了, 锁定了使用相同的WIFI 2.4G信道: 11信道
- 所有的远程WIFI插座都自动识别, 自动跳跃到新的路由器AC86U
下一步:
-
设置AC86U打开SSH http://192.168.6.115/Advanced_System_Content.asp
-
无法正常登陆
-
软件中心-插件离线安装
· 通过本页,你可以上传插件的离线安装包来安装插件;
· 离线安装会自动解压tar.gz后缀的压缩包,识别压缩包一级目录下的install.sh文件并执行。
AC86U打开SSH
ssh admin@192.168.6.115
admin@192.168.6.115's password:
Connection closed by 192.168.6.115 port 22
#第二天尝试 - 正常了
ssh admin@192.168.6.115
admin@192.168.6.115's password:
ASUSWRT-Merlin RT-AC86U 386.10_0 Tue May 2 16:39:01 UTC 2023
admin@RT-AC86U-A4C8:/tmp/home/root#
如果你的华硕路由器安装了第三方固件,并在固件安装了软件中心,通过离线安装的方式安装某软件时收到提示 “离线安装包名有非法关键词”,那可以通过上面的步骤登录路由器系统,然后输入以下命令:
sed -i ‘s/\tdetect_package/\t# detect_package/g’ /koolshare/scripts/ks_tar_install.sh
插入一个64G的SD卡到AC86U的USB3.0口(由于读卡器是2.0, 被识别成2.0)

创建USB上的虚拟内存文件

umount /dev/sda1
umount: can't unmount /tmp/mnt/AC86U: Device or resource busy
#AC86U路由器有一个坏块
admin@RT-AC86U-A4C8:/tmp/home/root# dmesg|grep "bad block"
nand_read_bbt: bad block at 0x0000001a0000
# 这将umount所有的文件系统, 需要重启路由器
umount -a -r -l -f /dev/sda1

添加USB2JFFS(USB2JFFS – 用U盘来挂载jffs), 让安装软件跑到U盘上面去

开启的话需要在软件中心, 打开USB2JFFS, 然后 选择挂载路径(默认): /tmp/mnt/AC86U

msd_lite设置
admin@RT-AC86U-A4C8:/tmp/home/root# opkg install msd
Installing msd (3.01.0-1) to root...
Downloading https://bin.entware.net/aarch64-k3.10/msd_3.01.0-1_aarch64-3.10.ipk
Configuring msd.
#目前在386.10版本上,路由器开启ssh,进入后
1. amtm >
2. ep >
3. opkg install msd
4. service msd即可运行; 我用的是: msd -c msd.conf
5. 查看日志: cd /opt/var/log; 会有msd.log文件
admin@RT-AC86U-A4C8:/tmp/mnt/AC86U/entware/etc# msd
Multi stream daemon 3.01.0 -- (c) Rozhuk Ivan <rozhuk.im@gmail.com>
BSD licence. Website: https://github.com/rozhuk-im/msd
Build: Jul 23 2024 11:34:57, Release
usage: [-d] [-v] [-c file]
[-p PID file] [-u uid|usr -g gid|grp]
-h usage (this screen)
-d become daemon
-c file config file
-p PID file file name to store PID
-u uid|user change uid
-g gid|group change gid
-v verbose
下一步: 设置MSD; 我的有组播的网线口是插在了: LAN1
默认生成的msd.conf
<?xml version="1.0" encoding="UTF-8"?>
<!--
Sizes in kb, time in seconds
-->
<!--
<skt> <rcvLoWatermark>XXXX</rcvLoWatermark> - DOES NOT WORK on Linux!
man socket(7):
...
The select(2) and poll(2) system calls currently do not respect the SO_RCVLOWAT
setting on Linux, and mark a socket readable when even a single byte of data is
available.
...
-->
<!--
XML validators:
- http://www.xmlvalidation.com/
- xmllint - -noout msd.conf
"- -": remove space before arg.
install: /usr/ports/textproc/libxml2
-->
<msd>
<log>
<file>/opt/var/log/msd.log</file>
</log>
<threadPool>
<threadsCountMax>3</threadsCountMax>
<!-- 0 = auto -->
<fBindToCPU>yes</fBindToCPU>
<!-- Bind threads to CPUs. -->
<fCacheGetTimeSyscall>yes</fCacheGetTimeSyscall>
<!-- Cache gettime() syscalls.. -->
<timerGranularity>100</timerGranularity>
<!-- 1/1000 sec -->
</threadPool>
<systemResourceLimits>
<!-- "unlimited" - value valid only in this section! -->
<maxOpenFiles>8192</maxOpenFiles>
<!-- Numbers only! -->
<maxCoreFileSize>unlimited</maxCoreFileSize>
<maxMemLock>unlimited</maxMemLock>
<processPriority>-10</processPriority>
<!-- Program scheduling priority. setpriority(). Hi: -20, Low: 20, Default: 0 -->
</systemResourceLimits>
<!-- HTTP server -->
<!-- Sizes in kb, time in seconds -->
<HTTP>
<!-- HTTP server settings. -->
<skt>
<!-- Defaults for all bindings. -->
<backlog>-1</backlog>
<rcvBuf>0</rcvBuf>
<sndBuf>0</sndBuf>
<rcvTimeout>30</rcvTimeout>
<sndTimeout>30</sndTimeout>
<fKeepAlive>no</fKeepAlive>
<keepAliveIDLEtime>0</keepAliveIDLEtime>
<keepAliveProbesInterval>0</keepAliveProbesInterval>
<keepAliveNumberOfProbes>0</keepAliveNumberOfProbes>
<congestionControl />
<!-- TCP_CONGESTION: replace congestion control from OS default -->
</skt>
<ioBufInitSize>4</ioBufInitSize>
<!-- HTTP request receive buf initial size. -->
<ioBufMaxSize>4</ioBufMaxSize>
<!-- HTTP request receive max buf size. -->
<bindList>
<bind>
<!-- All possible bind settings example. -->
<backlog>1024</backlog>
<rcvBuf>4</rcvBuf>
<sndBuf>256</sndBuf>
<rcvTimeout>30</rcvTimeout>
<sndTimeout>30</sndTimeout>
<fKeepAlive>yes</fKeepAlive>
<keepAliveIDLEtime>600</keepAliveIDLEtime>
<keepAliveProbesInterval>8</keepAliveProbesInterval>
<keepAliveNumberOfProbes>4</keepAliveNumberOfProbes>
<congestionControl>htcp</congestionControl>
<!-- TCP_CONGESTION: replace congestion control from OS default -->
<address>192.168.1.1:7088</address>
<ifName>vlan777</ifName>
<!-- Get IP address and replace in 'address' before bind. -->
<hostnameList>
<!-- Host names for this bind. -->
<hostname>megahost.sample</hostname>
</hostnameList>
</bind>
<bind>
<address>0.0.0.0:7088</address>
</bind>
<bind>
<address>0.0.0.0:40788</address>
</bind>
<bind>
<address>[::]:7088</address>
</bind>
<bind>
<address>[::1]:7088</address>
<hostnameList>
<!-- Host names for this bind. -->
<hostname>localhost</hostname>
</hostnameList>
</bind>
<bind>
<address>127.0.0.1:7088</address>
<hostnameList>
<!-- Host names for this bind. -->
<hostname>localhost</hostname>
</hostnameList>
</bind>
</bindList>
<hostnameList>
<!-- Host names for all bindings. -->
<hostname>*</hostname>
<hostname>netlab.linkpc.net</hostname>
<hostname>www.netlab.linkpc.net</hostname>
<hostname>netlab.dhis.org</hostname>
<hostname>net-lab.slyip.net</hostname>
</hostnameList>
</HTTP>
<limits>
<!-- Client params limits (from http request args). -->
<precacheMin>0</precacheMin>
<!-- No less than StreamHUB/skt/rcvLoWatermark, def: 0 -->
<precacheMax>8192</precacheMax>
<!-- max/def: StreamHUB/ringBufSize -->
<sndBlockSizeMin>32</sndBlockSizeMin>
<!-- Min send block size. -->
<sndBlockSizeMax>512</sndBlockSizeMax>
<!-- Max send block size. -->
</limits>
<hubProfileList>
<!-- Stream hub profiles templates. -->
<hubProfile>
<name>default</name>
<fPrecacheWait>no</fPrecacheWait>
<!-- For new clients: wait untill data in ring buf less than client want to receive in first time. -->
<fDropSlowClients>yes</fDropSlowClients>
<!-- Disconnect slow clients. -->
<fUsePollingForSend>yes</fUsePollingForSend>
<!-- Add lagged client socket descriptor to OS io polling (kqueue/epoll). -->
<fZeroCopyOnSend>no</fZeroCopyOnSend>
<!-- Enable Zero Copy on send to clients. -->
<fZeroSrcBitratePersistent>no</fZeroSrcBitratePersistent>
<!-- Do not destroy hub if no data received from all sources. -->
<fZeroCliPersistent>no</fZeroCliPersistent>
<!-- Do not destroy hub if no connected clients, othertwice self destroy after zeroCliTimeout seconds. -->
<zeroCliTimeout>60</zeroCliTimeout>
<!-- Time to destroy hub if no connected clients. Ignored if fZeroCliPersistent set. -->
<skt>
<!-- Client socket tunings. -->
<sndBuf>1024</sndBuf>
<!-- Max send block size, apply to clients sockets only, must be > rcvLoWatermark. -->
<sndLoWatermark>64</sndLoWatermark>
<!-- Default send block size. Can be overwritten by arg from user request. -->
<sndTimeout>30</sndTimeout>
<!-- Send data to client timeout. -->
<fHalfClosedRcv>no</fHalfClosedRcv>
<!-- Enable shutdown(SHUT_RD) for clients. -->
<fTCPNoDelay>no</fTCPNoDelay>
<!-- Enable TCP_NODELAY for clients. -->
<fTCPNoPush>no</fTCPNoPush>
<!-- Enable TCP_NOPUSH / TCP_CORK for clients. -->
<congestionControl>htcp</congestionControl>
<!-- TCP_CONGESTION: this value replace/overwrite(!) all others cc settings: cc from http req args, http server settings, OS default -->
</skt>
<precache>4096</precache>
<!-- Default pre cache size. Can be overwritten by arg from user request. -->
<headersList>
<!-- Custom HTTP headers (sended before stream). -->
<header>Pragma: no-cache</header>
<header>Content-Type: video/mpeg</header>
<header>ContentFeatures.DLNA.ORG: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000</header>
<header>TransferMode.DLNA.ORG: Streaming</header>
</headersList>
<HLS>
<!-- HLS settings. Require fMPEG2TSAnalyzing on sources. -->
<fEnable>yes</fEnable>
<targetDuration>5</targetDuration>
<!-- EXT-X-TARGETDURATION. -->
</HLS>
<sourceProfile>
<!-- Defaults for all sources. -->
<MPEG2TS>
<!-- Overwrite hub param same name flag if set. -->
<fEnable>yes</fEnable>
<!-- Enable MPEG2-TS analyzer. Overwrite hub param same name flag if set. -->
<filterPIDList>
<PID>reset</PID>
<!-- Clear PIDs filtering list. -->
<PID>16</PID>
<!-- Drop NIT PID. -->
<PID>17</PID>
<!-- Drop SDT PID. -->
<PID>18</PID>
<!-- Drop EIT PID. -->
<PID>null</PID>
<!-- = 8191 Drop NULL PID. -->
<PID>unknown</PID>
<!-- Drop all unknown PIDs. -->
</filterPIDList>
</MPEG2TS>
<ringBufSize>65536</ringBufSize>
<!-- Stream receive ring buffer size. -->
<ringBufStorePath>shm</ringBufStorePath>
<!-- Only if fZeroCopyOnSend set. Path to store file with ring buf. "shm" = use posix shared memory. -->
<errorRateInterval>60</errorRateInterval>
<!-- Error rate calculation interval. Work only if fMPEG2TSAnalyzing set. -->
<errorRateMax>10</errorRateMax>
<!-- Error rate max value before change source status to: STREAM_ERRORS. Work only if fMPEG2TSAnalyzing set. overwrite all sources same name value if set to nonzero. -->
<skt>
<rcvBuf>1024</rcvBuf>
<!-- Socket recv buf size. -->
<rcvLoWatermark>48</rcvLoWatermark>
<!-- Actual cli_snd_block_min if polling is off. -->
<rcvTimeout>10</rcvTimeout>
<!-- STATUS, recv timeout. -->
<fHalfClosedSnd>no</fHalfClosedSnd>
<!-- Enable shutdown(SHUT_WR) for clients. -->
</skt>
</sourceProfile>
</hubProfile>
<hubProfile>
<name>default-HD</name>
<fPrecacheWait>no</fPrecacheWait>
<!-- For new clients: wait untill data in ring buf less than client want to receive in first time. -->
<fDropSlowClients>yes</fDropSlowClients>
<!-- Disconnect slow clients. -->
<fUsePollingForSend>yes</fUsePollingForSend>
<!-- Add lagged client socket descriptor to OS io polling (kqueue/epoll). -->
<fZeroCopyOnSend>no</fZeroCopyOnSend>
<!-- Enable Zero Copy on send to clients. -->
<fZeroSrcBitratePersistent>no</fZeroSrcBitratePersistent>
<!-- Do not destroy hub if no data received from all sources. -->
<fZeroCliPersistent>no</fZeroCliPersistent>
<!-- Do not destroy hub if no connected clients, othertwice self destroy after zeroCliTimeout seconds. -->
<zeroCliTimeout>60</zeroCliTimeout>
<!-- Time to destroy hub if no connected clients. Ignored if fZeroCliPersistent set. -->
<skt>
<!-- Client socket tunings. -->
<sndBuf>1024</sndBuf>
<!-- Max send block size, apply to clients sockets only, must be > rcvLoWatermark. -->
<sndLoWatermark>64</sndLoWatermark>
<!-- Default send block size. Can be overwritten by arg from user request. -->
<sndTimeout>30</sndTimeout>
<!-- Send data to client timeout. -->
<fHalfClosedRcv>no</fHalfClosedRcv>
<!-- Enable shutdown(SHUT_RD) for clients. -->
<fTCPNoDelay>no</fTCPNoDelay>
<!-- Enable TCP_NODELAY for clients. -->
<fTCPNoPush>no</fTCPNoPush>
<!-- Enable TCP_NOPUSH / TCP_CORK for clients. -->
<congestionControl>htcp</congestionControl>
<!-- TCP_CONGESTION: this value replace/overwrite(!) all others cc settings: cc from http req args, http server settings, OS default -->
</skt>
<precache>8192</precache>
<!-- Default pre cache size. Can be overwritten by arg from user request. -->
<headersList>
<!-- Custom HTTP headers (sended before stream). -->
<header>Pragma: no-cache</header>
<header>Content-Type: video/mpeg</header>
<header>ContentFeatures.DLNA.ORG: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000</header>
<header>TransferMode.DLNA.ORG: Streaming</header>
</headersList>
<sourceProfile>
<!-- Defaults for all sources. -->
<MPEG2TS>
<!-- Overwrite hub param same name flag if set. -->
<fEnable>yes</fEnable>
<!-- Enable MPEG2-TS analyzer. Overwrite hub param same name flag if set. -->
<filterPIDList>
<PID>reset</PID>
<!-- Clear PIDs filtering list. -->
<PID>16</PID>
<!-- Drop NIT PID. -->
<PID>17</PID>
<!-- Drop SDT PID. -->
<PID>18</PID>
<!-- Drop EIT PID. -->
<PID>null</PID>
<!-- = 8191 Drop NULL PID. -->
<PID>unknown</PID>
<!-- Drop all unknown PIDs. -->
</filterPIDList>
</MPEG2TS>
<ringBufSize>131072</ringBufSize>
<!-- Stream receive ring buffer size. -->
<ringBufStorePath>shm</ringBufStorePath>
<!-- Only if fZeroCopyOnSend set. Path to store file with ring buf. "shm" = use posix shared memory. -->
<errorRateInterval>60</errorRateInterval>
<!-- Error rate calculation interval. Work only if fMPEG2TSAnalyzing set. -->
<errorRateMax>10</errorRateMax>
<!-- Error rate max value before change source status to: STREAM_ERRORS. Work only if fMPEG2TSAnalyzing set. overwrite all sources same name value if set to nonzero. -->
<skt>
<rcvBuf>1024</rcvBuf>
<!-- Socket recv buf size. -->
<rcvLoWatermark>48</rcvLoWatermark>
<!-- Actual cli_snd_block_min if polling is off. -->
<rcvTimeout>10</rcvTimeout>
<!-- STATUS, recv timeout. -->
<fHalfClosedSnd>no</fHalfClosedSnd>
<!-- Enable shutdown(SHUT_WR) for clients. -->
</skt>
</sourceProfile>
</hubProfile>
</hubProfileList>
<sourceProfileList>
<!-- Stream source profiles templates. -->
<sourceProfile>
<name>multicast-udp-default</name>
<MPEG2TS>
<!-- Overwrite hub param same name flag if set. -->
<fEnable>yes</fEnable>
<!-- Enable MPEG2-TS analyzer. Overwrite hub param same name flag if set. -->
<filterPIDList>
<PID>reset</PID>
<!-- Clear PIDs filtering list. -->
<PID>16</PID>
<!-- Drop NIT PID. -->
<PID>17</PID>
<!-- Drop SDT PID. -->
<PID>18</PID>
<!-- Drop EIT PID. -->
<PID>null</PID>
<!-- = 8191 Drop NULL PID. -->
<PID>unknown</PID>
<!-- Drop all unknown PIDs. -->
</filterPIDList>
</MPEG2TS>
<ringBufSize>32768</ringBufSize>
<!-- Stream receive ring buffer size. Overwrite hub params same name value if set. -->
<ringBufStorePath>shm</ringBufStorePath>
<!-- Only if fZeroCopyOnSend set. Path to store file with ring buf. "shm" = use posix shared memory. Overwrite hub params same name value if set. -->
<errorRateInterval>60</errorRateInterval>
<!-- Error rate calculation interval. Work only if fMPEG2TSAnalyzing set. Overwrite hub params same name value if set o. -->
<errorRateMax>10</errorRateMax>
<!-- Error rate max value before change source status to: STREAM_ERRORS. Work only if fMPEG2TSAnalyzing set. Overwrite hub params same name value if set. -->
<skt>
<rcvBuf>1024</rcvBuf>
<!-- Socket recv buf size. -->
<rcvLoWatermark>48</rcvLoWatermark>
<!-- Actual cli_snd_block_min if polling is off. -->
<rcvTimeout>10</rcvTimeout>
<!-- STATUS, recv timeout. -->
<fHalfClosedSnd>no</fHalfClosedSnd>
<!-- Enable shutdown(SHUT_WR) for clients. -->
</skt>
<!-- Source connection specific info. -->
<udp>
<!-- For: udp, udp-rtp, multicast-udp and multicast-udp-rtp. -->
<address>239.0.0.22:1234</address>
</udp>
<multicast>
<!-- For: multicast-udp and multicast-udp-rtp. -->
<ifName>lan0</ifName>
<!-- For multicast receive. -->
</multicast>
</sourceProfile>
<sourceProfile>
<name>tcp-http-default</name>
<MPEG2TS>
<!-- Overwrite hub param same name flag if set. -->
<fEnable>yes</fEnable>
<!-- Enable MPEG2-TS analyzer. Overwrite hub param same name flag if set. -->
<filterPIDList>
<PID>reset</PID>
<!-- Clear PIDs filtering list. -->
<PID>16</PID>
<!-- Drop NIT PID. -->
<PID>17</PID>
<!-- Drop SDT PID. -->
<PID>18</PID>
<!-- Drop EIT PID. -->
<PID>null</PID>
<!-- = 8191 Drop NULL PID. -->
<PID>unknown</PID>
<!-- Drop all unknown PIDs. -->
</filterPIDList>
</MPEG2TS>
<ringBufSize>32768</ringBufSize>
<!-- Stream receive ring buffer size. Overwrite hub params same name value if set. -->
<ringBufStorePath>shm</ringBufStorePath>
<!-- Only if fZeroCopyOnSend set. Path to store file with ring buf. "shm" = use posix shared memory. Overwrite hub params same name value if set. -->
<errorRateInterval>60</errorRateInterval>
<!-- Error rate calculation interval. Work only if fMPEG2TSAnalyzing set. Overwrite hub params same name value if set o. -->
<errorRateMax>10</errorRateMax>
<!-- Error rate max value before change source status to: STREAM_ERRORS. Work only if fMPEG2TSAnalyzing set. Overwrite hub params same name value if set. -->
<skt>
<rcvBuf>1024</rcvBuf>
<!-- Socket recv buf size. -->
<rcvLoWatermark>48</rcvLoWatermark>
<!-- Actual cli_snd_block_min if polling is off. -->
<rcvTimeout>30</rcvTimeout>
<!-- STATUS, recv timeout. -->
<fHalfClosedSnd>no</fHalfClosedSnd>
<!-- Enable shutdown(SHUT_WR) for clients. -->
</skt>
<!-- Source connection specific info. -->
<tcp>
<!-- For: tcp- and tcp-http. -->
<remonteHostname>93.95.99.231:9500</remonteHostname>
<connectTimeout>5</connectTimeout>
<!-- Connect timeout. -->
<reconnectInterval>5</reconnectInterval>
<!-- Retry connect delay. -->
<reconnectCount>4294967295</reconnectCount>
<!-- Retry count. -->
</tcp>
<http>
<urlPath>http/93.95.99.231:9500/udp/234.1.1.26:10000</urlPath>
<headersList>
<!-- Custom HTTP headers for request. -->
<header>Accept: */*</header>
<header>User-Agent: NSPlayer/7.10.0.3059</header>
<header>getcontentFeatures.dlna.org: 1</header>
</headersList>
</http>
</sourceProfile>
</sourceProfileList>
<streamProxy>
<!-- Auto generated stream hubs from user request. -->
<multicast>
<fEnable>yes</fEnable>
<hubProfileName>default</hubProfileName>
<!-- Profile template. -->
<sourceProfileName>multicast-udp-default</sourceProfileName>
<!-- Profile template. -->
</multicast>
<http>
<fEnable>yes</fEnable>
<hubProfileName>default</hubProfileName>
<!-- Profile template. -->
<sourceProfileName>tcp-http-default</sourceProfileName>
<!-- Profile template. -->
</http>
<transparent>
<!-- Like HTTP, but 'host' header point to other host. -->
<fEnable>yes</fEnable>
<hubProfileName>default</hubProfileName>
<!-- Profile template. -->
<sourceProfileName>tcp-http-default</sourceProfileName>
<!-- Profile template. -->
</transparent>
</streamProxy>
<channelList>
<includeFile>/home/rim/docs/Progs/msd/msd/conf/msd_channels.conf</includeFile>
<c-hannel>
<name>Test1.ts</name>
<!-- Channel name, used in request: /channel/... . -->
<hubProfileName>default</hubProfileName>
<!-- Profile template. -->
<precache>8192</precache>
<skt>
<sndBuf>1024</sndBuf>
<!-- Max send block size, apply to clients sockets only, must be > rcvLoWatermark. -->
</skt>
<sourceList>
<source>
<type>multicast-udp</type>
<sourceProfileName>multicast-udp-default</sourceProfileName>
<!-- Profile template name. -->
<udp>
<address>239.0.0.2:1234</address>
</udp>
<multicast>
<ifName>vlan777</ifName>
</multicast>
</source>
<source>
<type>multicast-udp</type>
<sourceProfileName>multicast-udp-default</sourceProfileName>
<!-- Profile template name. -->
<udp>
<address>239.0.0.3:1234</address>
</udp>
<multicast>
<ifName>vlan777</ifName>
</multicast>
</source>
<source>
<type>tcp-http</type>
<sourceProfileName>tcp-http-default</sourceProfileName>
<!-- Profile template. -->
<tcp>
<!-- For: tcp- and tcp-http. -->
<remonteHostname>93.95.99.231:9500</remonteHostname>
</tcp>
<http>
<urlPath>udp/234.1.1.26:10000</urlPath>
</http>
</source>
</sourceList>
</c-hannel>
</channelList>
</msd>
我设置修改的部分为(bro0.41 和 IP地址):
<address>192.168.6.115:7088</address>
<ifName>bro0.41</ifName> <!-- Get IP address and replace in 'address' before bind. -->
运行: msd -c ./msd.conf
admin@RT-AC86U-A4C8:/tmp/mnt/AC86U/entware/etc# msd -d -c ./msd.conf
运行日志:
admin@RT-AC86U-A4C8:/tmp/mnt/AC86U/entware/etc# cd /opt/var/log
admin@RT-AC86U-A4C8:/tmp/mnt/AC86U/entware/var/log# ls
msd.log
admin@RT-AC86U-A4C8:/tmp/mnt/AC86U/entware/var/log# cat msd.log
[2024-09-28 13:48:57]: msd 3.01.0: started
[2024-09-28 13:48:57]: Build: Jul 23 2024 11:34:57, Release
[2024-09-28 13:48:57]: CPU count: 2
[2024-09-28 13:48:57]: descriptor table size: 1024 (max files)
[2024-09-28 13:48:57]: Thread 1 started...
[2024-09-28 13:48:57]: Bind thread 1 to CPU 1
[2024-09-28 13:48:57]: Thread 2 started...
[2024-09-28 13:48:57]: hostname: *
[2024-09-28 13:48:57]: hostname: netlab.linkpc.net
[2024-09-28 13:48:57]: hostname: www.netlab.linkpc.net
[2024-09-28 13:48:57]: hostname: netlab.dhis.org
[2024-09-28 13:48:57]: hostname: net-lab.slyip.net
[2024-09-28 13:48:57]: Bind thread 2 to CPU 0
[2024-09-28 13:48:57] http_srv_xml_load_bind, line 292: HTTP server: cant get addr for: bro0.41 - error 29: b
.slyip.net
et
[2024-09-28 13:48:57] http_srv_xml_load_start, line 348: http_srv_xml_load_bind() - error 29: h�_�
[2024-09-28 13:48:57]: bind 0.0.0.0:7088, backlog = -1, tcp_cc =
[2024-09-28 13:48:57]: bind 0.0.0.0:40788, backlog = -1, tcp_cc =
[2024-09-28 13:48:57]: bind [:]:7088, backlog = -1, tcp_cc =
[2024-09-28 13:48:57]: hostname: localhost
[2024-09-28 13:48:57] http_srv_bind_add, line 629: err_out - error 99: ��<�U
[2024-09-28 13:48:57] http_srv_xml_load_start, line 361: http_srv_bind_add(): [::]:7088, backlog = -1, tcp_cc
= - error 99: ȇ��גӛ��_�
[2024-09-28 13:48:57]: hostname: localhost
[2024-09-28 13:48:57]: bind 127.0.0.1:7088, backlog = -1, tcp_cc =
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 17, mem=0, count=0
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 17, mem=55c23ce6e0, count=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 18, mem=55c23ce6e0, coun
t=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 18, mem=55c23ce6e0, count=2
[2024-09-28 13:48:57] mpeg2_ts_settings_copy, line 231: mem=55c23ce6e0, count=2
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 17, mem=55c23ceb30, coun
t=0
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 17, mem=55c23ceb30, count=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 18, mem=55c23ceb30, coun
t=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 18, mem=55c23ceb30, count=2
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 17, mem=0, count=0
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 17, mem=55c23cec20, count=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 18, mem=55c23cec20, coun
t=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 18, mem=55c23cec20, count=2
[2024-09-28 13:48:57] mpeg2_ts_settings_copy, line 231: mem=55c23cec20, count=2
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 17, mem=55c23cec40, coun
t=0
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 17, mem=55c23cec40, count=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 18, mem=55c23cec40, coun
t=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 18, mem=55c23cec40, count=2
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 17, mem=0, count=0
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 17, mem=55c23ced90, count=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 18, mem=55c23ced90, coun
t=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 18, mem=55c23ced90, count=2
[2024-09-28 13:48:57] mpeg2_ts_settings_copy, line 231: mem=55c23ced90, count=2
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 17, mem=55c23cedb0, coun
t=0
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 17, mem=55c23cedb0, count=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 198: Try to add filtering PID 18, mem=55c23cedb0, coun
t=1
[2024-09-28 13:48:57] mpeg2_ts_xml_load_settings, line 209: Added filtering PID 18, mem=55c23cedb0, count=2
[2024-09-28 13:48:57]: Thread 0 started...
[2024-09-28 13:48:57]: Bind thread 0 to CPU 0
[2024-09-28 13:48:57]: Load channels: from main config.
[2024-09-28 13:48:57]: Load channels: from included configs.
[2024-09-28 13:48:57]: Load channels: from "/home/rim/docs/Progs/msd/msd/conf/msd_channels.conf"
[2024-09-28 13:48:57] msd_load_timer_cb, line 475: Load channels: FAIL from "/home/rim/docs/Progs/msd/msd/con
f/msd_channels.conf" - error 2: ȇ��גӛ��_�
[2024-09-28 13:49:24]: error: no http header, client ip: 192.168.6.221:53758
[2024-09-28 13:50:38] mpeg2_ts_settings_copy, line 231: mem=55c23ceb30, count=2
[2024-09-28 13:50:38]: /udp/239.3.1.241:8000@: Created.
[2024-09-28 13:50:38] mpeg2_ts_settings_copy, line 231: mem=55c23ce6e0, count=2
[2024-09-28 13:50:38] mpeg2_ts_settings_copy, line 231: mem=7fa4001ad0, count=2
[2024-09-28 13:50:38] mpeg2_ts_settings_copy, line 231: mem=7fac001ab0, count=2
[2024-09-28 13:50:38]: /udp/239.3.1.241:8000@ - 0/0: waiting for data [0: OK ]...
[2024-09-28 13:50:38]: /udp/239.3.1.241:8000@ - 192.168.6.221:53843: attached, cli_count = 1
[2024-09-28 13:50:38]: /udp/239.3.1.241:8000@ - 1/1: running [0: OK ]...
[2024-09-28 13:51:04]: Thread 1 exited...
[2024-09-28 13:51:04]: Thread 0 exited...
[2024-09-28 13:51:04]: /udp/239.3.1.241:8000@ - 192.168.6.221:53843: deattached, cli_count = 0
[2024-09-28 13:51:04]: /udp/239.3.1.241:8000@: Destroyed.
[2024-09-28 13:51:04]: exiting.
本章节鸣谢: 梅林固件下使用msdlite求助
中继K2P
中继成功, 但无DHCP功能, 导致客户端无法自动获取IP地址
frpc 内网穿透管理AC86U
修改了frpc在群晖中的设置, 从原来的源头192.168.6.243 到现在的 192.168.6.115; 需要进群晖管理界面, 呼叫出:任务管理器, 然后看到之前的 frpc进程, 然后先kill掉, 重新在运行起来:
nohup /usr/local/frp/frpc -c /usr/local/frp/frpc.ini >/dev/null 2>&1 &
http://127.0.0.1:22224/Main_Login.asp
admin:00000
AC86U做AP不定时失效
失效原因未知; 当前的WIFI用户不受影响, 但是新的手机等无法连接到这个AP的WIFI点.
解决办法: AP 每天重启 AC86U
同时设置了NAS中定时任务, 重启 supervisorctl restart ffmpeg

发表回复