我的 PC 上似乎使用了两个 IP 地址。我使用 DHCP 获取 IP 地址,然后静态设置 IP 地址并激活它。ifconfig 说我正在使用 DHCP 提供的地址,但我也能够连接到静态设置 IP 的网络上的设备。这里发生了什么?
DHCP 地址:172.16.1.99 静态设置地址:10.1.49.200 操作系统:Fedora 8
我有一台为 DHCP 服务器运行 DNSMASQ 的 voyage 2.6.38 机器,我想获取获取 DHCP 租约的客户端的主机名。我该怎么做呢?
我运行 isc-dhcp-server 已经有一段时间了。更新几天后,它无法启动。我发现还有一些人报告了类似的问题,但那是 2009 年的。我也找不到 isc-dhcp-server 进程的日志。但是,如果我手动启动 dhcp 服务器作为`sudo service isc-dhcp-server start',它运行得很好。
以下是输出 dmesg | grep isc-dhcp-server
[ 15.267804] init: isc-dhcp-server main process (1201) terminated with status 1
[ 15.267839] init: isc-dhcp-server main process ended, respawning
[ 15.334785] init: isc-dhcp-server main process (1352) terminated with status 1
[ 15.334821] init: isc-dhcp-server main process ended, respawning
[ 15.492463] init: isc-dhcp-server main process (1359) terminated with status 1
[ 15.492496] init: isc-dhcp-server main process ended, respawning
[ 15.550789] init: isc-dhcp-server main process …Run Code Online (Sandbox Code Playgroud) 如何防止 dhcpcd 设置从服务器获取的主机名?更改它会破坏很多东西(包括 X 会话)。
我当前的发行版是 Gentoo,init 系统是 systemd,dhcpcd 是由 networkmanager 生成的。
我目前使用的是 Ubuntu 14.04,但希望这适用于不同的发行版。
我想在关机期间阻止 DHCP 释放,并选择租约到期或在启动时更新 DHCP(如果需要)。
这可能吗?
编辑:我(曾经)有一个分布式应用程序,它根据域名解析做出不同的响应。如果机器在线但应用程序不可用,则其他机器上的应用程序将其理解为不可用。但是,如果 IP 已被释放(通过关闭),应用程序无法理解它我们不可用,而是挂起或抛出错误。
不幸的是,我不再有重现错误的设置,并且不记得它是挂起还是抛出错误,以及错误是什么。
我正在使用 systemd-networkd 来配置我的接口:
[Match]
Name=enp3s0
[Network]
DHCP=v4
Run Code Online (Sandbox Code Playgroud)
除了在启动时,某些服务不等待 DHCP 完成之外,它运行良好。例如,我的 NFS 挂载目录和 nginx 失败,因为它们启动时没有网络。
有没有办法强制 network.target 等待 DHCP?
编者注。根据文档:
许多网管方案提供了一种无条件拉入network-online.target的方式,从而将network.target的效果提升为network-online.target的效果。
如果你使用 systemd-networkd,你可以通过启用 systemd-networkd-wait-online.service 来做到这一点:
systemctl enable systemd-networkd-wait-online.service
但是我试过了,它没有根据network.target等待 DHCP提供服务。它只提供明确依赖于network-online.target等待 DHCP 的服务,实际上它需要使其工作。
在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) 如果没有 DHCP 服务器,有没有办法配置 systemd-networkd.service 以自动切换到静态 IP 配置?
或者如果 systemd-networkd 不直接支持这个,我可以创建一些其他服务单元,在一些超时后检查 DHCP 是否成功,如果没有配置静态配置?
这似乎是一件很常见的事情,但我没有在任何地方看到它的记录,它一定很简单以至于我错过了它。
我在使用时如何找到 DHCP 租用时间systemd-networkd?
我的网络定义为/etc/systemd/network/eth0.network:
[Match]
Name=eth0
[Network]
DHCP=yes
Run Code Online (Sandbox Code Playgroud)
本网站上还有其他问题要求提供相同的信息,但他们没有使用systemd-networkd但是dhclient或其他方法。
我试过查看journalctl无济于事。我正在使用 ArchLinux。
dhcp ×10
networking ×3
debian ×2
dhclient ×2
dns ×2
hostname ×2
systemd ×2
arch-linux ×1
gentoo ×1
ip ×1
linux ×1
resolv.conf ×1
resolvconf ×1
shutdown ×1
ubuntu ×1