V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nonozone
V2EX  ›  问与答

如何把本地 hosts 文件写到 openwrt ?

  •  
  •   nonozone · 2014-10-22 13:06:49 +08:00 · 22696 次点击
    这是一个创建于 3473 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就是让Lan的用户可以访问一个地址解析到一个固定IP这样?这个要在openwrt里怎么设置?
    17 条回复    2014-10-22 16:37:24 +08:00
    Showfom
        1
    Showfom  
       2014-10-22 13:21:31 +08:00
    openwrt 的设置页面里就可以直接改 hosts 啊
    shierji
        2
    shierji  
       2014-10-22 13:27:47 +08:00
    写dnsmasq配置文件 。具体google dnsmasq
    carterdang
        3
    carterdang  
       2014-10-22 13:39:52 +08:00
    直接修改或者ssh cap 本地上传
    carterdang
        4
    carterdang  
       2014-10-22 13:45:50 +08:00
    不好意思打错了,是 scp
    zro
        5
    zro  
       2014-10-22 14:38:02 +08:00
    Luci管理界面没有,要SSH到后台vi /etc/config/dnsmasq
    nonozone
        6
    nonozone  
    OP
       2014-10-22 14:54:04 +08:00
    @zro 我的这里没有,是不是我还没有安装dnsmasq?
    nonozone
        7
    nonozone  
    OP
       2014-10-22 15:02:25 +08:00
    @zro 哦,是在这个位置/etc/dnsmasq.d

    我直接添加了一条

    server=/www.xxx.com/192.168.1.100
    重启之后貌似没有生效?

    还有加入这个域名是真实存在,且可以正常解析,也就是在外网可以正常访问的,那我把这条记录加在dnsmasq里,到底会不会优先作用?
    aa65535
        8
    aa65535  
       2014-10-22 15:15:29 +08:00
    配置 dnsmasq 就行了

    修改 /etc/dnsmasq.conf 添加如下
    address=/www.xxx.com/192.168.1.100

    写 /etc/dnsmasq.d 下的话需要 conf-dir=/etc/dnsmasq.d
    这个配置是高优先级的,就是不会去递归查询了,直接返回结果。
    Love4Taylor
        9
    Love4Taylor  
       2014-10-22 15:27:04 +08:00 via iPhone
    @nonozone 为毛是server。不是应该是address么
    yangg
        10
    yangg  
       2014-10-22 15:27:18 +08:00
    文件应该是在 /etc/config/dhcp

    config domain
    option name feeds.feedburner.com
    option ip 203.208.46.161
    zro
        11
    zro  
       2014-10-22 15:45:30 +08:00
    @nonozone 路径我应该是记错了,@aa65535 是对的
    jasontse
        12
    jasontse  
       2014-10-22 15:49:55 +08:00 via Android
    管理页面有这个设置

    Network - DHCP and DNS - Resolv and Hosts Files - Additional Hosts files
    Daniel65536
        13
    Daniel65536  
       2014-10-22 15:58:09 +08:00 via iPad   ❤️ 2
    $ vi /etc/config/dhcp
    在dnsmasq段的末尾插入:

    list addnhosts '/etc/hosts'

    然后改/etc/hosts就可以了。
    nonozone
        14
    nonozone  
    OP
       2014-10-22 16:21:22 +08:00
    @aa65535

    刚仔细测试了下,应该第一次修改的时候就生效了,但是不知道为啥,我当时测试的那台电脑IP依然是真实DNS的IP地址,刚换了一台电脑,返回的是本地IP。目前是一部分电脑是返回本地IP,一部分电脑返回真实DNS的IP,估计是我路由没重启的缘故?

    难道我重启了dnsmasq服务都不一定生效?
    zro
        15
    zro  
       2014-10-22 16:34:02 +08:00
    @nonozone 电脑清空DNS缓存 ipconfig /flushdns
    nonozone
        16
    nonozone  
    OP
       2014-10-22 16:35:51 +08:00
    @zro 这个我试过啦...现在没空吧整个路由器重启,明天过来上班再看看。
    aa65535
        17
    aa65535  
       2014-10-22 16:37:24 +08:00
    @nonozone
    1. 你写成 server 了,那个是指定上游 DNS 服务器的选项。
    2. 一般系统都是有 DNS 缓存的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5455 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:59 · PVG 14:59 · LAX 23:59 · JFK 02:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.