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