Appleex
Appleex
Published on 2024-08-17 / 46 Visits
0
0

运维 | 固定操作系统的静态 IP

固定操作系统的静态 IP

介绍

操作系统 IP 一般都是动态获取的(重启或者冲突会自动获取可用的 IP),不过在有些场景我们需要固定静态 IP,比如:虚拟机配置、内网穿透配置以及一些使用 IP 地址的程序软件等等。

总之,希望操作系统保持同个 IP 不变的需求,可参考本章内容(持续更新中)。

使用教程

CentOS

CentOS 7.x

  • 配置文件

默认网卡设备文件存放位置:

/etc/sysconfig/network-scripts/

一般该目录下会存在很多文件,我们只需要找到 ifcfg-[网卡设备名] 文件即可,如:ifcfg-ens33

网卡设备名可通过 ifconfig 命令进行查看,可自行查阅网上资料

文件配置信息参考:

TYPE=Ethernet 								# 网卡类型:为以太网
PROXY_METHOD=none            				# 代理方式:关闭状态
BROWSER_ONLY=no                				# 只是浏览器:否
BOOTPROTO=dhcp                				# 网卡的引导协议:DHCP[中文名称: 动态主机配置协议]
DEFROUTE=yes                				# 默认路由:是, 不明白的可以百度关键词 `默认路由`
IPV4_FAILURE_FATAL=no        				# 是不开启IPV4致命错误检测:否
IPV6INIT=yes                				# IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6]
IPV6_AUTOCONF=yes            				# IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6]
IPV6_DEFROUTE=yes            				# IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6]
IPV6_FAILURE_FATAL=no        				# 是不开启IPV6致命错误检测:否
IPV6_ADDR_GEN_MODE=stable-privacy       	# IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略]
NAME=ens33                    				# 网卡物理设备名称
UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698   # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用
DEVICE=ens33                    			# 网卡设备名称, 必须和 `NAME` 值一样
ONBOOT=yes                        			# 是否开机启动, 要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`

示例:

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=em2
UUID=87a3561a-2dc6-4dc0-8269-b545ef4c5f98
DEVICE=em2
ONBOOT=yes
DNS1=8.8.8.8
IPADDR=192.168.1.234
PREFIX=24
GATEWAY=192.168.1.1
PROXY_METHOD=none
BROWSER_ONLY=no
  • 快速设置

修改配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改具体配置项:

i. 设置网卡引导协议为 静态

BOOTPROTO=static

ii. 设置网卡启动方式为 开机启动 并且可以通过系统服务管理器 systemctl 控制网卡

ONBOOT=yes

iii. 配置 IP/子网掩码/网关

IPADDR=192.168.1.111
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

重启网络服务:

systemctl restart network

在 CentOS7 下已全面使用 systemctl 作为服务管理器, 它用来替代 service 和 chkconfig

Ubuntu

Ubuntu 16.x

  • 永久修改

i. 第一步:配置文件

修改 /etc/network/interfaces 文件:

sudo vi /etc/network/interfaces

/etc/network/interfaces 文件内容:

auto eth0						# eth0 为网卡名,具体根据自己的网卡名配置文件夹(ifconfig命令查看),一般是 ens33
iface eth0 inet static			# eth0 跟上面一致  
address 192.168.1.200
netmask 255.255.255.0           # 子网掩码       
gateway 192.168.1.1             # 网关  
broadcast 192.168.1.255       
dns-nameservers 119.29.29.29    # 设置dns服务器  ---这一行是新添加的

ii. 第二步:重启网卡,使之配置生效

sudo /etc/init.d/networking restart

或者

ifdown eth0 # 关闭网卡
ifup eth0 	# 启动网卡

如果不行,可尝试重启系统

  • 临时修改
ifconfig erh0 192.168.1.28  255.255.255.0

Ubuntu 18.x

Ubuntu 18.04 不再使用 ifupdown 配置网络,而改用 netplan

/etc/network/interfaces 配置固定 IP 是无效的,重启网络的命令 services network restrart /etc/init.d/networking restart 也是无效的。

  • 使用 ifupdown 配置网络

如果要使用之前的方式配置网络,需要重新安装 ifupdown

sudo apt install ifupdown

修改配置文件 /etc/network/interfaces

sudo vim /etc/network/interfaces

配置文件修改如下:

iface ens160 inet static  
address 210.72.92.25  
gateway 210.72.92.254  
netmask 255.255.255.0  
dns-nameservers 8.8.8.8

重启网络服务使配置生效:

sudo services network restrart
  • 使用 netplan 配置网络

Ubuntu 18.04 使用 netplan 配置网络,其配置文件是 yaml 格式的。在 /etc/netplan/ 目录下默认的配置文件名是 50-cloud-init.yaml

修改:

sudo vim /etc/netplan/50-cloud-init.yaml

配置文件修改如下:

network:  
ethernets:  
ens160:  
addresses:  
	– 210.72.92.28/24 # IP及掩码  
gateway4: 210.72.92.254 # 网关  
nameservers:  
addresses:  
	– 8.8.8.8 # DNS  
version: 2

重启网络服务使配置生效:

sudo netplan apply

FAQ

如何处理 CentOS7 最小化安装后是没有 ifconfig 命令问题

ip addr

通过 ip 命令加参数 addr 则是查看当前网卡的配置信息, 从下图中可以看出, 当前系统的 ens33 网卡并没有 ipv4 及 ipv6, 没有 ip地址 则只能说明一个问题, 当前 linux 系统是没有办法上网的, lo 这块网卡每一个系统中都会有, 这个称之为 回环网卡

如何处理 ping 其它主机时显示未知域名或服务

假如 ping baidu.com 后出现这种情况,可尝试以下方式

  • 可以先在正常的机子上 ping 后,获取正常的 IP 地址
  • 编辑 /etc/hosts 文件
vi /etc/hosts
  • 输入对应 IP 与记录并保存退出
220.181.57.217 baidu.com www.baidu.com
  • 重新 ping

参考文献


Comment