我获得了一个 rhel7 vmware 模板,用于配置 rhel 7 测试环境。当我创建我的虚拟机时,它启动正常,只是我的网络接口似乎没有出现。如果我输入 ifconfig -a,我会得到以下内容:
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:50:56:XX:XX:XX txqueuelen 1000 (Ethernet)
RX packets 55 bytes 3300 (3.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 792 bytes 62296 (60.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 792 bytes 62296 (60.8 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如您所见,我没有 ens192 的 IP 地址。作为一名程序员而不是系统管理员,我在 Google 上搜索了一番,然后被告知我应该编辑一个 70-persistent-net.rules 文件。我没有这个文件。所以我又搜索了一番,然后了解到我应该运行命令 /lib/udev/write_net_rules。我似乎也没有这个。然后我读到了一些我可以运行的 udevadmn 命令。它们似乎什么也没做。我尝试使用 nmtui 激活连接,但这样做时它会崩溃。
我还尝试了“/etc/init.d/network restart”命令。它失败了,并建议我尝试几个命令来查看原因。因此,当我输入建议的命令“systemctl status network.service”时,我得到了以下输出:
Jan 23 08:30:39 myhostname network[10858]: RTNETLINK answers: File exists
Jan 23 08:30:39 myhostname network[10858]: RTNETLINK answers: File exists
Jan 23 08:30:39 myhostname systemd[1]: network.service: control process exited, code=exited status = 1
Jan 23 08:30:39 myhostname systemd[1]: Failed to start LSB: Bring up/down networking
Jan 23 08:30:39 myhostname systemd[1]: Unit network.service entered failed state.
有什么我没有尝试过的事情可以帮助我让这个接口获得 ipaddress 吗?
谢谢!
答案1
我搞清楚了,也明白了为什么我会收到“阅读手册”类型的评论。这个问题相当简单,我相信任何系统管理员都会马上搞清楚。但对于我们这些出于必要而必须做系统管理员工作的程序员来说,事情是这样的。
简短回答:我的 /etc/sysconfig/network-scripts/ifcfg-ens192 配置中的 MAC 地址不正确。
详细解释:当您从模板配置新的虚拟机时,VMware 会为每个新的虚拟网卡生成一个新的 mac 地址。这似乎很合理。但是,当您查看 VMWare 设置中配置的硬件地址时,它只会在禁用的文本框中显示前四个八位字节,不允许您查看其余部分。配置中的 mac 地址似乎具有相同的前四个八位字节,因此我错误地认为配置中的 mac 地址是正确的。关闭虚拟机后,我可以向右滚动并查看其余的 mac 地址。注意到它不同后,我在配置中对其进行了更改,一切正常。
如果 Redhat 开发人员读过这个网站,请在出现此类错误时提供一些有意义的错误消息。谢谢!
答案2
如果 RHEL 7.2 作为 VMWare VM 运行并依赖 DHCP 分配,请确保您的/etc/sysconfig/network-scripts/ifcfg-ens192
文件具有。出于某种原因,在我的实例中,它在安装期间ONBOOT=yes
被设置为。ONBOOT=no
HWADDR
不需要该线。
/etc/init.d/network restart
修改后,您可以使用或更好的方法重新启动网络systemctl restart network
,并且实例将被分配一个 IP 地址。
答案3
您想添加如下一行:
HWADDR=0A:0B:0C:0D:0E:0F
在 /etc/sysconfig/network-scripts/ifcfg-ensXX 中(XX 可以是某个数字)
使用 vi——说。
然后运行 /etc/init.d/network restart
并输入 ip route
并且您应该有一个 IP 地址和默认网关。
要获取应添加的地址,您需要转到虚拟机设置->硬件->网络适配器->高级
写下其中的 MAC 地址并将其作为上面的 HWADDR= 地址输入。
答案4
确保ifcfg-<name>
是 unix 格式。我见过RTNETLINK answers: File exists
由 windows 行尾引起的错误。修复dos2unix /etc/sysconfig/network-scripts/ifcfg-*