使用脚本的方式进行创建

在网上找到很多命令创建,可是重启服务器后,新增的ip地址都会丢失,于是我利用systemctl 服务来每次启动后自动附加ip地址,具体操作如下:

  • 创建脚本文件,命名为 set_ip.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
# 脚本名称:set_ip.sh
# 功能:每次启动后自动附加IP地址
# 输入参数:IP地址
# 输出:无

# 检查输入参数数量
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <ip_address>"
exit 1
fi

# 读取IP地址
ip_address=$1

# 自动检测活动的网络接口
interface=$(ip link show up | grep -v lo | awk '{print $2}' | sed 's/://g' | head -n 1)

if [ -z "$interface" ]; then
echo "No active network interface found."
exit 1
fi

# 设置静态 IP 地址
nmcli con mod "$interface" ipv4.addresses "$ip_address/24"

# 启动网络连接
nmcli connection up "$interface"

echo "Static IP address $ip_address has been set for $interface"

把文件保存到/opt/目录下,并赋予执行权限

  • 编写 systemctl服务
1
sudo vim /etc/systemd/system/set_ip.service

在文件中添加如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
# 服务名称,可自定义
Description = set_ip, nearby ip address
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动命令 /opt/set_ip.sh 替换为自己的目录 和 IP地址
ExecStart = bash /opt/set_ip.sh 10.0.0.118

[Install]
WantedBy = multi-user.target

  • 启动服务和开机启动
1
2
sudo systemctl start set_ip.service
sudo systemctl enable set_ip.service

这样,每次重启服务器后,就会自动附加IP地址,可以使用命令 ip addr 查看当前IP地址。