wul*_*lxz 7 networking linux networkmanager fedora-19
我只想为 LAN 中的 Fedora 19 机器设置一个静态 IP 地址。我习惯使用/etc/network/interfaces
debian,但该文件在此处不存在。
在谷歌搜索了一下之后,我发现了一个小教程,它告诉人们通过 systemctl 禁用 NetworkManager 并启用网络。之后,您可以在名为 .zip 的文件中配置静态 IP 地址/etc/sysconfig/network-scripts/ifcfg-*interfacename*
。
这是我的第一个问题:我找到了一个文件,其中显示了我的接口的 MAC 地址,ifconfig
但 ifcfg- 之后的名称与 ifconfig 中的名称不匹配。为什么会这样?
我的第二个问题是关于使用 NetworkManager.service 或 network.service。我在论坛上读到,出于兼容性原因,network.service 仍然包含在内,可能很快就会被排除在外。如果network.service 很快就会被NetworkManager.service 取代,我是不是应该选择NetworkManager.service 来配置我的网络接口?如果是,我如何从 shell 使用 NetworkManager 做到这一点?
编辑:
以下是要求的输出:
[root@bitch /]# ifconfig
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 97 bytes 12042 (11.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 97 bytes 12042 (11.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
p3p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.178.11 netmask 255.255.255.0 broadcast 192.168.178.255
inet6 fe80::214:85ff:febc:1c63 prefixlen 64 scopeid 0x20<link>
ether 00:14:85:bc:1c:63 txqueuelen 1000 (Ethernet)
RX packets 134347 bytes 169988336 (162.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 78199 bytes 6595669 (6.2 MiB)
TX errors 0 dropped 0 overruns 1 carrier 0 collisions 0
[root@bitch /]# ls -l /etc/sysconfig/network-scripts/
total 200
-rw-r--r--. 1 root root 437 Sep 15 02:05 ifcfg-enp2s5
-rw-r--r--. 1 root root 254 May 31 09:49 ifcfg-lo
lrwxrwxrwx. 1 root root 24 Jun 27 19:12 ifdown -> ../../../usr/sbin/ifdown
-rwxr-xr-x. 1 root root 627 May 31 09:49 ifdown-bnep
-rwxr-xr-x. 1 root root 5553 May 31 09:49 ifdown-eth
-rwxr-xr-x. 1 root root 781 May 31 09:49 ifdown-ippp
-rwxr-xr-x. 1 root root 4141 May 31 09:49 ifdown-ipv6
lrwxrwxrwx. 1 root root 11 Jun 27 19:12 ifdown-isdn -> ifdown-ippp
-rwxr-xr-x. 1 root root 1642 May 31 09:49 ifdown-post
-rwxr-xr-x. 1 root root 1068 May 31 09:49 ifdown-ppp
-rwxr-xr-x. 1 root root 837 May 31 09:49 ifdown-routes
-rwxr-xr-x. 1 root root 1444 May 31 09:49 ifdown-sit
-rwxr-xr-x. 1 root root 1462 May 31 09:49 ifdown-tunnel
lrwxrwxrwx. 1 root root 22 Jun 27 19:12 ifup -> ../../../usr/sbin/ifup
-rwxr-xr-x. 1 root root 12445 May 31 09:49 ifup-aliases
-rwxr-xr-x. 1 root root 859 May 31 09:49 ifup-bnep
-rwxr-xr-x. 1 root root 10234 May 31 09:49 ifup-eth
-rwxr-xr-x. 1 root root 12033 May 31 09:49 ifup-ippp
-rwxr-xr-x. 1 root root 10437 May 31 09:49 ifup-ipv6
-rwxr-xr-x. 1 root root 804 May 31 09:49 ifup-ipx
lrwxrwxrwx. 1 root root 9 Jun 27 19:12 ifup-isdn -> ifup-ippp
-rwxr-xr-x. 1 root root 642 May 31 09:49 ifup-plip
-rwxr-xr-x. 1 root root 1043 May 31 09:49 ifup-plusb
-rwxr-xr-x. 1 root root 2609 May 31 09:49 ifup-post
-rwxr-xr-x. 1 root root 4154 May 31 09:49 ifup-ppp
-rwxr-xr-x. 1 root root 1925 May 31 09:49 ifup-routes
-rwxr-xr-x. 1 root root 3268 May 31 09:49 ifup-sit
-rwxr-xr-x. 1 root root 2607 May 31 09:49 ifup-tunnel
-rwxr-xr-x. 1 root root 3775 May 31 09:49 ifup-wireless
-rwxr-xr-x. 1 root root 4623 May 31 09:49 init.ipv6-global
-rw-r--r--. 1 root root 13836 May 31 09:49 network-functions
-rw-r--r--. 1 root root 26134 May 31 09:49 network-functions-ipv6
Run Code Online (Sandbox Code Playgroud)
/etc/sysconfig/network-scripts/ifcfg-enp2s5 的内容:
PEERROUTES="yes"
IPV6INIT="yes"
NAME="enp2s5"
IPV6_PEERDNS="yes"
DEFROUTE="yes"
UUID="7622e20e-3f2a-4b5c-83d8-f4f6e22ed7ec"
PEERDNS="yes"
IPV4_FAILURE_FATAL="no"
HWADDR="00:14:85:BC:1C:63"
BOOTPROTO="static"
IPV6_DEFROUTE="yes"
IPV6_AUTOCONF="yes"
IPV6_FAILURE_FATAL="no"
TYPE="Ethernet"
ONBOOT="yes"
IPV6_PEERROUTES="yes"
IPADDR=192.168.178.11
NETMASK=255.255.255.0
BROADCAST=192.168.178.255
NETWORK=192.168.178.0
GATEWAY=192.168.178.1
Run Code Online (Sandbox Code Playgroud)
为 udevd 查找 dmesg:
[root@bitch network-scripts]# dmesg | grep udevd
[ 0.788381] systemd-udevd[97]: starting version 204
[ 2.457296] systemd-udevd[322]: starting version 204
[ 3.110272] systemd-udevd[329]: renamed network interface eth0 to p3p1
Run Code Online (Sandbox Code Playgroud)
经过大量挖掘,我发现ifcfg-*文件名和文件中的NAME=
变量与实际赋值几乎没有关系。你可以随意将它们更改为任何你想要的......我在我的机器上做了一个测试,将它们更改eth0
为手动/静态 IP 在启动时仍然应用。这里的关键似乎HWADDR
是文件内的变量。该NAME=
值似乎只是图形网络管理器设置中显示的名称。所以,话虽如此,我相信你需要做的就是......
确保NetworkManager.service
仍处于启用状态,并且network.service
已禁用。
最重要的步骤是删除当前的ifcfg-enp2s5脚本。
sudo rm /etc/sysconfig/network-scripts/ifcfg-enp2s5
Run Code Online (Sandbox Code Playgroud)创建一个名为ifcfg-p3p1的新脚本
sudo nano /etc/sysconfig/network-scripts/ifcfg-p3p1
Run Code Online (Sandbox Code Playgroud)将ifcfg-p3p1的内容设置为以下内容,并使用所需的设置更新相应的 IP 设置。
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=p3p1
UUID=7622e20e-3f2a-4b5c-83d8-f4f6e22ed7ec
ONBOOT=yes
DNS1=10.0.0.1
IPADDR0=10.0.0.2
PREFIX0=24
GATEWAY0=10.0.0.1
HWADDR=00:14:85:BC:1C:63
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
Run Code Online (Sandbox Code Playgroud)至于为什么ifcfg-*名称与实际设备名称不同。我不知道,但怀疑这与安装过程中如何应用网络设置有关。
在DNS 服务器文本框中输入您的 DNS 服务器(例如 10.0.0.1)
它应该会使用您在前面步骤中输入的静态地址信息自动重新打开。如果它没有打开,请单击切换开关将其打开。
回答您有关使用NetworkManager.service
over 的问题network.service
。绝对有可能在以后的版本中将其删除。不过,作为一般经验法则,无论主题是什么,您都应该始终尽量避免使用“为向后兼容而包含”的任何内容。所以,NetworkManager
如果可以,你应该坚持使用。