教程已更新到最新版本,请刷入最新的固件以匹配该教程
目录
- 基础配置(scutclient)
- vlmcsd
- napt66
- ttyd
- SSR/SS
- gxxlist+dns-forwarder / tunnel
- 杂项
固件发布:https://www.jianshu.com/p/d76a63a12eae
编译办法:https://www.jianshu.com/p/6b8403cdea46
基础配置
1. 每一次刷完后都一定要在"系统管理--配置管理"里恢复nvram以及/etc/storage
- 根据开网信息,修改wan口ip地址掩码网关DNS和mac(去掉":"),并应用设置
3. 到左侧菜单选择,启用scutclient并设置账号密码;由于本科生夜间断网,还需要开启watchcat,脚本每分钟检测一次网络连通性并自动重拨:
- 重启路由器
vlmcsd使用方法
前提条件
- 确保电脑上安装的Windows / Office为VOL版并已导入对应的key
- 确保电脑上设置的DNS为路由器ip地址
- 对2017-11-29以后的固件,勾选启用vlmcsd。
- 确认dnsmasq.conf包含有: (较新发布的固件已自动添加)
srv-host=_vlmcs._tcp,my.router,1688,0,100
激活Ofice
- 进入Office安装目录下的"Office XX"目录,例如
C:\Program Files\Microsoft Office\Office16
-
用管理员权限在此目录打开Powershell或cmd
-
依次执行
cscript.exe ospp.vbs /remhst
cscript.exe ospp.vbs /act
cscript.exe ospp.vbs /dstatus
激活Windows
- 用管理员权限打开Powershell或者cmd
- 依次执行
slmgr /ckms
slmgr /ato
slmgr /dlv
napt66使用方法
- 勾选系统管理-服务-启用napt66即可:
- 启用电脑的ipv6支持
- 到"外部网络(WAN)->IPv6协议"进行如下配置:
特别注意IPv6内网地址这个选项,如果将lan的v6地址设置成Unique Local本地地址(例如fc00:100:100:1::1
)的话,当访问ipv4和ipv6双栈接入的网站时,大多数浏览器会忽略v6地址而默认去连v4地址;
如果设置成2开头的公网地址或者ipv6保留地址(如dc00:101:101::1
),大多数浏览器就会默认去连接v6地址,所以推荐使用图中的dc00:101:101::1
对于DNSv6服务器,推荐使用图中的240c::6666
和2001:da8::666
- 重启路由器,观察电脑能否获取到ipv6地址,并尝试用浏览器访问
http://[dc00:101:101::1]
- 观察路由器能否获取到2xxx开头的公网ipv6地址
- 尝试在电脑上运行
ping 240c::6666
- 尝试用浏览器访问
https://bt.byr.cn/
napt66不支持DNAT,但是可以利用socat在用户层实现这一功能,从2019-5之后的所有固件都已经集成socat。
例如,想要让socat将监听tcp6端口[::]:8088
,并转发到内网的192.168.2.225:81
,只需在启动脚本中插入以下命令即可:
socat tcp6-listen:8088,reuseaddr,fork tcp4:192.168.2.225:81 &
另外还需要在ip6tables的INPUT链放行socat监听的端口,可以在防火墙自定义脚本中加入:
ip6tables -P INPUT ACCEPT
ip6tables -F INPUT
在应用层处理效数据包效率较低,在MT7621下,socat单连接跑到100Mbps会吃掉一个CPU线程的40%,所以不推荐MT7620的机器使用此方案进行高速转发,当然登个ssh还是可以的。
在napt66后的内网进行bt/pt下载是没有问题的,因为pt客户端会尝试去主动连接peers,但是实测transmission在napt66之后的内网中无法使用,其他bt/pt客户端正常,所以在Linux环境下推荐使用qbittorrent或者Deluge
ttyd
2017-10-22以及以后的固件,在"系统管理--服务--其他服务设置"中启用:
用浏览器访问http://my.router:7681
或http://192.168.2.1:7681
SSR/SS
目前仅支持全局代理和Chnroute,没有gxxlist模式
- 如果你需要修改chnroute的更新网址(仅支持点分式IP列表),可以进行以下操作:
nvram set chnroute_url=https://raw.githubusercontent.com/LisonFan/china_ip_list/master/china_ipv4_list
nvram commit
gxxlist + dns-forwarder / tunnel
2018-10-19及其之后的固件采用gxxlist作为dnsmasq解析策略,恢复出厂后默认未开启
-
(重要!)更新固件后,恢复nvram和/etc/storage为出厂设置
-
配置网络与ss服务器;开启规则自动更新(可选)
-
如果你需要修改gxxlist的在线更新网址(仅支持dnsmasq语法),请执行以下操作:
nvram set gfwlist_url=https://cokebar.github.io/gfwlist2dnsmasq/dnsmasq_gfwlist.conf
nvram commit
-
到"dnsmasq设置",去掉gxxlist配置前的"#"注释符,保存设置
这里用到的gxxlist会定向到127.0.0.1#5353
进行DNS解析,因此下一步要配置好dns-forwarder或ss-tunnel
-
启用dns-forwarder或者ss-tunnel,监听5353端口
要注意dns-forwarder仅在开启了"自身代理"的情况下才会起作用,而ss-tunnel则需要服务器端支持。
两者不能同时监听5353端口,开启一个就可以了,推荐使用dns-forwarder,TCP方式查询相对较为稳定
杂项
-
通过命令行刷写新固件
mtd_write -r write <trx文件路径> Firmware_Stub #例如:mtd_write -r write /tmp/PSG1218_3.4.3.9-099.trx Firmware_Stub
-
通过命令行刷写Bootloader
mtd_write -r write <Bootloader文件路径> Bootloader #例如:mtd_write -r write /tmp/breed-mt7688-reset38.bin Bootloader
-
通过命令行导出eeprom
- 执行
cat /proc/mtd
,查看Factory分区所在的设备文件名,在这里是mtd2
dev: size erasesize name mtd0: 00030000 00010000 "Bootloader" mtd1: 00010000 00010000 "Config" mtd2: 00010000 00010000 "Factory" mtd3: 001355f0 00010000 "Kernel" mtd4: 00dfaa10 00010000 "RootFS" mtd5: 00080000 00010000 "Storage" mtd6: 00f30000 00010000 "Firmware_Stub"
- 用
dd
将/dev/mtdblock2
读出
/home/root # dd if=/dev/mtdblock2 of=/tmp/eeprom.bin 128+0 records in 128+0 records out 65536 bytes (64.0KB) copied, 0.019940 seconds, 3.1MB/s
- 使用tftp或者scp将
/tmp/eeprom.bin
复制到电脑即可
- 执行