一、简介
在软路由上配置TikTok域名分流,可以有效解决访问延迟问题,提升用户体验。本教程基于OpenWrt系统,使用IPSet技术实现精准的域名分流,让TikTok相关流量走指定线路,其他流量保持原有路由策略。
二、准备工作
在开始配置前,请确保:
- 您已拥有一台刷好OpenWrt系统的软路由设备
- 软路由已连接互联网并能正常工作
- 具备通过SSH或Web界面登录OpenWrt的权限
- 了解基本的网络知识和OpenWrt操作
三、安装必要软件包
首先,我们需要安装一些必要的软件包。通过SSH登录OpenWrt,执行以下命令:
opkg update opkg install ipset dnsmasq-full iptables-mod-ipset
安装完成后,重启dnsmasq服务:
/etc/init.d/dnsmasq restart
四、配置IPSet
IPSet是Linux内核的一个功能,可以高效地存储IP地址、网络、端口等信息的集合。我们创建一个专门用于TikTok的IPSet集合:
ipset create tiktok hash:ip
为了使IPSet在重启后依然存在,我们需要将其保存到配置文件:
mkdir -p /etc/ipset ipset save > /etc/ipset/tiktok.conf
创建一个启动脚本,确保系统启动时自动加载IPSet:
cat > /etc/init.d/ipset-tiktok << "EOF" !/bin/sh /etc/rc.common START=99 STOP=10 start() { ipset restore /dev/null || ipset create tiktok hash:ip } stop() { ipset save > /etc/ipset/tiktok.conf ipset destroy tiktok 2>/dev/null || true } EOF chmod +x /etc/init.d/ipset-tiktok /etc/init.d/ipset-tiktok enable
五、设置域名分流规则
接下来,我们需要配置dnsmasq,将TikTok相关域名解析后的IP地址自动添加到IPSet集合中。编辑/etc/dnsmasq.conf文件,在末尾添加以下内容:
TikTok域名分流配置 ipset=/tiktok.com/tiktok ipset=/byteover.com/tiktok ipset=/ibytedtos.com/tiktok ipset=/bytecdn.cn/tiktok ipset=/pstatp.com/tiktok ipset=/snssdk.com/tiktok ipset=/toutiao.com/tiktok ipset=/toutiaocdn.com/tiktok ipset=/toutiaocdn.net/tiktok ipset=/toutiaopage.com/tiktok ipset=/wukong.com/tiktok ipset=/zijieimg.com/tiktok ipset=/zijieapi.com/tiktok ipset=/pangle.io/tiktok ipset=/bytedance.com/tiktok ipset=/bytedance.net/tiktok ipset=/bytedanceimg.com/tiktok ipset=/byteimg.com/tiktok ipset=/musical.ly/tiktok ipset=/tiktokv.com/tiktok ipset=/tiktokcdn.com/tiktok ipset=/tiktok.com/tiktok
保存文件后,重启dnsmasq服务:
/etc/init.d/dnsmasq restart
六、配置策略路由
现在,我们需要创建防火墙规则和策略路由,将匹配IPSet集合的流量导向指定线路。假设我们要将TikTok流量导向WAN2接口:
创建防火墙规则 iptables -t mangle -A PREROUTING -m set --match-set tiktok dst -j MARK --set-mark 0x1 iptables -t mangle -A OUTPUT -m set --match-set tiktok dst -j MARK --set-mark 0x1 创建策略路由 echo "200 tiktok" >> /etc/iproute2/rt_tables ip rule add fwmark 0x1 table tiktok ip route add default via [WAN2网关IP] dev [WAN2接口名] table tiktok
为了使这些规则在重启后依然生效,我们可以将它们添加到网络配置文件中。编辑/etc/config/network,添加以下内容:
config route option interface 'wan2' option target '0.0.0.0' option netmask '0.0.0.0' option gateway '[WAN2网关IP]' option table 'tiktok' config rule option in 'lan' option lookup 'tiktok' option dest 'tiktok' option mark '0x1'
七、创建自动化脚本
为了方便管理和更新TikTok域名列表,我们可以创建一个自动化脚本:
cat > /usr/bin/update-tiktok-domains < /tmp/tiktok_domains.txt 更新dnsmasq配置 cat /tmp/tiktok_domains.txt | while read domain; do sed -i "/ipset=/$domain/tiktok/d" /etc/dnsmasq.conf echo "ipset=/$domain/tiktok" >> /etc/dnsmasq.conf done 重启dnsmasq服务 /etc/init.d/dnsmasq restart echo "TikTok域名列表已更新" EOF chmod +x /usr/bin/update-tiktok-domains
我们可以设置定时任务,每周自动更新一次域名列表:
echo "0 3 0 /usr/bin/update-tiktok-domains" >> /etc/crontabs/root /etc/init.d/cron restart
八、测试与验证
完成配置后,我们需要验证是否生效:
- 检查IPSet集合中是否包含IP地址:
ipset list tiktok
- 在设备上访问TikTok,然后查看路由表:
ip route show table tiktok
- 使用traceroute或mtr命令检查TikTok流量的实际路径
如果一切正常,您应该能看到TikTok相关流量被正确地导向了指定线路。
九、常见问题解决
1. IPSet集合为空
检查dnsmasq配置是否正确,以及域名是否被正确解析。可以手动尝试解析一个TikTok域名,看是否被添加到IPSet集合中。
2. 流量没有被正确分流
检查防火墙规则和策略路由配置是否正确,特别是fwmark和路由表的设置。可以使用tcpdump命令抓包分析流量走向。
3. 性能问题
如果软路由性能较低,大量IPSet规则可能会影响性能。可以考虑优化规则,或者升级硬件配置。
十、总结
通过本教程,我们成功配置了基于IPSet的TikTok域名分流方案。这种方法相比传统的IP分流更加精准,能够有效应对TikTok服务器的IP地址频繁变化的问题。同时,通过自动化脚本,我们可以保持域名列表的实时更新,确保分流效果的持续性。
需要注意的是,网络环境是不断变化的,域名和IP地址可能会随时更新。建议定期检查和更新配置,以确保分流效果始终如一。
版权:文章来源: 文章该内容为作者观点,Firekb仅提供信息存储空间服务,不代表Firekb观点或立场。版权归原作者所有,未经允许不得转载。对于因本网站图片、内容所引起的纠纷、损失等,Firekb不承担侵权行为的连带责任。如发现本站文章存在版权问题,请联系:ysdl@esdli.com
转载请注明出处:https://www.esdli.com/2782.html
还没有评论呢,快来抢沙发~