Fedora 中使用 NetworkManager 的静态 IP 地址

Fedora 中使用 NetworkManager 的静态 IP 地址

我只是想为局域网中的 Fedora 19 机器设置一个静态 IP 地址。我习惯使用/etc/network/interfacesDebian,但该文件在这里不存在。
在谷歌搜索了一番后,我找到了一个小教程,它告诉你如何通过 systemctl 禁用 NetworkManager 并启用网络。之后,你可以在名为 的文件中配置静态 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

/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

使用 grepping dmesg 查找 udevd:

[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

答案1

命令行指令

经过大量挖掘,我发现ifcfg-*文件名,NAME=文件中的变量与实际分配关系不大。你可以将它们更改为任何你想要的...我在我的机器上进行了测试,将它们更改为,eth0并且启动时仍然应用手动/静态 IP。这里的关键似乎是HWADDR文件内的变量。该NAME=值似乎只是图形网络管理器设置中显示的名称。所以,话虽如此,我相信你需要做的就是...

  1. 确保NetworkManager.service仍然启用,并且network.service已被禁用。

  2. 最多重要的步骤是删除当前ifcfg-enp2s5脚本。

    sudo rm /etc/sysconfig/network-scripts/ifcfg-enp2s5
    
  3. 创建一个名为的新脚本IFCFG-P3P1

    sudo nano /etc/sysconfig/network-scripts/ifcfg-p3p1
    
  4. 设置内容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
    

至于为什么ifcfg-*名称与实际设备名称不同。我不知道,但怀疑这与安装过程中应用网络设置的方式有关。

图形说明

  1. 打开系统设置
  2. 点击网络
  3. 点击选项...
  4. 点击IPv4 设置*或者IPv6 设置选项卡,具体取决于您的家庭网络使用的 IP 版本(最有可能IPv4)。
  5. 点击方法组合框并选择手动的选项。
  6. 点击添加按钮。
  7. 地址列(例如 10.0.0.20)。
  8. 网络掩码列(例如 255.255.255.0)。
  9. 网关列(例如 10.0.0.1)
  10. DNS 服务器文本框(例如 10.0.0.1)

    有线连接选项对话框

  11. 点击节省...
  12. 当你返回网络设置,打开有线界面离开
  13. 它应该会自动使用您在前面步骤中输入的静态地址信息重新打开。如果没有打开,请单击切换开关将其打开。

    手动 IP 选择后的网络设置


回答你关于使用 over 的问题NetworkManager.servicenetwork.service在以后的版本中,它肯定有可能被删除。不过,作为一般经验法则,无论主题是什么,你都应该尽量避免使用任何“包含向后兼容性”。因此,你应该坚持使用NetworkManager 如果可以的话

答案2

我不使用 Fedora,但是根据这个帖子,您正在寻找的文件应该是/etc/sysconfig/network-scripts/ifcfg-p3p1这样的:

DEVICE=eth0
BOOTPROTO=none
HWADDR=00:13:20:5E:C0:47
ONBOOT=yes
DHCP_HOSTNAME=balthasar.benhome.com
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=no
IPADDR=172.16.3.3
NETMASK=255.255.255.192
GATEWAY=172.16.3.1

在那里设置 IP 应该就可以了。

相关内容