每次Google等网站上不去了,总要去百度获取查找最新的Hosts来更新,感觉非常麻烦。趁着放假,终于研究出在Tomato路由上自动更新Hosts的方法。由于需要使用OptWare,如果没有带USB的路由可能就不能使用以下的方法了。欢迎尝试后反馈!
准备工作
- 带USB接口,已刷Tomato Dualwan的路由器一台(本人使用AUSU RT-N16);
- U盘一个(本人使用SanDisk Cruzer Fit 8G);
具体步骤
- 配置Tomato的NAS功能
(1)打开路由器设置界面,进入“NAS服务器”→“NAS设置”→“勾选启用NAS功能”→右下角“保存设置”
(2)插入准备的U盘,点击页面中的“已连接设备”→“刷新”按钮。正常的话就能识别出你的U盘
(3)初始化U盘
点击识别出的U盘最右侧“NAS状态”中的“完全初始化”按钮,等待路由器自动对U盘进行分区处理。
注:本操作会清除U盘上的所有数据,并且不能直接在Windows上读取文件。
(4)安装“文件管理器”
①通过“NAS服务器”→“文件管理器”→勾选“启用管理器”,然后保存设置
②点击当前页面上的“安装”按钮,耐心等待安装完成。
注:安装“文件管理器”的目的是为了让Tomato自动安装Optware环境,同时方便进行文件管理
(5)完成配置
至此,NAS功能的基本配置已经完成,如有需要可以自行配置安装其它功能。 配置Optware
(1)安装SSH或Telnet,本人使用的是Windows自带的Telnet功能(Win7以下系统请自行百度)
①打开Windows的“程序和功能”(卸载软件的地方);
②点击左侧的“启用或关闭“Windows功能””;
③在弹出的对话框中找到“Telnet服务器”并勾选;
④点击确定,等待Windows自动安装Telnet功能。
(2)快捷键“Win+R”,输入cmd,点击确定,快速打开“命令提示符”窗口
①路由器设置:在“系统管理”→“访问设置”→“Telnet访问设置”中“立即启动”Telnet
②登录路由器
在“命令提示符”中输入以下命令后回车(注:IP地址为你的路由器IP)telnet 192.168.1.1
接着输入登录路由器的用户名,回车,输入密码,回车。
如果登录成功,则会显示以下界面
③ 安装wget-ssl(注:此功能为能正常下载HTTPS资源,如果你有HTTP下能直接下载的HOSTS源可以不安装)ipkg update ipkg install wget-ssl
等待系统自动安装完成。
配置路由器“定时任务”
①进入“系统管理”→“定时任务”,选择一个自定义任务,并勾选;
②选择执行的时间(我选的是每天半夜12点,即12:00 AM);
③在“执行命令”中输入以下代码,然后点击“保存设置”。(注:代码中的“/mnt/NAS/hosts”请自行替换成你想保存在路由器上的位置。我保存的位置为U盘根目录下的hosts文件)rm /mnt/NAS/hosts /opt/bin/wget --no-check-certificate https://raw.githubusercontent.com/racaljk/hosts/master/hosts -c -O /mnt/NAS/hosts sleep 3 service dnsmasq restart
rm /mnt/NAS/hosts #删除旧的hosts文件 /opt/bin/wget --no-check-certificate https://raw.githubusercontent.com/racaljk/hosts/master/hosts -c -O /mnt/NAS/hosts #下载新的Hosts文件到原位置 sleep 3 #等待3秒 service dnsmasq restart #重启DnsMasq服务
配置DnsMasq
①进入“高级设置”→“DHCP / DNS”;
②在“DNSMasq设置”中输入以下代码,然后点击“保存设置”。addn-hosts=/mnt/NAS/hosts/hosts
刷新DNS解析缓存
①“Win+R”运行“cmd”,打开命令提示符;
②输入以下代码后回车。ipconfig/flushdns
③关闭命令提示符窗口,并访问:https://www.google.com.hk。如果成功则会出现Google搜索。
排查错误
①查看是否下载成功Hosts文件
在登录了路由器的命令提示符下输入以下命令后回车cd /mnt/NAS ls -al
如果存在hosts文件,并且大小不为0,则下载成功。
②查看DsnMasq是否更新成功
在路由器管理界面的“状态”→“系统日志”中查看