您尚未登录。

#1 2017-11-13 09:08:52

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

dhcpcd得不到ip地址,用netctl替换dhcpcd解决

之前用KDE桌面的时候,就有这个问题:时不时的,dhcpcd就得不到ip地址(enp0s25),用命令 ip a查看的时候,只有mac地址什么的,而且每次都是在启动系统的时候出现;
最初的解决方案是,systemctl stop/start dhcpcd,然后就有ip地址了;

最近刚换了GNOME,这个问题更频繁了,每天的第一次开机都没有ip地址;我不相信是系统安装过程出问题了,因为是新安装的系统,硬件问题不太好确认,所以我从软件方面想办法;以前听依云说过用的是netctl,不是dhcpcd;我早就想换了,一直懒,wiki中文里有这么一句话:“它是 Arch Linux 网络管理方面的原生项目。”这很吸引人啊!
这次研究下wiki后,果断用netctl换掉dhcpcd,试用了三四天,果然,世界变美好了。

好吧,这更像 Arch Linux 。


.

最近编辑记录 驿窗 (2017-11-13 09:09:11)


开源/Linux大众化,从驿窗开始~

离线

#2 2017-11-13 10:34:35

matrikslee
会员
注册时间: 2017-04-21
帖子: 442
个人网站

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

哈哈哈,只从正式入坑之后,一直用的netctl。

离线

#3 2017-11-13 11:06:54

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

这是第二次经验了;

第一次是一个漏洞(CVE-2016-4484 ),几乎所有linux发行版都存在问题,但 Arch Linux 却免疫;我正好是使用 cryptsetup 全盘加密,所以很好奇为什么 Arch Linux 能免疫;

后来看了仙子的回复才知道,Arch Linux 的大神早就看 cryptsetup 不顺眼了,干脆自己写,连接在这里:
https://bbs.archlinuxcn.org/viewtopic.php?id=4951

越来越能感受到 “Arch” 了好像;

我以后也更 “Arch” 一些;


.


开源/Linux大众化,从驿窗开始~

离线

#4 2017-11-13 14:51:24

zsrkmyn
lazy...
注册时间: 2013-05-05
帖子: 331

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

netctl 用的也是 dhcpcd (或者是 dhclient),看你装了哪个。

离线

#5 2017-11-13 17:40:47

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

我也比较奇怪这一点,又不是彻底不用dhcpcd,为什么用netctl就好用;
我之前看过,pacman -S dhclient,提示是之前没装过;

难道netctl不仅仅是一个外壳?


开源/Linux大众化,从驿窗开始~

离线

#6 2017-11-13 17:46:04

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

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

看起来有可能和启动时机有关。

离线

#7 2017-11-13 19:41:07

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

依云 说:

看起来有可能和启动时机有关。

启动时机?

你的意思是说,netctl 和 dhcpcd 服务在系统启动时的顺序加载位置是不一样的?

这话问的,怎么我自己觉得很别扭...


.


开源/Linux大众化,从驿窗开始~

离线

#8 2017-11-13 19:53:40

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

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

你的 netctl 是怎么启动的?

离线

#9 2017-11-14 12:00:25

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

依云 说:

你的 netctl 是怎么启动的?

过程确实有点小波折;
对着这个文档来弄:
https://wiki.archlinux.org/index.php?ti … did=394103

1、确定 netctl 已经安装以后,sudo cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/
2、sudo nano -w /etc/netctl/ethernet-dhcp,确保下面两行正确:
Interface=enp0s25
IP=dhcp
3、sudo mv /etc/netctl/ethernet-dhcp /etc/netctl/enp0s25-dhcp
4、sudo systemctl stop dhcpcd
5、sudo systemctl disable dhcpcd
6、sudo netctl start enp0s25-dhcp
7、sudo netctl enable enp0s25-dhcp
其中6和7两步会报错,我用journalctl -xn查看,隐约记得提示的是enp0s25-dhcp已经启动之类的,反正老是这两步报错,后来reboot,就直接能用了;双十一那天弄的,用到今天再也没出现过ip地址得不到的问题;每天都会开机使用;

6/7报错的情况下,再运行 ip a,enp0s25 是有ip地址的,kvm 虚拟机也能上网浏览,这一点当时就没想明白,明明dhcpcd已经stop了;


.


开源/Linux大众化,从驿窗开始~

离线

#10 2017-11-14 12:27:44

matrikslee
会员
注册时间: 2017-04-21
帖子: 442
个人网站

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

piter 说:

6/7报错的情况下,再运行 ip a,enp0s25 是有ip地址的,kvm 虚拟机也能上网浏览,这一点当时就没想明白,明明dhcpcd已经stop了;
.

这个问题是因为网卡驱动已经运行了,跟dhcpcd没关系,用 ip set xxx down 命令手动停止网卡驱动程序,然后在用systemctl start启动配置文件就没问题了,我最初用netctl的时候也碰到过一次这个问题。

最近编辑记录 matrikslee (2017-11-14 12:27:59)

离线

#11 2017-11-14 19:34:35

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

matrikslee 说:
piter 说:

6/7报错的情况下,再运行 ip a,enp0s25 是有ip地址的,kvm 虚拟机也能上网浏览,这一点当时就没想明白,明明dhcpcd已经stop了;
.

这个问题是因为网卡驱动已经运行了,跟dhcpcd没关系,用 ip set xxx down 命令手动停止网卡驱动程序,然后在用systemctl start启动配置文件就没问题了,我最初用netctl的时候也碰到过一次这个问题。

原来如此;
有人遇到相同问题的感觉,好像找到了战友一样~

.


开源/Linux大众化,从驿窗开始~

离线

#12 2017-11-17 10:56:33

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

matrikslee 说:
piter 说:

6/7报错的情况下,再运行 ip a,enp0s25 是有ip地址的,kvm 虚拟机也能上网浏览,这一点当时就没想明白,明明dhcpcd已经stop了;
.

这个问题是因为网卡驱动已经运行了,跟dhcpcd没关系,用 ip set xxx down 命令手动停止网卡驱动程序,然后在用systemctl start启动配置文件就没问题了,我最初用netctl的时候也碰到过一次这个问题。


今天又没开路由器,同样没有ip地址,按你说的,我这么操作:
1、sudo ip link set dev enp0s25 down
2、sudo netctl stop enp0s25-dhcp
3、sudo netctl start enp0s25-dhcp
然后再 ip a 就已经有ip地址了,自动 set dev enp0s25 up;

wiki上后面也提到这个,果然还是要仔细看wiki;


.


开源/Linux大众化,从驿窗开始~

离线

#13 2017-11-17 12:26:27

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

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

你不开路由器当然没有IP地址……
你可以用 restart 的。

离线

#14 2017-11-17 15:48:37

xtricman
エクス·トリクマン
注册时间: 2012-12-26
帖子: 1,267

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

还是老牌的NetworkManager更好,方便小白,没有什么奇怪的配置文件要写


反社会,精神极其不稳定,随时可能炸碎身边所有人

离线

#15 2017-11-17 19:19:15

驿窗
驿窗
所在地: 基础开源研究
注册时间: 2016-06-03
帖子: 927
个人网站

Re: dhcpcd得不到ip地址,用netctl替换dhcpcd解决

依云 说:

你不开路由器当然没有IP地址……
你可以用 restart 的。


好多次了,每次都是看到restart这个单词,才想到可以一条命令解决问题,可一旦到输入命令的时候,就忘到脑后,永远是输入两条命令,这效率,笨死...

最近编辑记录 驿窗 (2017-11-17 19:20:09)


开源/Linux大众化,从驿窗开始~

离线

页脚