1876 字
9 分钟
mai2link转发服部署与使用指南
CAUTION

未经许可,你不能对机厅内的商用机台使用此转发服。 必须获得授权后才能使用,并且使用此转发服所造成的任何后果由使用者承担。 本转发服为提升网络质量和游玩体验而建立,不会支持任何恶意篡改游戏数据的行为。 公开测试阶段将不保证连通稳定性,且转发功能可能随时发生变动,请酌情考虑使用。 使用此服务器,即表示你已阅读并同意我们的使用条款,并自愿承担使用所带来的全部风险与责任。 开发者及运营方不对服务器的可用性、安全性、数据损失、服务中断、版权纠纷或任何因使用本服务器产生的直接或间接损失承担任何责任。 所有因使用或连接本服务器而产生的后果及法律责任,均由使用者本人全权承担。如有异议请勿使用本服务器。

INTRO#

mai2link,是一个第三方服务器,主要用途为优化线路,减少每次上机时等待时间。

FEATURE#

  • 支持上传/下拉缓存:即使官服断网,转发服仍能正常绿网游玩/上传数据,并且支持数据重传
  • 快速加载:减少国服80%的加载时间(1+3rival 满数据号下拉实测20-30s左右,官服至少2min以上)
  • 更多功能:解小黑屋,相片上传,自定义Rival 等优化功能
  • 拍摄相片:在游戏内上传相片后,可通过 Bot 下载游玩相片
  • 多客户端支持:支持 国/国际/日 三服版本的游戏客户端(详见列表)
  • 多版本支持:支持 1.00 - 1.55 版本所有客户端
  • 支持 舞萌DX, 舞萌DX 2021, 舞萌DX 2022, 舞萌DX 2023, 舞萌DX 2024 怀旧服绿网
  • 向下兼容:支持低版本游戏客户端连接,获取高版本数据时,使用保守拉取和上传策略,避免高版本数据被污染。

NOTE#

  1. 具体连接情况根据国服和代理网络情况而定
  2. 使用跨版本转发时,请自行手动调整用户设置,其他数据由转发器自动处理
  3. 除必要数据处理和自定义的转发规则外,其余转发的所有数据均与原服务器数据相同

DISCLAIMER#

本文仅教学如何对机台进行DNS劫持,使机台连接上m2l,不支持任何恶意行为。

正如刚才所提到的,未经许可,您不得对商业机台使用。

PREPARATION#

  • 软路由(这里使用上期被我们刷入Pandavan的MIWIFI 3a为例)

NETWORK VIEW#

这里展示我们机厅的网络拓补图,用于参考

[主路由]--[交换机]--[软路由]-[机台]

OBJECTIVE#

简单来讲,就是劫持机台的DNS请求,使其映射为

47.80.6.224 at.sys-allnet.cn
47.80.6.224 ai.sys-allnet.cn
47.80.6.224 at.sys-all.cn
47.80.6.224 ai.sys-all.cn

PRINCIPLE#

透明桥接与DNS劫持的工作原理

TIP

「知其然,知其所以然」

在开始操作前,理解工作原理至关重要。

核心是让软路由作为一个透明的DNS劫持网关,因为我们无法直接修改商用机台,所以要以软路由方式劫持其DNS解析结果。

主要的技术实现如下#

网络层拦截 (iptables):#

利用 Linux 内核的 netfilter 在网络堆栈的最底层进行拦截。

规则-p udp --dport 53 -j REDIRECT --to-ports 53意味着:

无论数据包的目标IP是哪台公共DNS服务器,只要它的目标端口是53,就将其重定向到本机的53端口。

这实现了强制接管所有DNS查询,客户端无法绕过。

应用层处理 (dnsmasq):#

dnsmasq 是一个轻量级的DNS转发器,它监听本地的53端口。

它收到被重定向来的DNS查询后,会首先检查自己的静态规则/etc/storage/dnsmasq/dnsmasq.conf 中的 address= 条目

如果匹配,则直接返回我们指定的IP 47.80.6.224。

如果不匹配,则会将查询转发给配置文件中指定的上游公共DNS服务器server=114.114.114.114,并将正确的结果返回给客户端。这就保证了不影响机台的其他网络功能。(虽然没啥用)

网络模式 (AP):#

将软路由设置为 AP模式 是此方案能保持透明的关键。

在此模式下,软路由的DHCP服务被禁用,机台的IP地址、网关、DNS等所有网络参数均由机厅的主路由分配。

软路由此时仅作为一个二层交换机+三层流量处理器,机台对此无感知。它的唯一任务就是处理DNS请求,所有其他流量都原样转发。

现在,我们理解了背后的魔法,接下来可以开始部署了。

LET’S GO#

BASIC#

  1. 进入软路由Web UI后台,找到工作模式选项,切换至无线AP。
  2. 将上行网线插入LAN1网口,舞萌DX机台网线插入LAN2

dnsmasq配置#

  1. 通过ssh登入路由器。
  2. 清除之前已有的iptables规则
Terminal window
iptables -t nat -F
iptables -t filter -F
  1. 杀掉dnsmasq进程
Terminal window
killall dnsmasq 2>/dev/null
  1. 保证配置目录存在
Terminal window
mkdir -p /etc/storage/dnsmasq
  1. 创建dnsmasq配置文件
cat > /etc/storage/dnsmasq/dnsmasq.conf << 'EOF'
port=53
no-resolv
no-poll
server=114.114.114.114
server=8.8.8.8
local-ttl=300
address=/at.sys-allnet.cn/47.80.6.224
address=/ai.sys-allnet.cn/47.80.6.224
address=/at.sys-all.cn/47.80.6.224
address=/ai.sys-all.cn/47.80.6.224
EOF

您也可以使用其他文本编辑器 例如vim,nano.

  1. 启动dnsmasq并指定配置文件
Terminal window
dnsmasq -C /etc/storage/dnsmasq/dnsmasq.conf -k &

检查

sleep 2
ps | grep dnsmasq | grep -v grep
netstat -tuln | grep :53

如果正常工作,您会看到dnsmasq进程和53端口的监听状态。

配置防火墙#

  1. 允许本地回环和已建立的连接
Terminal window
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

2.劫持所有DNS查询流量到本地53端口

Terminal window
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
  1. 允许DNS流量通过
Terminal window
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
  1. 校验环节
Terminal window
echo "=== NAT PREROUTING规则 ==="
iptables -t nat -L PREROUTING -n -v
echo "=== INPUT规则 ==="
iptables -L INPUT -n -v

接下来您可以使用如下命令测试DNS劫持情况

Terminal window
nslookup at.sys-allnet.cn 127.0.0.1

这里Chongxi使用另外一台设备进行DNS查询,结果如下

Terminal window
nslookup at.sys-allnet.cn 192.168.31.197
Server: 192.168.31.197
Address: 192.168.31.197#53
Name: at.sys-allnet.cn
Address: 47.80.6.224

这里的192.168.31.197为Chongxi的软路由IP,您应修改为实际IP。

由于Pandavan固件问题,您可能需要执行以下命令手动保存

mtd_storage.sh save

可用于故障诊断的命令#

Terminal window
# 1. 检查dnsmasq是否正常运行
ps | grep dnsmasq
# 2. 检查端口监听
netstat -tuln | grep :53
# 3. 检查防火墙规则
iptables -t nat -L -n -v
iptables -L -n -v
# 4. 实时监控DNS查询
tcpdump -i any -n port 53
# 5. 查看dnsmasq日志
killall dnsmasq
dnsmasq -C /etc/storage/dnsmasq/dnsmasq.conf -d --log-debug

接下来您可以重启机台,使用m2l二维码进行登入操作,若可以成功识别登入,即为成功。

  1. 访问telegram bot@McDLdshEartBot
  2. 打开您的 舞萌|中二 公众号,获取二维码。
  3. 长按识别二维码,获取您的SGWCMAID。
  4. 发送命令 /qrcode <SGWCMAID>绑定bot。
  5. 发送/gbac获取访问码。 接下来您可以使用微信二维码和m2l永久二维码登入。

本篇blog比较特殊,若有疑问,可联系 [email protected] ,有严重影响我会立即删除。

这里是 Chongxi,期待与您的下一次见面。

Thanks for watching.

—Chongxi 2025-08-24

mai2link转发服部署与使用指南
https://blog.chongxi.us/posts/2025-08/24/2025-08-24-a/
作者
Chongxi
发布于
2025-08-24
许可协议
CC BY-NC-SA 4.0