跳到主要内容

CentOS系统配置静态IP地址

为什么需要静态IP地址

在企业内部网络中,计算机是从本地连接的路由器中获取IP地址的,默认情况下这是一个动态IP地址,即每次从路由器中获取IP是随机变化的。这种规则用于普通客户机访问网络并没有什么影响,但如果是一台服务器(如悦库企业网盘服务端),则需要一个静态的IP地址,以便其他客户机以固定方式连接到服务器,而不是经常修改连接服务器的IP地址。

如何配置静态IP地址

以下例子中,当前的动态IP为:192.168.0.13,我们将配置为静态IP: 192.168.0.180 。本教程在CentOS 7.6.1810上验证通过。

静态IP必须和当前动态IP的网段一致,否则可能导致网络无法连接。如果静态IP已经被分配给网络中的其他主机,会造成IP冲突,网络无法连接,直接将当前动态IP配置为静态IP可以避免这一情况。

  1. 查看当前动态IP

    ifconfig

    输出内容

    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.0.11 netmask 255.255.255.0 broadcast 192.168.0.255
    inet6 fe80::7b46:d16a:426:8c82 prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:7a:3d:dd txqueuelen 1000 (Ethernet)
    RX packets 12378 bytes 18195589 (17.3 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 4276 bytes 292262 (285.4 KiB)
    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 1000 (Local Loopback)
    RX packets 0 bytes 0 (0.0 B)
    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

    其中 ens33 是用物理网线连接的网卡名称,这是一个局域网IP,地址:192.168.0.11 。

  2. 配置静态IP地址

    ls /etc/sysconfig/network-scripts/

    输出如下内容,其中ifcfg-ens33就是ens33网卡名称对应的网络配置文件 :

    ifcfg-ens33  ifdown-eth   ifdown-isdn    ifdown-sit       ifup          ifup-ib    ifup-plip   ifup-routes       ifup-tunnel  network-functions-ipv6
    ifcfg-lo ifdown-ib ifdown-post

    备份现有的配置文件,这样如果配置错误可以恢复。

    sudo cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak

    使用vi编辑器打开

    sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

    如果使用xshell方式,请在vi编辑器命令模式下输入(避免复制格式混乱):

    :set paste

    文件内容如下:

    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="dhcp"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="74ca9b68-1475-4b02-9750-f48b871504df"
    DEVICE="ens33"
    ONBOOT="yes"

    配置文件修改如下:

    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static" #dhcp改为static
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="74ca9b68-1475-4b02-9750-f48b871504df"
    DEVICE="ens33"
    ONBOOT="yes" #开机启用本配置
    IPADDR=192.168.0.180 #静态IP
    GATEWAY=192.168.0.1 #默认网关
    NETMASK=255.255.255.0 #子网掩码
    DNS1=192.168.0.1 #DNS地址1
    DNS2=223.6.6.6 #DNS地址2
  3. 重启网络服务使配置生效

    sudo service network restart
  4. 验证结果

    ifconfig

    输出内容

    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.0.180 netmask 255.255.255.0 broadcast 192.168.0.255
    inet6 fe80::7b46:d16a:426:8c82 prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:7a:3d:dd txqueuelen 1000 (Ethernet)
    RX packets 639696 bytes 953993376 (909.7 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 276392 bytes 18591499 (17.7 MiB)
    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 1000 (Local Loopback)
    RX packets 0 bytes 0 (0.0 B)
    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