zoukankan      html  css  js  c++  java
  • 虚拟机中设置 CentOS 静态 IP

    作为开发人员在工作和学习中通过虚拟机使用 Linux 的情况肯定会非常多,但是 Linux 自带的终端使用体验较差,所以绝大多数使用者都会在宿主机上使用第三方 SSH工具(例如 Xshell)进行连接,然而在虚拟机中如果使用的是动态 IP 则会出现这次连接可以但下次连不上的情况,因为 IP 动态获取的嘛,是会变的。所以这篇文章的目的也就在于解决此问题。

    确定虚拟机使用的网络配置

    在设置静态 IP 之前,我们需要确定当前系统动态获取到的一些配置信息,以便我们后续使用。

    IP地址及网卡名称

    作者新装的一台虚拟机,执行的是最小化安装,所以什么工具也没有,使用 ip 来查看,执行结果如下:

    [root@192 ~]# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:90:03:54 brd ff:ff:ff:ff:ff:ff
        inet 192.168.234.130/24 brd 192.168.234.255 scope global noprefixroute dynamic ens33
           valid_lft 1650sec preferred_lft 1650sec
        inet6 fe80::a120:30fb:6867:daed/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    

    分析以上结果,我们可以看到网卡名称为 ens33,IP 地址为 192.168.234.130,根据 IP 地址后的 /24 可以得知为 C 类地址,子网掩码为 255.255.255.0 (可参考 ip地址后边加个/8(16,24,32)是什么意思?)
    网卡名称及 IP 地址

    DNS 地址

    CentOS 使用的 DNS 配置放置在 /etc/resolv.conf 文件中,可以通过查看此文件内容获取当前 DNS 地址。

    [root@192 ~]# cat /etc/resolv.conf 
    # Generated by NetworkManager
    search localdomain
    nameserver 192.168.234.2
    

    根据文件内容可以知道 DNS 服务器地址为 192.168.234.2

    网关地址

    网关地址同样可以使用 ip 命令进行查看

    [root@192 ~]# ip route show
    default via 192.168.234.2 dev ens33 proto dhcp metric 100 
    192.168.234.0/24 dev ens33 proto kernel scope link src 192.168.234.133 metric 100 
    

    根据执行结果我们可以看到使用的网关地址为 192.168.234.2

    汇总

    根据之前的结果,我们可以汇总得到现有的网络配置信息:

    • 网卡名:ens33
    • IP 地址:192.168.234.130
    • 子网掩码:255.255.255.0
    • DNS:192.168.234.2
    • 网关:192.168.234.2

    修改 CentOS 系统设置

    相比于查看来说,设置部分相对会简单很多,修改一个文件就可以了,文件路径 /etc/sysconfig/network-scripts,之前我们查看到虚拟机的网卡名为 ens33,在这个目录下有个文件为 ifcfg-ens33,这个就是网卡对应的配置文件。

    文件内包含当前网卡的网络配置,默认的是通过 DHCP 来动态获取 IP 地址,我们需要修改为静态 IP。

    # 默认内容
    BOOTPROTO="dhcp"
    # 修改后的内容
    BOOTPROTO="static"
    
    # 检查以下内容,必须为 “yes”
    ONBOOT="yes"
    

    在文件中添加以下内容,其中地址除 IP 地址为手动指定外,其他的均为之前动态获取的内容

    IPADDR="192.168.234.71"
    NETMASK="255.255.255.0"
    GATEWAY="192.168.234.2"
    DNS1="192.168.234.2"
    

    修改后重新启动网络服务

    [root@192 ~]# systemctl restart network
    

    之后重新查看地址(如果使用三方 SSH 工具则需要重新连接),可以看到 IP 地址已经变更为我们指定的地址,以后连接就不会出现获取的地址和之前不一样的情况了

    [root@192 ~]# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:90:03:54 brd ff:ff:ff:ff:ff:ff
        inet 192.168.234.71/24 brd 192.168.234.255 scope global noprefixroute ens33
           valid_lft forever preferred_lft forever
        inet6 fe80::a120:30fb:6867:daed/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    
    
  • 相关阅读:
    SSL JudgeOnline 1194——最佳乘车
    SSL JudgeOnline 1457——翻币问题
    SSL JudgeOnlie 2324——细胞问题
    SSL JudgeOnline 1456——骑士旅行
    SSL JudgeOnline 1455——电子老鼠闯迷宫
    SSL JudgeOnline 2253——新型计算器
    SSL JudgeOnline 1198——求逆序对数
    SSL JudgeOnline 1099——USACO 1.4 母亲的牛奶
    SSL JudgeOnline 1668——小车载人问题
    SSL JudgeOnline 1089——USACO 1.2 方块转换
  • 原文地址:https://www.cnblogs.com/aotian/p/11613494.html
Copyright © 2011-2022 走看看