有很多教程解释了如何设置dhcpd服务器,关于向 dhcp 客户端提供 ntp 建议,我一直认为ntp配置是自动执行的。最近我开始在我的本地网络中看到时钟漂移,所以我认为这是一个错误的假设。所以我开始研究如何最小化 ntp 客户端配置,前提是已经ntp-server通过dhcpd.
除了这个 Ubuntu 特定的帮助教程https://help.ubuntu.com/community/UbuntuTime之外,我找不到太多东西。即使在这里(请参阅“故障排除 -> 它使用哪个配置文件?”下的段落),信息也很少,但它表示如果/etc/ntp.conf.dhcp找到一个文件,它将被使用。首先,作者在这里所指的实际位置与在 中/var/lib/ntp/ntp.conf.dhcp观察到的一样/etc/init.d/ntp,但无论如何该文件的存在并不能保证 ntp 会从dhclient. 因此,我必须为我的本地 ntp 服务器显式添加该server子句ntp.conf.dhcp。但在这种情况下,我为什么还要在dhcpd服务器上设置 ntp 设置?
这似乎违反直觉,即设置一次 ntp 设置(即在服务器上)并让dhcpd服务器将信息委托给客户端。如何最小化(如果不能完全避免)ntp 的客户端配置。或者,我如何ntp通过dhclient.
是否有适合所有 linux 发行版的 cli 解决方案?
我假设每个客户都应该有 的可执行文件ntpd,但我不知道如何从那里开始。
谢谢
编辑:手动运行时 ubuntu 客户端详细输出dhclient:
sudo dhclient -1 -d -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
Internet Systems …Run Code Online (Sandbox Code Playgroud) 有没有办法显示我当前的(客户端)DHCP 租约?
或者甚至更好 - 检索所有发送的选项/信息DHCPACK?
我目前正在访问 TU Wien,今天我使用wpa_supplicant我的家庭研究所的凭据将我的Debian Linux 笔记本电脑连接到他们的 eduroam wlan - 和我访问另一个科学机构时一样。
当我打开一个终端时,我注意到我的命令提示符显示了一个不同的主机名,实际上,执行hostname给了我e244-082.eduroam.tuwien.ac.at而不是我机器的通常主机名x301。
我对此感到非常困惑。未经我的同意,连接到 wlan 怎么可能改变我的主机名?
我在 Centos7 上尝试启动网络服务时遇到问题。我收到以下错误消息。
Failed to start LSB: Bring up/down networking
Run Code Online (Sandbox Code Playgroud)
当我意识到它没有从 /etc/sysconfig/network-scripts/ifcfg-eth0 文件(见下文)中获取我的静态 IP 地址时,问题就出现了。
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.0.16
NETMASK=255.255.255.0
HWADDR=B8:27:EB:C3:1E:EC
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
Run Code Online (Sandbox Code Playgroud)
重新启动时,设备将加载 192.168.0.7 的 IP 地址,显然不是分配的静态 IP 地址,并且不确定它如何获取 DHCP 服务器的信息(我确实有,我的路由器)
我试图禁用 NetworkManager,因为这可能通过发出以下命令对网络服务造成严重破坏。
systemctl stop NetworkManager
Run Code Online (Sandbox Code Playgroud)
然后启用网络
systemctl start network
Run Code Online (Sandbox Code Playgroud)
再次出现相同的错误,然后我杀死了 dhclient 进程,并再次尝试启动网络服务,再次遇到相同的错误。
失去耐心,因为我当时确实通过 DHCP IP 在服务器上连接到互联网,执行了“yum remove Network Manager”并尝试重新启动,再次无济于事。我不确定这是否是一个好主意,但无论如何它都不起作用。
我似乎已经用尽了我可以在互联网上找到的建议。想知道是否有其他人知道可能会发生什么。
编辑:还要注意,这不是虚拟机,也不是与虚拟化有关的任何方式。这只是一个 RaspberryPI 3
非常感谢。
编辑:日志条目:
Jan 01 00:00:06 <hostname> systemd[1]: Starting LSB: Bring up/down networking...
Jan 01 00:00:06 <hostname> systemd[1]: network.service: control process exited, code=exited status=6
Jan 01 …Run Code Online (Sandbox Code Playgroud) 这是我多次偶然发现的一个问题,但我仍然没有解决方案。
我有一个带有两个接口的 NetworkManager 托管盒。我们将它们称为eth0和eth1。
两者都需要通过 dhcp 获取 ip,并且都添加了默认网关。我想要的是让其中之一不应用默认的 gw。
在这种情况的最后一次迭代中,我了解到 NetworkManager 从/etc/dhcp/dhclient.conf创建/var/lib/NetworkManager/dhclient-eth0.conf。
这是 NetworkManager 缺少的功能吗?还是我应该尝试创建一个新的dhclient.conf,其中包含具有不同请求部分的每个 iface 的 dhcp 请求信息?
我在ubuntu/trusty64VirtualBox 中使用Vagrant box。我想根据 Vagrant 的默认界面永久禁用nameserver 10.0.2.3set by 。resolvconfeth0
我的网络定义Vagrantfile如下:
server.vm.network "private_network", type: "dhcp", virtualbox__intnet: true
Run Code Online (Sandbox Code Playgroud)
这将创建一个eth1具有 DHCP 拉取设置的接口。该resolv.conf如下所示:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.2.3
nameserver 10.20.30.40
search local
Run Code Online (Sandbox Code Playgroud)
nameserver 10.0.2.3并search local从DHCP设置从何而来eth0 nameserver 10.20.30.40 来自 DHCP 设置 eth1 我想保留后者(10.20.30.40),同时禁用来自eth0. 我可以使用 暂时删除它resolvconf -d …
在 Linux Mint 上,当我查看/etc/resolv.conf文件时,第一条评论指出该/etc/resolv.conf文件是由resolvconf(8).
~ $ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
Run Code Online (Sandbox Code Playgroud)
解释一下resolvconf(8)手册页:
resolvconf 程序由 dhclient 等 DHCP 客户端运行
我跑dhclient wlan0。
~ $ dhclient wlan0
Run Code Online (Sandbox Code Playgroud)
Dhclient 应该使resolvconf程序更新/etc/resolv.conf。该/var/lib/dhcp/dhclient.leases文件验证我是否能够租用名称服务器的 IP 地址 (192.168.0.6)。
~ $ cat /var/lib/dhcp/dhclient.leases
lease {
interface "wlan0";
. . .
option domain-name-servers 192.168.0.6;
. . .
}
Run Code Online (Sandbox Code Playgroud)
但是,该/etc/resolv.conf文件不会更新。该/etc/resolv.conf文件的名称服务器为 127.0.1.1。
~ $ cat /etc/resolv.conf …Run Code Online (Sandbox Code Playgroud) 在Debian NetworkConfiguration wiki 之后,我一直在尝试设置静态OpenNIC DNS,但没有成功。我尝试的第一件事是直接编辑/etc/resolv.conf,但它不断被覆盖。维基页面列出了三种可能的覆盖来源:
- 该
resolvconf程序- 该
network-manager守护进程- DHCP 客户端
$ apt-cache policy resolvconf
resolvconf:
Installed: (none)
Candidate: 1.76.1
Version table:
1.76.1 0
500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
$ apt-cache policy network-manager
network-manager:
Installed: (none)
Candidate: 0.9.10.0-7
Version table:
0.9.10.0-7 0
500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
Run Code Online (Sandbox Code Playgroud)
考虑到我没有resolvconf或没有network-manager安装,我们可以假设源是一个 DHCP 客户端。我正在使用wicd作为替代network-manager,但在wicd-gtk属性中设置静态 dns不起作用。因此,我/etc/dhcp/dhclient.conf通过添加进行编辑supersede domain-name-servers 50.116.40.226;,但我/etc/resolv.conf的仍然是:
$ cat /etc/resolv.conf …Run Code Online (Sandbox Code Playgroud) 无论我通过 DHCP 获得什么,我都想使用某些 DNS 服务器。我正在尝试配置 dhclient 以忽略这些,但我似乎无法让它工作。
根据本文的建议,我supersede domain-name-servers 8.8.8.8, 8.8.4.4;在我的/etc/dhcp/dhclient.conf文件中添加了节。我还尝试了来自 superuser.com 的这些答案,domain-name-servers并domain-search从request指令中删除了值。这两者,单独应用以及一起应用,似乎都没有效果。运行sudo dhclient -r然后sudo dhclient,我仍然在以下条目中找到以下条目/etc/resolvconf/run/interfaces/enp2s0.dhclient:
domain lan
nameserver 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
哪个提示resolvconf放入nameserver 192.168.1.1我的/etc/resolv.conf文件。
我仔细检查了我是否没有遗漏任何分号或类似的语法元素。我怎样才能让我的配置工作?我不想删除 resolvconf,因为它在我使用企业 VPN 时管理我的名称服务器中的更改并且它做得很好。看起来 dhclient 是这里的违规方。
/etc/dhcp/dhclient.conf为了清楚起见,这是我目前删除的默认评论:
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, host-name,
dhcp6.name-servers, dhcp6.domain-search, …Run Code Online (Sandbox Code Playgroud) Debian Bug #838871有解决方法吗?
问题:我想在 Debian 上进行具有以下属性的网络配置:
执行此操作的标准方法是以下代码段/etc/network/interfaces:
allow-hotplug eth0
iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)
但是,这会导致链接错误报告中描述的问题:当没有插入网络电缆时,引导过程阻塞 >1 分钟,并显示以下消息:
configuring network interfaces... ifup: waiting for lock on /run/network/ifstate.eth0
Run Code Online (Sandbox Code Playgroud)
此问题中给出的解决方法似乎正在更改allow-hotplug为auto:
auto eth0
iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)
这有效地使引导阻止消息消失,但是,系统现在在 tty1 显示登录提示之前阻止。这次 dhclient 阻塞是因为它试图在未连接的 eth0 上获取 dhcp 回复,并等待几次尝试超时。登录提示仅在 dhclient 超时后出现。
对于使用图形 DE 的用户,这可能不是问题,因为他们不需要登录 tty1,而是他们的 DE 启动并且他们永远不会看到 dhclient 消息。
另一种解决方法可能是使用network-manager. 理想情况下,我宁愿不使用 networkmanager,但作为最后的手段,我尝试了。但是,在 Debian buster 上,network-manager 的依赖链与sysvinit-core我的 init 系统冲突。
我想到的最后一个选择是不在接口(5)中配置 eth0。这会使所有引导块消失,但是,我需要ifup …
我不明白为什么我在一台机器(debian 9)上有这么多 /etc/resolv.conf.dhclient-new.xxxx 文件
/etc/dhcp/dhclient.confoption rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
Run Code Online (Sandbox Code Playgroud)
/etc/network/interfacessource /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto wlan0
allow-hotplug eth0
iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)
#lsattr /etc/resolv.conf
----i---------e---- /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud) 我需要在我的前面加上/etc/resolv.conf一个条目。我的界面是enp0s3。所以我创建/etc/dhcp/dhclient-enp0s3.conf并添加了以下行:
prepend domain-name-servers 127.0.0.2
Run Code Online (Sandbox Code Playgroud)
当我重新启动 CentOS VM 时,NetworkManager 会自动创建此文件: /var/lib/NetworkManager/dhclient-enp0s3.conf
当我发现我可以看到 /etc/dhcp 中的 dhclient-enp0s3.conf 文件被正确读取时:
[root@localhost network-scripts]# cat /var/lib/NetworkManager/dhclient-enp0s3.conf
# Created by NetworkManager
# Merged from /etc/dhcp/dhclient-enp0s3.conf
prepend domain-name-servers 127.0.0.2
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option ms-classless-static-routes code 249 = array of unsigned integer 8;
option wpad code 252 = string;
also request rfc3442-classless-static-routes;
also request ms-classless-static-routes;
also request static-routes;
also request wpad;
also request ntp-servers;
Run Code Online (Sandbox Code Playgroud)
但是,当我 cat 时/etc/resolv.conf,前置的名称服务器不会出现在任何地方。我也 …
dhclient ×12
dhcp ×9
debian ×5
centos ×2
dns ×2
networking ×2
resolv.conf ×2
resolvconf ×2
hostname ×1
ntp ×1
ntpd ×1
vagrant ×1