编辑网卡文件,重启网关
cd /etc/sysconfig/network-scripts
vim ifcfg-enn33
//修改
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.1.1
GATEWAY=192.168.1.2
NETMASK=255.255.255.0
DNS=192.168.1.1
//重启
service network restart
设置静态IP(新)
1、centos7
- 打开终端并以root用户身份登录。
- 编辑网络配置文件。使用以下命令打开网络配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
注意:如果您的网络接口不是eth0,请相应地更改文件名。
- 在文件中,找到并修改以下行:
BOOTPROTO=static
ONBOOT=yes
将BOOTPROTO的值更改为static,将ONBOOT的值更改为yes。
- 添加以下行来定义您的IP地址、子网掩码、网关和DNS服务器:
IPADDR=your_ip_address
NETMASK=your_netmask
GATEWAY=your_gateway
DNS1=your_dns_server1
DNS2=your_dns_server2
将"your_ip_address"替换为您想要设置的固定IP地址,将"your_netmask"替换为子网掩码,将"your_gateway"替换为网关的IP地址,将"your_dns_server1"和"your_dns_server2"替换为您的DNS服务器的IP地址。
- 保存并关闭文件。
- 重启网络服务以使更改生效。使用以下命令重启网络服务:
systemctl restart network
现在您的CentOS 7系统应该已经设置了固定IP地址。
请注意,这些步骤假设您正在使用以太网接口eth0。如果您使用的是其他网络接口,请相应地更改文件名和接口名称。
脚本自动修改
#!/usr/bin/env python
# -*- coding:utf8 -*-
import os
import re
local_ipv4_checker = re.compile(
"(?:(?:10(?:(?:\\.1[0-9][0-9])|(?:\\.2[0-4][0-9])|(?:\\.25[0-5])|(?:\\.[1-9][0-9])|(?:\\.[0-9])))|(?:172("
"?:\\.(?:1[6-9])|(?:2[0-9])|(?:3[0-1])))|(?:192\\.168))(?:(?:\\.1[0-9][0-9])|(?:\\.2[0-4][0-9])|(?:\\.25["
"0-5])|(?:\\.[1-9][0-9])|(?:\\.[0-9])){2}")
def configure_ifcfg_ens33():
# 获取本机以192开头的IP地址
def get_local_ip():
ips = os.popen("ip -o -f inet addr show | awk '$4 ~ /192/ {print $4}'").readlines()
return ips[0].strip().split('/')[0]
ip = get_local_ip()
ip_prefix = ip[:ip.rfind(".") + 1]
if IP is not None:
ip = ip_prefix + IP
if not local_ipv4_checker.match(ip):
print("IP地址不合法:%s,放弃修改" % ip)
return
backup_file = "/etc/sysconfig/network-scripts/ifcfg-%s.bak" % interface_name
exist = os.path.exists(backup_file)
if exist and not force:
print("备份文件已存在,不再执行")
return
if not exist:
# 备份原始文件
os.system("cp /etc/sysconfig/network-scripts/ifcfg-%s %s" % (interface_name, backup_file))
print("备份成功,原始文件已保存为%s" % backup_file)
# 读取原始文件内容
with open(backup_file, "r") as f:
content = f.read()
# 修改BOOTPROTO为static
content = re.sub(r"BOOTPROTO=dhcp", "BOOTPROTO=static", content)
# 追加IPADDR、NETMASK、GATEWAY和DNS1
content += "\nIPADDR=%s\n" % ip
content += "NETMASK=255.255.255.0\n"
content += "GATEWAY=%s.1\n" % ip_prefix
content += "DNS1=%s.1\n" % ip_prefix
content += "DNS2=223.5.5.5\n"
# 修改文件内容
with open("/etc/sysconfig/network-scripts/ifcfg-ens33", "w") as f:
f.write(content)
print("修改成功,修改后的文件为/etc/sysconfig/network-scripts/ifcfg-%s" % interface_name)
if __name__ == "__main__":
IP = None
force = False
interface_name = "ens33"
configure_ifcfg_ens33()
print("配置网卡成功")
if os.system("service network restart"):
print("重启网络服务失败")
else:
print("重启网络服务成功")
2、ubuntu
测试使用的是ubuntu 20.04.6
研究了半天,ubuntu使用netplan管理网络
参考:
https://ubuntu.com/server/docs/network-configuration
https://www.51cto.com/article/721393.html
先备份原来的设置
mv /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak
创建新的配置
cat >/etc/netplan/99_config.yaml <<'EOF'
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # 注意这个是网卡名称
addresses:
- 192.168.31.90/24
routes:
- to: default
via: 192.168.31.1
nameservers:
#search: [mydomain, otherdomain]
addresses: [114.114.114.114, 192.168.31.1]
EOF
原文中有个search字段,我不知道是啥,就注释了,感觉也没影响
然后执行
sudo netplan apply
生效!一开始,我没有移除原有的配置,执行后网卡获取到了两个IP。