您尚未登录。

#1 2013-11-27 14:04:56

xxf_cz
会员
注册时间: 2013-11-26
帖子: 6

新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

如题,最近在一台很旧的笔记本上安装了Arch2013.11.01基本系统。遇到了一个关于DNS的问题:

房东提供的是拨号服务器,各住户通过PPPOE上网。
我的笔记本在XP下可以拨号成功,正常上网;
在Arch下,如果用带拨号功能的路由器,也能正常上网,Arch会取得正确的DNS,自动生成 resolv.conf。
但在Arch里面直接pppoe-start拨号却得不到DNS服务器的IP,只能在每次拨号后手工填写 resolv.conf,才能正常上网。

详情如下:

    实验一:使用拨号路由器上网,正常
-----------------------------------------------------------------------------------------------------------------------
接线完毕,路由器开机,稍候片刻,笔记本就可以正常上网了。
查看 /etc/resolv.conf ,有正常的 nameserver 记录。将此文件备份。
(断开网线上,此文件变成空白,只有一行注释,# Generated by resolvconf)


    实验二:笔记本自行拨号上网,不能自动获得DNS
-----------------------------------------------------------------------------------------------------------------------
0. 撤掉路由器,而把房东的网线直接连到笔记本。
1. pppoe-setup,填写了正确的网络接口(不是eth0,而是类似于enp1s0f0)、账号、密码,DNS填的是server,无防火墙,保存。
2. systemctl enable adsl
3. pppoe-connect 或 systemctl start adsl 都显示
. Connected
此时,ping 8.8.8.8 是通的,但 ping www.baidu.com 却显示 unknown host 。

查看 /etc/resolv.conf,该文件空白,只有一行注释,# Generated by resolvconf

手工将之前备份的resolv.conf恢复过来,可以正常上网。


    实验三:Windows XP,笔记本自行拨号上网,正常
------------------------------------------------------------------------------------------------------------------------
这个就不细说了。

离线

#2 2013-11-27 14:22:18

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,919
个人网站

Re: 新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

我倒是希望 pppd 不要改我的 DNS 配置呢……

离线

#3 2013-11-27 14:38:42

phoenixlzx
晩ご飯だよー
注册时间: 2011-08-19
帖子: 1,789
个人网站

Re: 新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

删掉 /etc/resolv.conf 然后手动新建这个文件,里面写两行 nameserver

它不是个 symlink 就不会被覆盖了。以后会自动用你写的两个DNS。

离线

#4 2013-11-27 16:32:20

xxf_cz
会员
注册时间: 2013-11-26
帖子: 6

Re: 新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

百合仙子 说:

我倒是希望 pppd 不要改我的 DNS 配置呢……

正是,我亦如此

离线

#5 2013-11-27 16:45:53

xxf_cz
会员
注册时间: 2013-11-26
帖子: 6

Re: 新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

phoenixlzx 说:

删掉 /etc/resolv.conf 然后手动新建这个文件,里面写两行 nameserver

它不是个 symlink 就不会被覆盖了。以后会自动用你写的两个DNS。

它本来不是个symlink。如果我用路由器来上网,它就是个实体文件。我就是用它做备份的。

换成 pppoe-start 拨号上网,拨通后,它就变成了symlink;pppoe-stop 后的情况,我倒是不记得它有没有变回去了。晚上下班回去瞧瞧。

对 /etc/resolv.conf 的修改,好像发生在 /etc/ppp/ip-up 以及 /etc/ppp/ip-up.d/ 目录下的脚本中。我昨晚上稍稍分析了一下里面的脚本,发现有 ln -s  以及 rm 还有调用 resolvconf 等等。

你的办法我会试一试。如果实在没辙,我就像别人说的,写个脚本来 拨号 & 设置resolv.conf 了。

刚才在 ArchLinux Wiki 中仔细读了 Network Configuration ,发现可以配置 /etc/dhcpcd.conf 叫dhcp不要动我的 resolv.conf:

nohook resolv.conf

晚上回去一并试试。

最近编辑记录 xxf_cz (2013-11-27 16:46:34)

离线

#6 2013-11-27 18:28:40

supertc
会员
注册时间: 2012-04-16
帖子: 4

Re: 新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

要用下这个命令
sudo route add default dev ppp0

离线

#7 2013-11-27 18:33:19

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,919
个人网站

Re: 新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

nohook resolv.conf 这个我早写了。
实在搞不定你可以 chattr +i /etc/resolv.conf 就 OK 了。

离线

#8 2013-11-27 19:00:04

xxf_cz
会员
注册时间: 2013-11-26
帖子: 6

Re: 新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

谢谢各位提供的办法,晚上回去马上试!

先前本来想装一个Gentoo,用Gentoo的LiveCD启动,pppoe-start 就完全OK了,可以多开几个控制台上网边看文档边安装。
但是后面做本机编译要花很多时间,我那个十年前的本本肯定吃不消,就作罢了,然后找到了Arch。

有点好奇,Gentoo的LiveCD 拨号上网怎么就正常呢?

而 archlinux-2013.11.01-dual.iso 启动后,pppoe-start 也是有DNS的问题。

离线

#9 2013-11-28 09:18:36

xxf_cz
会员
注册时间: 2013-11-26
帖子: 6

Re: 新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

试过了,结果如下:
1. chattr +i /etc/resolv.conf 也挡不住被自动修改的命运
2. nohook resolv.conf 是默认的配置,所以看来本就无效或者无关
3. 最终还是自己写了个小脚本 /usr/local/bin/adsl,先 pppoe-start ,再 cp 备份文件为 /etc/resolv.conf ,解决。

虽然还想继续一探究竟,但是暂时不想把时间继续耗在这上面了,后面还有很多重要的事情等着呢。只要找到了简单的办法解决就最好了。

离线

#10 2013-11-28 09:49:43

xxf_cz
会员
注册时间: 2013-11-26
帖子: 6

Re: 新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

supertc 说:

要用下这个命令
sudo route add default dev ppp0

唉呀,这个办法不记得试了!


不过,之前在网上好像看到过这个办法,然后我 route 查了一下,发现有 ppp0 有一条 default 的记录。

最近编辑记录 xxf_cz (2013-11-28 09:52:19)

离线

#11 2013-11-28 15:24:08

phoenixlzx
晩ご飯だよー
注册时间: 2011-08-19
帖子: 1,789
个人网站

Re: 新装Arch2013.11.01基本系统,pppoe-start后,网络是通的,但不能自动获得DNS

crontab里每分钟执行一次 echo 'nameserver 8.8.8.8' > /etc/resolv.conf && echo 'nameserver 8.8.4.4' >> /etc/resolv.conf
酱紫?

离线

页脚