-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path33
111 lines (93 loc) · 2.77 KB
/
33
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
#!/bin/bash
# Thiết lập biến môi trường
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Hàm tạo địa chỉ IPv6 ngẫu nhiên
gen64() {
array=(1 2 3 4 5 6 7 8 9 0 a b c d e f)
ip64() {
echo "${array[$RANDOM % 16]}${array[$RANDOM % 16]}${array[$RANDOM % 16]}${array[$RANDOM % 16]}"
}
echo "$1:$(ip64):$(ip64):$(ip64):$(ip64)"
}
# Hàm tạo dữ liệu cho proxy
gen_data() {
seq $FIRST_PORT $LAST_PORT | while read port; do
IPV6_ADDR=$(gen64 $IP6)
echo "$IP4/$port/$IPV6_ADDR/$IFACE"
done
}
# Hàm tạo lệnh socat để chuyển tiếp dữ liệu
gen_socat_commands() {
awk -F "/" '{print "socat TCP6-LISTEN:" $2 ",fork TCP4:" $1 ":" $2 " &"}' ${WORKDIR}/${WORKDATA}
}
# Hàm lấy địa chỉ IPv4 của mạng nội bộ
get_internal_ip() {
IP4=$(hostname -I | awk '{print $1}')
}
# Hàm xoay địa chỉ IPv6
rotate_ipv6() {
IP6=$(curl -6 -s icanhazip.com | cut -f1-4 -d':')
gen_data > ${WORKDIR}/${WORKDATA}
gen_socat_commands > ${WORKDIR}/start_proxies.sh
bash ${WORKDIR}/start_proxies.sh
echo "Đã xoay địa chỉ IPv6 thành công."
}
# Tạo thư mục làm việc và các biến cần thiết
WORKDIR="/usr/local/proxy"
WORKDATA="data.txt"
mkdir -p $WORKDIR
# Lấy địa chỉ IPv4 và IPv6
get_internal_ip
IP6=$(curl -6 -s icanhazip.com | cut -f1-4 -d':')
IFACE=$(ip route get 8.8.8.8 | sed -nr 's/.*dev ([^\ ]+).*/\1/p')
# Tạo script proxy
create_proxy_script() {
echo "Nhập số lượng proxy cần tạo: "
read COUNT
echo "Nhập cổng bắt đầu: "
read FIRST_PORT
# Tính toán cổng cuối cùng
LAST_PORT=$(($FIRST_PORT + $COUNT))
# Tạo dữ liệu proxy
gen_data > ${WORKDIR}/${WORKDATA}
# Tạo file lệnh socat
gen_socat_commands > ${WORKDIR}/start_proxies.sh
# Cấp quyền thực thi cho file lệnh socat
chmod +x ${WORKDIR}/start_proxies.sh
# Thêm vào rc.local để tự động chạy khi khởi động
cat >>/etc/rc.local <<EOF
bash ${WORKDIR}/start_proxies.sh
EOF
chmod +x /etc/rc.local
# Chạy các script
bash ${WORKDIR}/start_proxies.sh
echo "Proxy đã được tạo và đang chạy."
}
# Menu đơn giản
while true; do
echo "1. Tạo proxy mới"
echo "2. Xoay IPv6"
echo "3. Thoát"
echo -n "Nhập lựa chọn của bạn: "
read choice
case $choice in
1)
create_proxy_script
;;
2)
rotate_ipv6
;;
3)
echo "Thoát..."
exit 0
;;
*)
echo "Lựa chọn không hợp lệ, vui lòng thử lại."
;;
esac
done
# Vòng lặp để xoay IPv6 mỗi 10 phút
while true; do
rotate_ipv6
sleep 600
done