极路由X添加修改本地HOSTS功能
本人只在极路由X上进行了修改,实际上应该极路由的路由器应该都是可以的,当然不确定后台的代码是否一致,如无需在后台添加这个功能,可以直接添加修改/etc/hosts.d/custumdns_host2文件。如只想直接修改/etc/hosts文件的话,需要编辑/etc/init.d/dnsmasq文件,然后把下面这三句代码注释(#)掉或者删除掉.否则即使修改了/etc/hosts文件重启后还是会恢复原来的。
for f in $( ls /etc/hosts.d ); do cat /etc/hosts.d/$f | sed '/^$/d' | sed -e "s/network.lan.ipaddr done
1.获取ssh, 打开大神制作的网站 http://www.hiwifi.wtf/
(1)点击获取local_token
(2)获取uuid
(3)把获取到的local_token和uuid填到对应的输入框内,点击 提交 获取cloud token
4)把获取到的cloud token值填写到第(1)步开启调试工具的对应框内,点提交就会出现开启22端口的提示。
2.ssh登录进路由器
ssh root@10.1.1.1
ssh的密码是路由器的后台密码
3.把修改Hosts的功能放到路由器后台上
因为极路由的智能插件页已经没有太大用处,所以我们直接在这个页面增加功能
这个页面的代码如下
<%
--[[
Info 智能插件首页
Author peng.kang <peng.kang@hiwif.tw>
Copyright 2016
]]--
local ver = require "luci.version"
local i18n = require "luci.i18n"
local io = require "io"
local hosts_path = "/etc/hosts.d/custumdns_host2"
local act_submit = tostring(luci.http.formvalue("act_submit"))
if act_submit == "1" then
local hosts_text = tostring(luci.http.formvalue("hosts"))
local file = io.open(hosts_path, "w")
file:write(hosts_text)
file:close()
luci.sys.call("/etc/init.d/dnsmasq restart")
end
local file = io.open(hosts_path, "rb")
if file then
file:close()
end
hosts = ""
if file ~= nil then
local t = {}
for line in io.lines(hosts_path) do
table.insert(t, line)
end
hosts = table.concat(t, "\n") .. "\n"
end
%>
<% include('admin_web/header') %>
<link rel="stylesheet" type="text/css" href="<%=resource%>/v2/style/admin_web/plugin.css?v=<%=ver.svnRevNum%>">
<div id="bd">
<div class="com-main clearfix">
<div id="right_part" class="G-rightSide">
<div>
<h2 class="J_view_right" style="visibility: hidden;"><%=i18n.translate("web_router_run_stable")%></h2>
<div class="side-bd">
<div class="side-panel online-info J_view_right" style="visibility: hidden;">
<p class="time" id="days_num"><span></span></p>
<p class="service-info" id="serviced_info"></p>
<div class="ctr-list">
<ul>
<li class="i18n-en-manage-system-address icon-li">
<a href="javascript:;" id="lan_ip"><span class="icon icon2"></span><span class="G-handle"></span></a>
</li>
<%if i18n.is_empty("query_warranty_visible") then%>
<li class="i18n-en-query_warranty_visible icon-li">
<a href="<%=luci.dispatcher.build_url('admin_web','passport','index')%>?from=router" target="_blank" ><span class="icon icon3"></span><span><%=i18n.translate("web_query_warranty")%></span></a>
</li>
<%end%>
</ul>
</div>
</div>
</div>
<div class="G-power-panel">
<a href="javascript:;" class="icon power G-handle J_system_restart" style="display:none;"></a>
<p class="J_system_restart G-handle" style="display:none;"><%=i18n.translate("g_reboot")%></p>
</div>
</div>
</div>
<% include('admin_web/menu/menu_left') %>
<div class="G-main" id="main_view">
<div class="G-main-panel">
<div class="plugin-tit"><%=i18n.translate("web_plugin_title")%></div>
<div class="G-gray-panel">
<form id="form1">
<div class="G-form-main">
<div class="G-form-main-hd">
<span class="G-handle right go_back">
<span class="icon back"></span><span><%=i18n.translate('web_go_back')%></span>
</span>
<span class="icon setting"></span><span>Hosts设置</span>
</div>
<div class="G-form-main-bd">
<div class="zd-panel">
<h2 style="margin-bottom: 40px;">请小心设置</h2>
<input type="hidden" name="act_submit" id="" class="txt" value="1"/>
<textarea id="hosts" name="hosts" rows="15" cols="60"><%=hosts%></textarea>
</div>
</div>
<div class="panel-btn-bar">
<input type="button" value="<%:保存%>" class="btn" id="submit_btn"/>
</div>
</div>
</form>
</div>
</div>
<div class="G-main-panel">
<div class="G-gray-panel">
<div class="locall-plugin-list">
<div class="hd"><span class="edit-btn" id="plugin_set" style="display: none;"><%=i18n.translate("web_edit")%></span><%=i18n.translate("web_hiwifi_local_plugin")%></div>
<div class="bd">
<ul class="clearfix" id="local_plugin_list">
<li>
<div class="plugin-icon J_add_plugin G-handle">
<img src="/turbo-static/turbo/v2/img/admin_web/add-plugin.png" alt=""/>
</div>
<p class="plugin-name J_add_plugin G-handle"><%=i18n.translate("web_click_add")%></p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="hosts_setup" style="display: none;">
</div>
<% include('admin_web/footer') %>
<!-- 通用模块的专属js -->
<script type="text/javascript" src="<%=resource%>/v2/js/admin_web/general_module.js?v=<%=ver.svnRevNum%>"></script>
<script type="text/javascript">
$(function(){
//提交
$("#submit_btn").click(function(){
$("#form1").submit();
})
});
</script><!-- 网络设置页的专属js -->
<script type="text/javascript" src="<%=resource%>/v2/js/admin_web/plguin.js?v=<%=ver.svnRevNum%>"></script>
</body>
</html>
把以上代码保存(可通过vi命令修改或者scp上传)在/usr/lib/lua/luci/view/admin_web/plugin/index.htm,当然最好先备份一下原来的代码。
这时我们刷新后台的插件页面就能看到Hosts修改的地方了。点了保存没生效可以重启一次路由器。也可以在ssh下执行。
/etc/init.d/dnsmasq restart

浙公网安备 33010602011771号