我有一个双启动系统(相当旧的机器),装有 Windows 10 和 Ubuntu 19.04。在向网络管理员注册我的 MAC 地址后,如果我登录 Windows,我可以通过 DHCP 获取 IP,并且可以访问互联网。在 Ubuntu 上,DHCP 似乎不起作用,即
sudo dhclient -v -s DHCP 服务器 IP 我的接口名称
超时。如果我登录 Windows,通过 DHCP 获取 IP,运行 ipconfig /all,对其进行截图,然后登录 Ubuntu 并从 Windows 中截取的屏幕截图中手动分配默认网关、IP、子网和 DNS 设置,那么我就可以在 Ubuntu 中访问互联网,但前提是 Windows 中授予的 DHCP 租约(租约结束时间打印在 ipconfig /all 中)有效。我的网络管理员说服务器不支持 Ubuntu。有没有办法让服务器知道它是在与 Windows 计算机还是 Ubuntu 计算机通信?如果有,那么为什么在手动分配 Windows 中的设置后,我可以让 Ubuntu 连接?我怎样才能避免这种循环回到 Windows?在 Ubuntu 上运行 Windows VM 只是为了延长 DHCP 租约,这样可行吗?我对这些问题不是很了解。
编辑 1:dhcpdump 日志在这里https://pastebin.com/zSyC5u64
答案1
好吧,我似乎找到了解决方案。如所述评论,使用 Wireshark 检查 Windows 和 Ubuntu 的 DHCP 发现数据包确实发现了差异。Windows 发送的一些 DHCP 选项与 Ubuntu 中的不同,特别是选项 60,供应商类别标识符。
然后我进行了修改/etc/dhcp/dhclient.conf
,使我的 Ubuntu DHCP 数据包与 Windows 中的数据包相似。它最初不起作用,但随后使用选项(允许将配置文件作为参数读取)dhclient
手动运行,显示我修改的文件中存在语法错误,因为缺少分号。-v -cf
-cf
dhclient.conf
到目前为止一切进展顺利,我现在可以看到租约的授予和续签/var/lib/dhcp/dhclient.leases
。感谢 chili555 花费大量时间来帮助我!