申请公网IP

三大运营商的家庭宽带默认给的都是内网IP,是无法直接搭建Web服务在互联网访问的,想要公网IP需要申请,但貌似比较难申请,家庭宽带和企业宽带有区别,具体如下。

  • 家庭宽带上下行速率不对等,上行速率一般只有下行的十分之一,而宽带的公网传输速率取决于宽带的上行速率
  • 家庭宽带的公网IP指向的是你的主路由(拨号上网路由),主路由通过端口转发可以将局域网的其他设备或服务暴露到公网,注意可能会遭到黑客攻击
  • 家庭宽带是动态公网IP,每隔一段时间就会变化,建站时需要搭配 动态DNS(DDNS) 服务使用
  • 家庭宽带的80、443 端口禁止使用的,80是网站默认的HTTP协议端口,网站搭建好后更换默认端口(或配置端口转发)才能访问,如``example.xdog.top:8888`

光猫配置

运营商的光猫默认作为主路由拨号上网,而且一般用户拿不到后台管理权限,无法配置端口转发也就无法打通公网和内网,那公网IP也是白申请了,所以最重要的就是拿到光猫后台管理权限

注册光猫

在运营商实行随机光猫密码之前可以用此方法恢复光猫后台的默认超级密码,现在只能用于恢复默认的拨号上网网络配置。

忘记超密后无法访问光猫后台时的光猫初始化及注册教程
1、关闭光猫电源。
2、按住复位按钮不放并同时打开电源,大约10秒后光猫红灯由常亮变为闪烁后松开复位按钮(如果不行就等待一分钟后关闭电源再重新打开电源)。
3、访问光猫后台(一般是192.168.1.1),使用宽带的LOID重新注册光猫,注册完毕后运营商会下发光猫配置,包括随机的超级密码。

常见光猫的默认超级账号密码

  • 电信:http://192.168.1.1,管理员用户名:telecomadmin,口令:nE7jA%5m, 已随机
  • 移动:http://192.168.1.1,管理员用户名:CMCCAdmin,口令:aDm8H%MdA
  • 联通:http://192.168.1.1/cu.html ,管理员用户名:CUAdmin,口令:CUAdmin123456admin
  • 华为光猫:http://192.168.100.1,管理员用户名:telecomadmin,口令:admintelecom ; telnet用户名:root,口令:adminHW

以上是以前的默认密码,现在全部是随机超级密码了,获取方法如下:

  1. 直接找装维要(一般都会给的,但拿到后不要乱搞给人家添麻烦)
  2. 抓包(直接抓有点困难,绑定小翼管家抓包?)

开启 Telnet

光猫 Web 后台功能有限,开启 Telnet 后可以通过命令行修改光猫配置,自由度更高

1、开启临时 Telnet,factorymode 下载factorymode python开源版

1
factorymode.exe -l License.manifest open -i 192.168.1.1 -u telecomadmin -pw nE7jA%5m -p 8080

成功后会提示:FactoryModeSuccess:FactoryModeAuth.gch?user=XXXXXXXX&pass=XXXXXXXXX
user=的值是 telnet 的用户名,pass=后面的是 telnet 的密码,失败就换个版本,全部失败只能另寻他法,通过破解光猫配置备份文件或许有戏,配置文件解密:routerpassview

成功进入临时 Telnet 后尽快修改为永久 Telnet,临时账号有时间限制

一些开启 Telnet 的特殊方法:
TEWA-768G:超密登录后台后打开 http://192.168.1.1:8080/enableTelnet.html 即可设置,不过账号权限不够,目前不知道有啥用

Telnet 命令:

开永久telnet(密码Zte521)

1
2
3
4
5
6
7
8
9
10
11
12
sendcmd 1 DB p TelnetCfg #查看Telnet配置
sendcmd 1 DB set TelnetCfg 0 Lan_Enable 1 #开永久telnet
sendcmd 1 DB set TelnetCfg 0 TS_UName root #telnet用户名
sendcmd 1 DB set TelnetCfg 0 TSLan_UName root #telnet用户名_LAN口
sendcmd 1 DB set TelnetCfg 0 TS_UPwd Zte521 #TELNET密码
sendcmd 1 DB set TelnetCfg 0 TSLan_UPwd Zte521 #TELNET密码_LAN口
sendcmd 1 DB set TelnetCfg 0 Max_Con_Num 99
sendcmd 1 DB set TelnetCfg 0 ExitTime 999999
sendcmd 1 DB set TelnetCfg 0 InitSecLvl 3 #修改用户权限
sendcmd 1 DB set TelnetCfg 0 CloseServerTime 9999999
sendcmd 1 DB set TelnetCfg 0 Lan_EnableAfterOlt 1
sendcmd 1 DB save #保存

关闭电信远程控制

1
2
3
4
5
6
7
8
9
# 1.删除TR069网络连接
sendcmd 1 DB p WANC #查询TR069在第几个网络连接(0 1 2 3 4等)
sendcmd 1 DB delr WANC 0 #删除网络连接0(如果在TR069在0里)
# 2.修改远控配置文件(保险起见)
sendcmd 1 DB p MgtServer #查看当前的电信远程控制配置
sendcmd 1 DB set MgtServer 0 URL http://127.0.0.1 #替换远程链接
sendcmd 1 DB set MgtServer 0 Tr069Enable 0 #禁用TR069远程控制
sendcmd 1 DB set MgtServer 0 PeriodicInformEnable 0 #关闭RMS服务周期上报
sendcmd 1 DB save #保存配置

修改超密(能改尽量改掉,是个非常大的安全隐患)

1
2
3
4
# 改超级用户名
sendcmd 1 DB set DevAuthInfo 0 User xxxxxxxx
# 改超级用户密码
sendcmd 1 DB set DevAuthInfo 0 Pass xxxxxxxx

修改区域(省份)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 查询地区代码
/etc/init.d/regioncode
1: 200:Jiangsu
2: 201:Xinjiang
3: 202:Hainan
4: 203:Tianjin
5: 204:Anhui
6: 205:Shanghai
7: 206:Chongqing
8: 207:Beijing
9: 208:Sichuan
10: 209:Shandong
11: 210:Guangdong
12: 211:Hubei
13: 212:Fujian
14: 214:Zhejiang
15: 215:Shanxi
16: 216:Hunan
17: 217:Yunnan
18: 218:Xizang
19: 219:Heilongjiang
20: 220:Guizhou
21: 221:Shanxi2
22: 222:Hebei
23: 223:Ningxia
24: 224:Guangxi
25: 225:Jiangxi
26: 226:Gansu
27: 227:Qinghai
28: 229:Liaoning
29: 230:Jilin
30: 231:Neimeng
31: 232:Henan
32: 234:TelecomInstitute
# 修改区域代码为江苏
upgradetest sdefconf 200

查看系统参数

1
setmac show2

改桥接模式

有了超级密码后就可以改桥接模式了,为什么要改呢?因为光猫默认拨号上网,作为主路由使用,受限于光猫系统,很多功能无法实现,如家庭NAS,加上有些光猫性能差,拨号上网还会导致网络卡顿,所以改桥接让光猫仅负责光电转换,主路由功能交给另外的设备就更有必要了

1、使用超级密码登录光猫后台,找到 网络 -> 网络连接(VLAN 41是上网网络、VLAN 43是IPTV网络、VLAN 45是运营商后台和光猫上网网络)。
2、修改VLAN ID为41的上网网络连接,默认是拨号上网模式,修改为桥接模式即可(如果桥接按钮是灰色不能修改,试试浏览器右键开发人员工具删除元素optiondisabled属性)

1
2
3
4
<select name="connMode" id="WanConnectMode_select" onchange="changeConnMode(this.value)">
<option value="bridge" disabled>桥接</option>
<option value="route">路由</option>
</select>

如果仍然无法修改只能通过 Telnet 修改。

改桥接后只能通过光猫的其他LAN口或者自带的WIFI访问光猫,无法通过拨号LAN口访问,一定程度上提高了安全性。

更换野猫

2.5G网口光猫推荐

  • 中兴7015TV3 不带WIFI ¥150
    • 默认Telnet:u:root,p:Zte521

有些地区限制野猫,最好把相关参数改为旧光猫的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 修改SN码前4位设备品牌代码,例如:ZTEG
setmac 1 2176 ZTEG

# 修改SN码后8位设备随机代码,例如:12345678
setmac 1 2177 12345678

# 修改设备标识码横杠前部,例如:A3B4C5
setmac 1 768 A3B4C5

# 修改设备标识码横杠后部,例如:ZTEG12345678
setmac 1 512 ZTEG12345678

# 修改PASSWORD,例如:abcdefg
setmac 1 2179 abcdefg

# 欺骗IMS命令
sendcmd 1 DB set PDTCTUSERINFO 0 Status 0
sendcmd 1 DB set PDTCTUSERINFO 0 Result 1
sendcmd 1 DB save

IPTV组播

可实现脱离IPTV电视盒子随处看IPTV电视,前提要开通IPTV服务

  1. 设置桥接模式
  2. 单线复用,将 IPTV 的 VLAN 43 和上网的 VLAN 41 都绑定到路由器拨号上网的那个端口(如果机顶盒在拨号上网的网络下直接能自动获取IP看电视就不用进行单线复用、VLAN分离)
  3. VLAN分离,需要支持VLAN分离的路由器,如爱快、OpenWRT
  4. 过IPTV组播信号认证,对路由器接口进行伪装,绕过IPTV机顶盒认证,需要对机顶盒抓包找到认证参数(有些地区不用认证)
  5. 抓取直播源,对机顶盒抓包,提取出 IPTV 频道的 IGMP 组播源(不会抓包可以用别人分享的对应地区直播源)
  6. IGMP 组播源无法直接播放,需要在局域网搭建 udpxy 组播代理服务,转换为rtsp单播源或者udp组播源并重命名为M3U8格式
  7. 将M3U8格式的直播源导入第三方IPTV播放器即可播放,如TiviMate

IPTV直播源抓取

ADB设置代理

1
adb shell settings put global http_proxy 192.168.2.127:8888

8888是 Fiddler 代理端口

ADB清除代理

1
2
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port

如果不会抓或者抓不到直播源可以用别人分享的直播源

组播代理

在内网搭建IPTV组播代理服务,大多数路由系统自带,比如 padavan 路由系统,七八个直播同时开无压力。这里主要记录一下斐讯N1 OpenWrt 系统旁路由的组播代理设置。

测试时发现一个问题:关机状态下连接网线开启网络唤醒的电脑和IPTV组播服务处于同一局域网时会导致IPTV直播卡顿甚至无法播放,广播风暴?

斐讯N1 OpenWrt 旁路由的组播代理设置:

  1. 打开lan口桥接,启用 IGMP 嗅探
  2. udpxy作如下设置,Source IP/Interface 为 lan 口IP,端口任意,最大连接数默认3

若 OpenWrt 固件组播代理相关软件全部安装且没有 bug 就可以播放IPTV了,如果不行就更换固件吧,F大的 OpenWrt 固件5.4内核后的版本都不能播放IPTV,最新可播放版本为 71+o,想看IPTV的暂时不要更新

常见问题及解决方法

一、改桥接模式后光猫自带WIFI无法上网
方法1:桥接到TRO96管理通道?骚操作,偶尔看到的,暂不知如何实现
方法2:从拨号路由器的LAN口拉一根网线接到光猫的另一个LAN口,要取消光猫这个LAN口的所有绑定,不能带标签,否则会异常,此方法还会将光猫后台重新联通到拨号路由器局域网内

二、网速大幅下降且极不稳定

  1. 路由器、光猫、网线、光纤问题
  2. NTP时间不同步导致:如果删除了TRO96连接会无法同步时间,恢复TRO96连接或者在内网自建一个NTP服务器供光猫使用
  3. 光猫配置和运营商最新配置不同步:如果删除了TRO96连接运营商无法控制你的光猫,也无法更新配置,配置异常可能会导致网速下降,恢复TR096同步配置即可
  4. 光猫软桥接:删除原来的桥接配置,新建一个桥接配置
  5. 运营商可能设置了光猫mac验证:将拨号路由的mac修改为光猫的mac
  6. 局端xgpon,gpon问题

路由折腾

MESH组网

支持802.11k/v/r(K发现无线网络、V引导连接、R无缝漫游)协议的路由器可以实现无缝漫游

举个例子,如 AC+AP 模式组网,正常需要设置多个不同名称的WIFI,换位置了基本只能手动切换网络,比较麻烦。但如果AC和AP都支持KVR协议且在同一子网下,可以将所有AP的WIFI名称和密码改成相同的,这样设备就能快速切换到信号好的AP上,延迟在几十毫秒,即无缝漫游。

现在大多数路由都支持KVR协议,但一些老旧设备如K2P需要通过刷支持KVR协议的固件才能完成无缝漫游

华硕小旋风Pro刷机教程

型号:ASUS TUF-AX4200Q

华硕固件刷官改
直接Web后台上传固件即可

华硕固件刷OpenWRT(截至2025.03.06,TUF-AX4200Q还没有OpenWRT固件,不过能强刷ASUS TUF-AX4200的,但会有一个2.5G网口识别不到)

  1. 下载临时OpenWRT,web界面上传升级,进入临时OpenWRT
  2. 在临时OpenWRT内刷入正式OpenWRT

OpenWRT刷回华硕固件

  1. 下载并安装OpenWrt 镜像安装程序
  2. 在升级备份-系统升级里上传华硕固件即可,华硕固件默认后台地址:192.168.50.1

动态 DNS(DDNS)

以OpenWRT系统为例

有公网IP后才能使用,没有的话先安装,参考[OpenWrt 维基]DDNS 客户端

1
2
3
4
5
6
7
8
opkg install ddns-scripts
opkg install ddns-scripts-services
opkg install ddns-scripts-cloudflare
opkg install ddns-scripts_aliyun
opkg install ddns-scripts-dnspod

opkg install luci-app-ddns #DDNS前端
opkg install luci-i18n-ddns-zh-cn #中文语言

我习惯用Cloudflare,配置示例如图
20250306235952

IP 地址来源建议用这个URL检测,旁路由用端口可能不准确:https://4.ipw.cn/
20250307000042

注意在Cloudflare里的mddns.xdog.top要设置一个A记录,解析到2.2.2.2(占位无特殊意义),然后开启小云朵

没有自己的域名可以用公云,提供一个免费二级域名

踩坑记录

开启IPV6后网络卡慢

主要原因:PMTU黑洞

PMTU (Path MTU, Path Maximum Transmission Unit) 黑洞问题是指在网络传输过程中,某个网络节点由于其配置或防火墙规则阻止了ICMP(Internet Control Message Protocol)消息,导致无法得知该路径上的最大传输单元(MTU),从而使数据包无法正确传输的现象。

PMTU 背景
在网络中,数据包通过多个路由器到达目的地,每个路由器和链路可能支持不同的最大传输单元(MTU),即它们可以处理的最大数据包大小。PMTU 探测是用来找出一条路由的最小 MTU,以确保数据包能够正确传输。若数据包的大小超过某个节点的 MTU,通常会返回一个 ICMP 消息,告知需要分片或减小数据包大小。

黑洞问题原因
PMTU 黑洞现象发生的主要原因是某些网络设备或防火墙阻止了必要的 ICMP “Destination Unreachable” 或 “Fragmentation Needed” 消息。这些消息是 PMTU 探测的关键部分,如果丢失或被阻止,源主机将不会意识到路径中的 MTU 更小,并继续发送过大的数据包,导致数据传输失败。

常见的影响
连接突然断开:TCP 连接可能在传输大数据时因丢包而中断。
访问慢:需要重发多个小的数据包,导致带宽利用率降低。
网络应用故障:某些网络应用程序在传输大数据时可能无法正常工作。

解决方案
启用 ICMP 消息:确保网络设备和防火墙允许通过相关的 ICMP 消息,特别是 “Destination Unreachable” 和 “Fragmentation Needed” 消息。
手动设置 MTU:在发现网络路径存在 PMTU 黑洞的情况下,可以手动将系统的 MTU 设置为较小的值,避免传输过大的数据包。
检测黑洞路由器:使用一些网络调试工具(如 ping 和 traceroute),结合不同的数据包大小进行探测,识别哪些路由器或节点可能阻止了 ICMP 消息。
TCP MSS Clamping:在一些网络中,可以通过调整 TCP 的 MSS(Maximum Segment Size)来避免发送超过路径 MTU 的数据包。

受限于路由器设备和系统,一般我们只有手动设置 MTU这一个选择,但是设置为什么值呢?可以使用 ping 命令探测合适的 MTU

1
2
ping www.baidu.com -f -l 1452 # IPV4
ping -6 ipw.cn -l 1412 # IPV6

其中,1472 是除去 IP 头部(IPV4 头部 20 字节,IPV6 为 40字节)和 ICMP 头部(8 字节)的包大小。ping IPV4 的 -f 如果返回结果没有分片错误(“Packet needs to be fragmented but DF set”),则该值是合适的,可以继续加大包大小以寻找到最合适的 MTU。在这个例子中,IPV4 网络的 MTU = 1452 + 20 + 8 = 1480,IPV6 网络的 MTU = 1412 + 40 + 8 = 1460。

嫌麻烦就换路由器或者关闭IPV6使用

IPTV

基本概念

RTP:一种用于传输实时音视频数据的协议,通常基于 UDP 协议,IPTV的视频流采用的就是这种协议,例如安徽电信CCTV1的IPTV默认组播地址rtp://238.1.78.166:7200

IGMP(组播路由): 一种用于管理和控制 IP 网络中的组播通信的协议。它的主要功能是让主机(计算机或其他网络设备)加入或离开特定的组播组,以及允许路由器了解哪些主机在网络中加入了哪些组播组。通俗来讲就是管理RTP数据的,没有IGMP你就获取不到IPTV视频数据

udpxy:一款软件,能将 RTP 协议 转化为 HTTP 协议,适用范围更广,比如目前安卓TV端免费的最好用的TiviMate_2.1.5播放器只能使用HTTP协议,上面RTP格式的安徽电信CCTV1处理后的地址为http://192.168.1.1:5244/udp/238.1.78.166:7200

扔掉IPTV盒子任意设备看IPTV

运营商提供的IPTV机顶盒大都十分老旧,卡顿不说还很多余,赶紧扔掉,用第三方播放器在任意设备播放IPTV,以安徽电信为例,主要有两种方案

单线复用方案(不需要添加任何物理线路,优雅但是比较折腾):

  1. VLAN聚合。将上网信号(41)和IPTV信号(43)绑定到同一个物理接口,不过设置光猫需要超密

  2. VLAN 过滤(分离)。老毛子路由系统如图设置即可,IPTV第三项不选DHCP都能用
    20250304233653

华硕路由器不需要VLAN 过滤(分离),默认设置就可以,具体原因未知

  1. 路由器开启IGMP(组播路由)功能。光猫默认开启IGMP,如果你的局域网和光猫在同一网段并且可以互相访问则不需要配置

  2. 做完以上步骤就可以直接在局域网用RTP组播地址观看IPTV了,如需用HTTP协议观看在局域网搭建udpxy即可

双线接入方案(只需要增加一条网线,但是可能会造成回路)

  1. 将光猫的上网口和路由器的WAN口连接,光猫的IPTV口和路由器的任意一个LAN口连接,然后就可以直接通过RTP组播地址观看IPTV了

  2. 你没有看错,只需要增加一条网线就可以直接在局域网用RTP组播地址观看IPTV了,如需用HTTP协议观看在局域网搭建udpxy即可

踩坑记录

  1. udpxy无法播放,原因是斐讯N1用的是的F大71+o之后(5.4内核后)的系统,目前都播放不了IPTV,换 71+o 或者 iStoreOS 固件解决

  2. IPTV每次播放四分多钟就卡掉,重新打开链接才能播放。搜索到这个帖子,有人通过修改udpxy参数解决,但是我udpxy参数都改烂了还是有问题,折腾大半天,最后发现不用udpxy,直接观看rtp地址也是这个问题,所以不是udpxy的问题,最终又花了一晚上排查终于找出了原因。原来是我第一步单线复用没有绑定vlan,因为之前听网友的直接取消上网(41)和IPTV(43)的所有LAN端口绑定,也能播放IPTV,没想到导致IGMP异常了,改回去问题就消失了,具体什么原因不清楚,有没有大神懂的。

  3. IPTV画面有轻微抖动,偶尔出现轻微水波纹,最后发现是PotPlay视频解码器的问题,取消使用内置的DXVA视频解码器或者更换视频解码器即可

  4. 一段时间后画面卡顿严重,华硕路由器IGMP问题,设置定时重启即可

其他

IPTV播放器

  • TiviMate_2.1.5破解版 正版需要付费,2.1.5是目前最好用的破解版本,安卓TV端最强,支持遥控器上下键换台,秒切换,但是不支持默认的RTP协议播放,必须用udpxy转化为HTTP协议
  • IPTV_PRO破解版 别的都好,就是换台要两三秒,用RTP播放时换台会一直转圈,疑似软件bug,一直不修复
  • VLC 支持多平台,切换也快,但是没有针对TV端优化,不支持遥控操作
  • PotPlay Windows平台神级播放器,IPTV体验和VLC差不多

udpxy设置(OpenWRT):
我用的是斐讯N1旁路由,搭载的系统是 斐讯N1 iStoreOS 固件,性能比K2P等普通路由器强很多,多开七八个直播无压力

绑定 IP/接口:斐讯N1的IP
端口:任意(默认4022)
源 IP/接口:斐讯N1的IP

IPTV抓包(端口镜像)

  1. 准备一台支持端口镜像功能的路由器或者交换机(比如高恪、爱快)
  2. 将光猫的IPTV口连接到镜像路由的LAN1口,将IPTV机顶盒接到镜像路由的LAN2口,将电脑连接到镜像路由的LAN3口
  3. 用LAN3口镜像LAN2口的数据
  4. 电脑安装Wireshark或者其他能选择网卡的抓包软件,对以太网接口进行抓包
  5. 打开IPTV切换频道,查看当前频道的实时连接信息,手动提取,如安徽电信CCTV1rtp://238.1.78.166:7200,频道列表我没找到,只能用这种笨办法了