![]()
TP-Link ER2260T是一款有双10G网口的路由器,对于市场价几百块的路由器来说,已经算很香了。我比较推崇路由器只做路由功能,其他功能通过局域网的服务器实现(后面再专门写一个系列)…
因此路由器最重要的是路由性能够强就可以,而这款ER2260T这款路由器刚好能满足我的需求,因此就买它了,其实买了已经有了大半年,使用挺稳定的,看到有把他刷openwrt来折腾的,我倒是不需要了,原厂商业固件就挺好。
美中不足的地方是这个系统在配置IPv6方面比较菜,我不想他下发IPv6的DNS(因为我要指派局域网的服务器上的DNS,而且无论IPv4的DNS服务器还是IPv6的DNS服务器都能返回IPv6的解析结果,实在没必要),系统自带的选项只能定义公网IPv6的DNS服务器,你不填的话就给你下发路由器的IPv6 DNS,问了TPlink的工程师也没有法子,一句不支持配置就把我打发了。还好后来发现有ssh后门,可以登进去,发现他就是个openwrt系统,那简单了,openwrt我熟啊,这不是手到擒来,于是就折腾了一番。
1、开启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
   | 
 
2、禁止下发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禁用再重新启用即可。
3、安装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.sb
   | 
 
给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:x: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,可以关闭诊断工具--故障诊断模式,右上角保存配置。
   | 
 
4、删除和修改一些服务
可能没什么用,反正也用不上,但删了可能更安全。
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
   | 
 
5、添加一些服务和其他设置
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
   |