TPlink er2260t是一款有双10G网口的路由器,对于市场价几百块的路由器来说,已经算很香了。我比较推崇路由器只做路由功能,不搞ALL IN BOOM,其他功能通过局域网的服务器实现(后面再专门写一个系列),因此路由器最重要的是路由性能够强就可以,而这款er2260t这款路由器刚好能满足我的需求,因此就买它了,其实买了已经有了大半年,使用挺稳定的,看到有把他刷openwrt来折腾的,我倒是不需要了,原厂商业固件就挺好(而且刷了貌似刷回去不太容易)(好吧被打脸它的IPv6和UPNP不太好使)(但我也没找到开源固件还是暂时算了)。
美中不足的地方是这个逼系统在配置IPv6方面比较菜,我不想他下发IPv6的DNS(因为我要指派局域网的服务器上的DNS,而且无论IPv4的DNS服务器还是IPv6的DNS服务器都能返回IPv6的解析结果,实在没必要),系统自带的选项只能定义公网IPv6的DNS服务器,你不填的话就给你下发路由器的IPv6 DNS,问了TPlink的工程师也没有法子,一句不支持配置就把我打发了。
还好后来发现有ssh后门,可以登进去,发现他就是个openwrt系统,那简单了,openwrt我熟啊,这不是手到擒来,于是就折腾了一番。
PS:最后还是把er2260t贱卖600块了,换了xdr6088刷op(起码CPU性能强啊,发哥的驱动就是好弄)……

开启ssh后门

系统工具->诊断工具->故障诊断模式,开了之后,可以用计算的账号密码登录ssh:

1
2
3
4
5
用户名 root
端口 33400
到web界面查看GE4接口的MAC地址(XX-XX-XX-XX-XX-XX)记下来,
计算ssh连接密码:  
echo -n "XX-XX-XX-XX-XX-XX" | tr -d '-' | tr '[a-z]' '[A-Z]' | md5sum | cut -b 1-16

禁止下发IPv6 DNS

修改系统文件不影响只读ROM,有问题可以恢复出厂,放心修改。
编辑/usr/lib/lua/dhcp_server/dhcp6_load.lua:

1
2
3
4
5
6
          end
                        注释#dhcp_file_add_line(config_handle, '    option dhcp6.name-servers ' .. dns_str .. ';')
                else
                        if nil ~= def_dns_use_if_ip and 1 == tonumber(def_dns_use_if_ip) then
                                注释#dhcp_file_add_line(config_handle, '    option dhcp6.name-servers '..tostring(ifip6addr)..';')
                        end

编辑/var/etc/dhcpd6.conf: 删除option dhcp6.name-servers相关
编辑/etc/init.d/radvd:

1
2
3
注释314行~322行 从开始:#printf '\n\tRDNSS%s\n\t{\n' "$addr_list"
....
直到:#printf '\t};\n'

编辑完成后,DHCP服务->SLAACC禁用再重新启用即可。

安装entware和openssh

自带的ssh无法修改密码,重启会自动恢复,而且也不安全,因此还是用最新的openssh server吧。而且自带的软件源也不能用,自然用entware舒服了。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 安装entware
cd /tmp
wget http://bin.entware.net/armv7sf-k3.2/installer/generic.sh
sh generic.sh
# 加入环境变量
修改环境变量:vi /etc/profile
修改行4 export PATH=/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin
重新登陆ssh,尝试使用entware安装软件:
opkg update
opkg install curl
curl ip.03k.org

给entware环境加入开机启动:

 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
entware启动脚本
vi /etc/init.d/entware :
#!/bin/sh /etc/rc.common
# Copyright (C) 2008-2010 OpenWrt.org

START=99

start() {
/opt/etc/init.d/rc.unslung start
}

stop() {
/opt/etc/init.d/rc.unslung stop
}

restart() {
stop
start
}

reload() {
restart
}
保存
chmod +x /etc/init.d/entware
/etc/init.d/entware enable

更换dropbear为openssh server:

1
2
3
4
5
6
7
8
opkg install openssh-server
ssh-keygen -t rsa -b 2048 -f /opt/etc/ssh/ssh_host_rsa_key
sed -i "$ a sshd❌88:88:Privilege-separated SSH:/opt/etc/ssh:/sbin/nologin" /etc/passwd
修改/opt/etc/ssh/sshd_config
PermitRootLogin yes
端口 监听地址什么的按需修改
/opt/etc/init.d/S40sshd start
重启成功使用openssh,可以关闭诊断工具--故障诊断模式,右上角保存配置。

删除和修改一些服务

可能没什么用,反正也用不上,但删了可能更安全。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
删除云端、AP控制、屏蔽更新
rm -rf /bin/cloud-*
rm -rf /usr/sbin/cloud*
禁用自带的ddns
/etc/init.d/tpddns disable
禁用系统监控
/etc/init.d/sys_monitor stop
/etc/init.d/sys_monitor disable
重启保留ssh密码
/etc/init.d/dropbear
行72 注释setDefaultPasswd
行81 注释setNewPasswd

添加一些服务和其他设置

1
2
3
启用计划任务
/etc/init.d/cron enable
/etc/init.d/cron start

在局域网内同时访问光猫:

  • 设置10GE1的物理接口的静态IP和光猫同一网段
  • 传输控制-NAT设置-NAPT新建出接口10GE1,源地址范围是局域网的NAT

在局域网内看IPTV(广东电信)(应该被和谐了,写出来仅原理参考):
首先,光猫或者猫棒开启组播设置IGMPv2之类的,下行组播VLAN50,下行组播VLAN转换45.
在10GE1接口新建一个VLAN45,不用勾选UNTAG,设置IP为 10.11.11.11(或者你喜欢,不是你的局域网内就行)
安装udpxy并写启动文件,10.10.10.1是路由器IP(10.10.10.1/24)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
opkg install udpxy
vi /opt/etc/init.d/S29udpxy
#!/bin/sh

ENABLED=yes
PROCS=udpxy
ARGS="-m 10.11.11.11 -a 10.10.10.1 -c 300 -p 8081"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

. /opt/etc/init.d/rc.func
保存,/opt/etc/init.d/S29udpxy start启动
可以打开http://10.10.10.1:8081/status 查看udpxy的工作状态  

使用IPTV组播仓库:
https://github.com/Tzwcard/ChinaTelecom-GuangdongIPTV-RTP-List/blob/master/GuangdongIPTV_rtp_hd.m3u
把列表里面的rtp协议替换成http,尝试用potplayer播放类似这样的格式:http://10.10.10.1:8081/rtp/239.77.1.17:5146,如果能播放,写个脚本替换一下就好了。

安装uu加速器:
既然是openwrt,那应该能装个UU加速器。
根据官方教程:https://uu.163.com/router/direction.html
安装有点问题,发现是他写死了网卡接口。

1
wget http://uu.gdl.netease.com/uuplugin-script/202012111056/install.sh -O install.sh

因为er2260t的内网接口不叫br-lan而是br-LAN,所以把脚本的br-lan替换成br-LAN即可。

1
2
3
4
sed -i "s/br-lan/br-LAN/g" install.sh
sh install.sh openwrt $(uname -m)
opkg update
opkg install kmod-tun