写在前面
这里介绍如何设置静态或者动态ip地址。设置过程参照了徐鲁辉等的《Hadoop大数据原理与应用一书》。
一、找到对应的系统网卡配置文件
以我使用的CentOS 7为例,网卡的配置文件的路径为:/etc/sysconfig/network-scripts/ifcfg-ens33。其余版本的系统可以自行查找。
二、修改配置文件
默认的设置如下,一般是使用动态分配的方式,采用DHCP动态主机配置协议。
BOOTPROTO="dhcp" # 动态分配ip地址
ONBOOT="yes" # 开机自启用
修改为静态ip地址的方式如下:
修改:
BOOTPROTO="static"
ONBOOT="yes"
静态ip还需要在配置文件中添加指定的ip地址、子网掩码、网关和DNS服务器:
IPADDR=192.168.18.131 # 自定义ip地址,注意不要和其他主机冲突
NETMASK=255.255.255.0
GATEWAY=192.168.18.2
DNS1=192.168.18.2
ip地址只要满足192.168.x.x均可,即使用私有地址。
三、使配置文件生效
输入:
systemctl restart network.service
重启网络使配置生效。
四、查看ip地址
输入:
ip address
其中,2:ens33是本机的网卡,UP表示正在启用,LOWER_UP表示网线已连接,link/ether是网卡的物理地址,inet是ipv4的地址,inet6是ipv6的地址,brd是广播地址。
注意:这里有两个ip地址,这是因为我设置了静态地址后,仍使用DHCP协议。也就是说,此时配置文件中仍是:
BOOTPROTO="dhcp" # 动态分配ip地址
这个时候,就会有两个ipv4的地址。第一个ipv4的地址是“192.168.254.130”,它是由DHCP协议动态分配的,它的生命周期还有1289s;第二个ipv4的地址是静态指定的,为“192.168.18.131”,它的生命周期是永久(forever)。
局域网中的其他主机通过这两个ip地址均可以ping通当前主机。
五、其他的一些问题
令人尴尬的是,我用的版本是免费的VMware Workstation 16 Player,它并不能进行NAT网络的设置。这意味着配置了静态ip就无法连外网了(应该是不能吧,如可以请指正( •̀ ω •́ )✧)。但是局域网(即用同一个私有地址子网掩码)中是可以相互ping通的。
解决办法是:需要连外网的时候改成动态ip;不需要连外网,需要在局域网中互联时改成静态ip。虽然麻烦了一点,但也可以用。甚至也不需要改成静态ip,直接使用动态ip即可,因为配置文件中设定了静态ip,当前主机会有两个ip地址,均可以对主机进行访问。
如果用的是VMware Workstation 16 Pro,可以参考这篇博客:解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网进行进一步的配置。
六、静态ip和动态ip的比较
- 静态ip主要是用于准确定位的。
- 动态ip是方便管理,ip由服务器自动分配和回收,但性能会比静态稍微差一点。
一般还是推荐动态ip吧,除非有什么特殊需求。