Mercurial > collection-shell
annotate Linux_network_config.sh @ 1:dad2bfc2913c
fix:Linux_network_config.sh Content not saved
author | Nineveh <liny.jii@nnsui.com> |
---|---|
date | Mon, 07 Oct 2024 09:38:13 +0800 |
parents | 931d6c18fe53 |
children | fa0865bcac46 |
rev | line source |
---|---|
1
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
1 #!/bin/bash |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
2 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
3 # 检测系统版本 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
4 OS_VERSION=$(awk -F= '/^NAME/{print $2}' /etc/os-release) |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
5 echo "当前系统版本: $OS_VERSION" |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
6 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
7 # 根据系统选择对应的网络配置方式 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
8 if [[ $OS_VERSION == *"Ubuntu"* ]]; then |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
9 CONFIG_DIR="/etc/netplan" |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
10 elif [[ $OS_VERSION == *"CentOS"* ]]; then |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
11 CONFIG_DIR="/etc/sysconfig/network-scripts" |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
12 else |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
13 echo "不支持的系统版本" |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
14 exit 1 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
15 fi |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
16 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
17 # 检测所有检测到的网卡,并列出显示网卡名称 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
18 echo "检测到的网卡:" |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
19 ip link show | grep -oP '(?<=en)\w+' | sort -u |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
20 echo "请通过123的方式选择需要编辑的网卡: " |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
21 read -p "网卡名称: " NIC |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
22 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
23 # 询问用户是否需要配置单网卡多IP还是当前网卡只配置一个IP |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
24 echo "1. 配置单网卡多IP" |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
25 echo "2. 当前网卡只配置一个IP" |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
26 read -p "请选择(1/2): " IP_MODE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
27 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
28 # 配置网络设置 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
29 CONFIG_FILE="${CONFIG_DIR}/01-netcfg.yaml" |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
30 echo "network:" > $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
31 echo " version: 2" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
32 echo " renderer: networkd" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
33 echo " ethernets:" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
34 echo " $NIC:" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
35 echo " dhcp4: no" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
36 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
37 if [[ $IP_MODE == "1" ]]; then |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
38 # 单网卡多IP配置 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
39 read -p "请输入第一个IP地址: " IP1 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
40 read -p "请输入子网掩码: " SUBNET1 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
41 read -p "请输入网关: " GATEWAY1 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
42 echo " - $IP1/$SUBNET1" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
43 echo " gateway4: $GATEWAY1" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
44 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
45 while true; do |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
46 read -p "是否需要添加更多IP? (y/n): " ADD_MORE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
47 if [[ "$ADD_MORE" == "y" || "$ADD_MORE" == "Y" ]]; then |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
48 read -p "请输入IP地址: " EXTRA_IP |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
49 read -p "请输入子网掩码: " EXTRA_SUBNET |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
50 read -p "请输入网关: " EXTRA_GATEWAY |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
51 echo " - $EXTRA_IP/$EXTRA_SUBNET" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
52 # 为额外的IP地址添加路由 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
53 echo "routes:" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
54 echo " - to: 0.0.0.0/0" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
55 echo " via: $EXTRA_GATEWAY" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
56 echo " on: $NIC" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
57 else |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
58 break |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
59 fi |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
60 done |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
61 else |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
62 # 单IP配置 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
63 read -p "请输入IP地址: " IP |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
64 read -p "请输入子网掩码: " SUBNET |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
65 read -p "请输入网关: " GATEWAY |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
66 echo " - $IP/$SUBNET" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
67 echo " gateway4: $GATEWAY" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
68 fi |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
69 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
70 read -p "请输入DNS: " DNS |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
71 echo " nameservers:" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
72 echo " addresses: [$DNS]" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
73 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
74 # 询问是否需要配置永久静态路由 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
75 read -p "是否需要配置永久静态路由? (1/2): " ROUTE_MODE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
76 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
77 if [[ $ROUTE_MODE == "1" ]]; then |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
78 read -p "请输入目的网络: " DEST_NETWORK |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
79 read -p "请输入子网掩码: " DEST_SUBNET |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
80 read -p "请输入下一跳地址: " NEXT_HOP |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
81 echo "配置静态路由..." |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
82 echo "routes:" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
83 echo " - to: $DEST_NETWORK/$DEST_SUBNET" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
84 echo " via: $NEXT_HOP" >> $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
85 fi |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
86 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
87 # 应用配置并验证 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
88 if [[ $OS_VERSION == *"Ubuntu"* ]]; then |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
89 sudo netplan apply |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
90 elif [[ $OS_VERSION == *"CentOS"* ]]; then |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
91 sudo systemctl restart network |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
92 fi |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
93 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
94 # 输出配置信息 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
95 cat $CONFIG_FILE |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
96 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
97 # 验证配置 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
98 echo "验证配置..." |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
99 ip addr show $NIC |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
100 ip route show |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
101 |
dad2bfc2913c
fix:Linux_network_config.sh Content not saved
Nineveh <liny.jii@nnsui.com>
parents:
0
diff
changeset
|
102 echo "配置完成!" |