我在运行 Ubuntu 16.04 的 Connecttech Astro 载板上安装了 Nvidia Jetson TX2 SoC。载板上有两个千兆以太网端口,我想用静态 IP 配置它们。在系统设置 -> 网络:
有线连接 1 ->IPv4 设置:手动 IP:192.168.22.148 掩码:24 默认网关:192.168.22.1
有线连接 2 ->IPv4 设置:手动 IP:192.168.1.148 掩码:24
在正常运行下,此 TX2 通过一个简单的非托管交换机连接到另一个 TX2 和一些其他组件。所有组件都设置了静态 IP,因此它们可以在没有 dhcp 服务器的情况下运行。当 TX2 通电时,一切正常,但 5 分钟后,eth0(有线连接 1)消失。查看系统日志,这似乎是因为 dhclient 没有收到来自 DHCP 服务器的回复(因为没有连接),从而触发接口关闭。avahi-daemon 接管 eth0 并尝试对其进行配置但失败了。我看到 /etc/dhcp/dhclient.conf 中的超时设置为 300 秒。
我试图弄清楚为什么 dhclient 会执行任何操作,因为接口设置为手动并带有静态 IP。
我还通过 /etc/network/interfaces 配置了静态 IP:
auto eth0
iface eth0 inet static
address 192.168.22.148
netmask 255.255.255.0
gateway 192.168.22.1
auto eth1
iface eth1 inet static
address 192.168.1.148
netmask 255.255.255.0
/etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq
[ifupdown]
managed=false
但这并没有什么不同。所以我的问题是,当 eth0 配置为静态时,dhclient 为什么会发出 DHCP 请求?当 eth0 发生故障时,关闭它意味着什么?解决这个问题的正确方法是什么?
还有一些其他信息,1)如果连接了路由器或其他 dhcp 服务器,一切都可以正常工作。2)我有一个类似的硬件配置,使用运行 Ubuntu 14.04 的 Jetson TX1,运行良好。
这篇文章没有帮助:https://askubuntu.com/questions/459140/why-dhclient-is-still-running-when-i-choose-static-ip
答案1
确保 dhclient 没有被任何启动脚本调用或在后台运行。(
ps auxw | grep dhclient
)。你可以用以下命令终止它:pkill -f dhclient
。Ubuntu 中有多种与网络相关的服务和包装器,因此可以通过网络管理器等应用程序调用。如果您运行无头服务器,我建议您禁用网络管理器并依赖本机网络。
sudo systemctl disable NetworkManager.service
应用这些更改后,我将重新启动机器,以确保没有剩余的服务调用 dhclient。
希望这可以帮助!