极路由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号
浙公网安备 33010602011771号