在 CentOS 7 虚拟机上,我有一个名为 的界面ens7,如下所示:
[root@localhost ~]# nmcli con show
NAME UUID TYPE DEVICE
Wired connection 1 448101d7-1f8f-4b78-ad90-7efd5be23b08 802-3-ethernet ens7
eth0 d976f7ca-ab7f-4fd0-ab2b-6213815bd1a1 802-3-ethernet eth0
Run Code Online (Sandbox Code Playgroud)
如何让 nmcli10.1.1.1为接口分配 IP 地址ens7?
我尝试nmcli con modify 'Wired connection 1' ipv4.addresses "10.1.1.2"从虚拟机内输入,但没有成功,如 `` 的结果所示,如下所示:
[root@localhost ~]# nmcli con modify 'Wired connection 1' ipv4.addresses "10.1.1.2"
[root@localhost ~]# nmcli device show
GENERAL.DEVICE: eth0
...lots of stuff related to eth0
GENERAL.DEVICE: ens7
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 52:54:00:8F:3B:14
GENERAL.MTU: 1500
GENERAL.STATE: 70 (connecting …Run Code Online (Sandbox Code Playgroud) 这不是如何获取我自己的 IP 地址并将其保存到 shell 脚本中的变量?; 这是尝试恢复How can I list net work devices and ipv4 address on linux without ifconfig/ip command,该命令已被错误地标记为第一个命令的重复项。
那么,在 ip、netstat 或 ifconfig 都不可用的系统中,如何才能看到旧版 IPv4 地址呢?
该系统是一个运行最新 debian 的 docker 容器。
我在虚拟机管理程序上安装了新版本的 CentOS,但发现它/etc/sysconfig/network-scripts/*不存在。在8版本中我设置了例如bootproto=static,ipaddr=192.168.88.101.
在9版本中如何正确设置静态IP?
我一直在使用enp7s0(以太网)和wlp5s0(wifi),但还有一些我不认识的其他网络接口在 dmesg 中定期显示。它们是什么?如何删除它们?
$ sudo dmesg -w
[ 5400.052789] device veth517d19f entered promiscuous mode
[ 5400.052861] br-b6747aa2af8f: port 1(veth517d19f) entered blocking state
[ 5400.052862] br-b6747aa2af8f: port 1(veth517d19f) entered forwarding state
[ 5400.213261] eth0: renamed from veth244244e
[ 5400.222378] IPv6: ADDRCONF(NETDEV_CHANGE): veth517d19f: link becomes ready
[ 5568.791784] veth244244e: renamed from eth0
[ 5568.810950] br-b6747aa2af8f: port 1(veth517d19f) entered disabled state
[ 5568.830903] br-b6747aa2af8f: port 1(veth517d19f) entered disabled state
[ 5568.831278] device veth517d19f left promiscuous mode
[ 5568.831280] br-b6747aa2af8f: …Run Code Online (Sandbox Code Playgroud) 我有几个接口:wlan0、eth0、lo,有时还有 tun0。当我连接到 Juniper VPN,创建一个 tun0 接口时,我在其他接口上的现有连接(可能除了 lo)被中断,它们使用 tun0 接口重新连接。
我只想在我选择的特定连接上使用 tun0,而不是所有连接,也不是默认情况下。如何确保默认接口是 eth0 或 wlan0?的输出在ip addr这里:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether d4:be:d9:65:c1:45 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether …Run Code Online (Sandbox Code Playgroud) 我想查看哪个驱动程序与ip link. 我的第一个想法是找到网络接口/dev并查看设备主要和次要编号以确定相关的驱动程序。但是,网络接口不会出现在/dev.
我有一种感觉,我误解了 Linux 网络堆栈的一些基本知识(可能是因为 netfilter/iptables/tc 可能涉及多个内核模块),所以如果是这样,请解决这个问题。我天真的问题是:
/dev?我在基于 qemu 的虚拟机中运行 CentOS-6.5,具有单个以太网接口,令人惊讶的是,无论谁知道原因,udev 都将其从 eth0 重命名为 eth1(!)
所以我想完全禁用这种行为,即将“net.ifnames=0”传递给内核命令行。它似乎不起作用,行为没有改变。“biosdevname=0”作为内核参数都没有帮助。
% qemu-system-x86_64 -cpu host -boot c -hda my_image.qcow2 -snapshot
-m 1024 --enable-kvm -name vm0 -nographic -display curses -pidfile
/var/run/vm0.pid -mem-path /dev/hugepages -mem-prealloc -monitor
unix:/var/run/vm0monitor,server,nowait -net none -netdev
type=tap,id=net0,script=no,downscript=no,ifname=vhost1,vhost=on
-device virtio-net-pci,netdev=net0,mac=00:00:00:00:00:01,csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off
Run Code Online (Sandbox Code Playgroud)
没有警告或错误,之后我可以登录虚拟机。然而,似乎 udev 已将单个网络接口从 eth0 重命名为 eth1,这是在启动时自动创建的规则文件:
% cat /etc/udev/rules.d/70-persistent-net.rules
# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:00:00:00:00:0
1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
Run Code Online (Sandbox Code Playgroud)
为什么 virtio-pci 驱动会选择 eth1 作为系统中的单一接口?
但是,如果我在没有 mac=.. 选项的情况下运行 qemu,则不会发生这种情况,即。MAC 地址是 qemu 预定义的 52:54:xxx 但我想通过命令行提供 mac。
(编辑:这不仅仅适用于 postfix;这只是我注意到/调试它的地方)
我已经安装了 postfix,但是当它启动并创建它的 chroot 时,它会得到一个空副本,/etc/resolv.conf这意味着它无法解析任何域。
我在各种网络脚本中添加了一些日志记录以查看resolve.conf何时被擦除/重新填充以及postfix何时启动......
这是启动时的日志:
Sun Mar 27 19:12:30 UTC 2016
EXECUTE: root + /sbin/resolvconf2 -d eth0 -f
Sun 27 Mar 19:12:31 UTC 2016
Postfix startup script
Sun Mar 27 19:12:37 UTC 2016
EXECUTE: root + /sbin/resolvconf2 -a eth0
Run Code Online (Sandbox Code Playgroud)
请注意,在调用 resolvconf 以擦除配置然后重新填充它之间有 7 秒的时间。在此期间,/etc/resolv.conf 实际上是空的。postfix(和许多其他服务)在这些调用之间启动。
在清除/重新创建 resolvconf 之间的巨大间隙中启动服务似乎很奇怪。
这是 Raspbian 的全新安装,安装了 Postfix,没有其他更改。
编辑:查看系统日志,由于在 dhcpcd 开始和完成之间没有 DNS,实际上有很多事情失败了。其他服务试图同时启动似乎有缺陷?
我想配置我/etc/network/interfaces以检测不同的接入点并相应地连接到它们。这是该文件的当前状态:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
auto ra0
iface ra0 inet dhcp
wpa-ssid MyNet
wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f
Run Code Online (Sandbox Code Playgroud)
这成功检测到以太网连接并在可用时连接到 MyNet。如何配置它以便它可以检测多个接入点?
这里似乎是答案,但我无法理解说明。
我尝试了多个 GUI(nm、wicd 等),但它们似乎都不适用于我的笔记本电脑。无论如何,我更喜欢通过命令行来完成。
我的 CentOS VPS 有许多我想添加到eth0网络接口的IP 地址。
目前eth0只有 1 个 IPv4 地址,其他地址没有显示。
我的搜索为我提供了IP 别名之类的术语,但这似乎不适用于 CentOS。CentOS Wiki并没有真正显示它是如何完成的。
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0现在您可以编辑新文件 ifcfg-eth0:0 并指定虚拟接口的网络设置。
如何在 CentOS 7 中手动将 IPv4 IP 地址添加到物理网络接口?