Linux PPPoE拨号时不使用ISP提供的DNS server

使用ISP提供的DNS server总是有很多不方便。作为天朝人,应该懂我的意思的。
无论是在win7还是linux下面,我都装有dns cache daemon的。因此,一般把dns设置为
127.0.0.1 和 8.8.8.8
然后,在127.0.0.1上可以做我想做的事情~~

我在Archlinux下使用的是netcfg 来配置网络的。
我的pppoe配置文件在 /etc/network.d/pppoe

这个pppoe拨号默认会自动从isp处获取dns并覆盖 /etc/resolv.conf

要想不使用isp提供的dns,准确地说是不让拨号时自动获取并设置dns,有下面几个方法:

1.修改 /etc/dhcpcd.conf

1
nohook resolv.conf

然后 ,新建一/etc/resolv.conf.head
写上:

1
2
3
# Google nameservers
nameserver 127.0.0.1
nameserver 8.8.8.8

2. 给 /etc/resolv.conf 加上写保护

1
chattr +i /etc/resolv.conf

3.修改ppp配置,USEPEERDNS=0
编辑/etc/network.d/pppoe
设置

1
2
# Use DNS provided by the peer (default: true)
USEPEERDNS=0

这3种方法都是可以达到目的的。我使用的是第3种方法。

另外,顺便修改了下hosts文件。
这里给出两个每次我装完系统之后必用的的hosts(没有用明文,你懂的):

智能hosts:
aHR0cHM6Ly9zbWFydGhvc3RzLmdvb2dsZWNvZGUuY29tLw==
防黑hosts:
aHR0cDovL3d3dy5td3NsLm9yZy5jbi8/cGFnZV9pZD0xMg==

参考文档:
https://wiki.archlinux.org/index.php/Resolv.conf#Modify_the_dhcpcd_Config

更多
4 Responses Post a comment
  1. Heiher

    好像有点复杂,我是使用 iptables 直接将外出的 UDP 协议 53 端口的目的地址都修改成 8.8.8.8。

  2. 依云

    chattr +i 这招够狠我喜欢 ^_^

  3. iShare

    沙发,,我直接用谷歌的DNS,本地DNS可能遇到网站改IP也不知道

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS