forked from dnclouddotnet/3proxy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathc7-ipv6-init.sh
119 lines (114 loc) · 3.51 KB
/
c7-ipv6-init.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/bin/bash
YUM=$(which yum)
#####
if [ "$YUM" ]; then
echo > /etc/sysctl.conf
##
tee -a /etc/sysctl.conf <<EOF
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.all.disable_ipv6 = 0
EOF
##
sysctl -p
IPC=$(curl -4 -s icanhazip.com | cut -d"." -f3)
IPD=$(curl -4 -s icanhazip.com | cut -d"." -f4)
##
if [ $IPC == 4 ]
then
tee -a /etc/sysconfig/network-scripts/ifcfg-eth0 <<-EOF
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
IPV6ADDR=2403:6a40:0:40::$IPD:0000/64
IPV6_DEFAULTGW=2403:6a40:0:40::1
EOF
elif [ $IPC == 5 ]
then
tee -a /etc/sysconfig/network-scripts/ifcfg-eth0 <<-EOF
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
IPV6ADDR=2403:6a40:0:41::$IPD:0000/64
IPV6_DEFAULTGW=2403:6a40:0:41::1
EOF
elif [ $IPC == 244 ]
then
tee -a /etc/sysconfig/network-scripts/ifcfg-eth0 <<-EOF
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
IPV6ADDR=2403:6a40:2000:244::$IPD:0000/64
IPV6_DEFAULTGW=2403:6a40:2000:244::1
EOF
else
tee -a /etc/sysconfig/network-scripts/ifcfg-eth0 <<-EOF
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
IPV6ADDR=2403:6a40:0:$IPC::$IPD:0000/64
IPV6_DEFAULTGW=2403:6a40:0:$IPC::1
EOF
fi
service network restart
rm -rf ipv6.sh
### Ubuntu
else
ipv4=$(curl -4 -s icanhazip.com)
IPC=$(curl -4 -s icanhazip.com | cut -d"." -f3)
IPD=$(curl -4 -s icanhazip.com | cut -d"." -f4)
INT=$(ls /sys/class/net | grep e)
if [ "$IPC" = "4" ]; then
IPV6_ADDRESS="2403:6a40:0:40::$IPD:0000/64"
PREFIX_LENGTH="64"
INTERFACE="$INT"
GATEWAY="2403:6a40:0:40::1"
elif [ "$IPC" = "5" ]; then
IPV6_ADDRESS="2403:6a40:0:41::$IPD:0000/64"
PREFIX_LENGTH="64"
INTERFACE="$INT"
GATEWAY="2403:6a40:0:41::1"
elif [ "$IPC" = "244" ]; then
IPV6_ADDRESS="2403:6a40:2000:244::$IPD:0000/64"
PREFIX_LENGTH="64"
INTERFACE="$INT"
GATEWAY="2403:6a40:2000:244::1"
else
IPV6_ADDRESS="2403:6a40:0:$IPC::$IPD:0000/64"
PREFIX_LENGTH="64"
INTERFACE="$INT"
GATEWAY="2403:6a40:0:$IPC::1"
fi
interface_name="$INTERFACE" # Thay thế bằng tên giao diện mạng của bạn
ipv6_address="$IPV6_ADDRESS"
gateway6_address="$GATEWAY"
# kiểm tra cấu hình card mạng
if [ "$INT" = "ens160" ]; then
netplan_path="/etc/netplan/99-netcfg-vmware.yaml" # Thay thế bằng Ä‘Æ°á»ng dẫn tệp cấu hình Netplan của bạn
netplan_config=$(cat "$netplan_path")
new_netplan_config=$(sed "/gateway4:/i \ \ \ \ \ \ \ - $ipv6_address" <<< "$netplan_config")
new_netplan_config=$(sed "/gateway4:.*/a \ \ \ \ \ gateway6: $gateway6_address" <<< "$new_netplan_config")
elif [ "$INT" = "eth0" ]; then
netplan_path="/etc/netplan/50-cloud-init.yaml"
netplan_config=$(cat "$netplan_path")
# Tạo đoạn cấu hình IPv6 mới
new_netplan_config=$(sed "/gateway4:/i \ \ \ \ \ \ \ \ \ \ \ \ - $ipv6_address" <<< "$netplan_config")
# cáºp nháºt gateway ipv6
new_netplan_config=$(sed "/gateway4:.*/a \ \ \ \ \ \ \ \ \ \ \ \ gateway6: $gateway6_address" <<< "$new_netplan_config")
else
echo 'Khong co card mang phu hop'
fi
# Tạo đoạn cấu hình IPv6 mới
# cáºp nháºt gateway ipv6
echo "$new_netplan_config" > "$netplan_path"
# Ãp dụng cấu hình Netplan
sudo netplan apply
fi
echo 'Da tao IPV6 thanh cong!'