Ниже приведен скрипт автоматической установки и краткое объяснение к нему:
#!/bin/bash
# Цветовые коды для вывода в консоль
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m' # Нет цвета
# Функция для проверки статуса последней выполненной команды
check_status() {
if [ $? -eq 0 ]; then
echo -e "${GREEN}Успешно выполнено${NC}"
else
echo -e "${RED}Ошибка выполнения${NC}"
exit 1
fi
}
# Генерация UUID для V2Ray
generate_uuid() {
UUID=$(cat /proc/sys/kernel/random/uuid)
echo "$UUID"
}
# Обновление и установка необходимых пакетов
echo -e "${GREEN}Обновление системы...${NC}"
sudo apt update && sudo apt upgrade -y
check_status
# Установка необходимых инструментов
echo -e "${GREEN}Установка curl и unzip...${NC}"
sudo apt install curl unzip -y
check_status
# Установка Shadowsocks
echo -e "${GREEN}Установка Shadowsocks...${NC}"
sudo apt install shadowsocks-libev -y
check_status
# Настройка Shadowsocks
echo -e "${GREEN}Настройка Shadowsocks...${NC}"
sudo tee /etc/shadowsocks-libev/config.json > /dev/null <<EOL
{
"server": "0.0.0.0",
"server_port": 8388,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "your_password",
"timeout": 300,
"method": "aes-256-gcm",
"fast_open": false
}
EOL
check_status
# Запуск и включение Shadowsocks
echo -e "${GREEN}Запуск Shadowsocks...${NC}"
sudo systemctl start shadowsocks-libev
check_status
echo -e "${GREEN}Включение автозапуска Shadowsocks...${NC}"
sudo systemctl enable shadowsocks-libev
check_status
# Настройка брандмауэра для Shadowsocks
echo -e "${GREEN}Настройка брандмауэра для Shadowsocks...${NC}"
sudo ufw allow 8388/tcp
check_status
# Установка V2Ray
echo -e "${GREEN}Установка V2Ray...${NC}"
bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
check_status
# Генерация UUID для V2Ray
UUID=$(generate_uuid)
echo -e "${GREEN}Сгенерированный UUID для V2Ray: $UUID${NC}"
# Настройка V2Ray
echo -e "${GREEN}Настройка V2Ray...${NC}"
sudo tee /usr/local/etc/v2ray/config.json > /dev/null <<EOL
{
"inbounds": [
{
"port": 10808,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "$UUID",
"alterId": 64
}
]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
EOL
check_status
# Запуск и включение V2Ray
echo -e "${GREEN}Запуск V2Ray...${NC}"
sudo systemctl start v2ray
check_status
echo -e "${GREEN}Включение автозапуска V2Ray...${NC}"
sudo systemctl enable v2ray
check_status
# Настройка брандмауэра для V2Ray
echo -e "${GREEN}Настройка брандмауэра для V2Ray...${NC}"
sudo ufw allow 10808/tcp
check_status
# Установка Squid
echo -e "${GREEN}Установка Squid...${NC}"
sudo apt install squid -y
check_status
# Настройка Squid
echo -e "${GREEN}Настройка Squid...${NC}"
sudo tee /etc/squid/squid.conf > /dev/null <<EOL
# Порт, на котором будет работать Squid
http_port 3128
# Разрешенные сайты
acl allowed_sites dstdomain .google.com .youtube.com .googlevideo.com .ytimg.com .ytimg.l.google.com .gstatic.com
# Разрешить HTTPS
acl SSL_ports port 443
http_access allow CONNECT SSL_ports allowed_sites
# Разрешение доступа к этим сайтам
http_access allow allowed_sites
http_access deny all
# Отключить кэширование для динамического контента
acl dynamic_content url_regex -i \.flv$ \.mp4$ \.avi$ \.mov$ \.mkv$ \.webm$
cache deny dynamic_content
# Увеличение максимальной полосы пропускания для соединений
maximum_object_size 1024 MB
# Использование надежных DNS-серверов
dns_v4_first on
EOL
check_status
# Запуск и включение Squid
echo -e "${GREEN}Запуск Squid...${NC}"
sudo systemctl restart squid
check_status
echo -e "${GREEN}Включение автозапуска Squid...${NC}"
sudo systemctl enable squid
check_status
# Настройка брандмауэра для Squid
echo -e "${GREEN}Настройка брандмауэра для Squid...${NC}"
sudo ufw allow 3128/tcp
check_status
# Включение UFW с флагом --force
echo -e "${GREEN}Включение UFW...${NC}"
sudo ufw --force enable
check_status
# Проверка статуса всех сервисов
echo -e "${GREEN}Проверка статуса Shadowsocks...${NC}"
sudo systemctl status shadowsocks-libev | grep 'Active: active (running)'
check_status
echo -e "${GREEN}Проверка статуса V2Ray...${NC}"
sudo systemctl status v2ray | grep 'Active: active (running)'
check_status
echo -e "${GREEN}Проверка статуса Squid...${NC}"
sudo systemctl status squid | grep 'Active: active (running)'
check_status
echo -e "${GREEN}Установка и настройка всех прокси-серверов завершены!${NC}"
# Вывод данных для клиента V2Ray
echo -e "${GREEN}Настройки клиента V2Ray:${NC}"
echo -e "Server Address: $(curl -s ifconfig.me)"
echo -e "Port: 10808"
echo -e "UUID: $UUID"
echo -e "Protocol: vmess"
echo -e "${GREEN}Настройте ваш клиент с использованием указанных выше параметров.${NC}"
Как использовать скрипт
Создайте файл скрипта:
vim install_proxy_servers.sh
Вставьте обновленный код скрипта и сохраните файл.
Сделайте скрипт исполняемым:
chmod +x install_proxy_servers.sh
Запустите скрипт:
sudo ./install_proxy_servers.sh
Как использовать Shadowsocks:
- Установите Shadowsocks-клиент на вашем устройстве (например, ShadowsocksX-NG для macOS, Shadowsocks для Android).
- Введите указанные выше параметры в клиентское приложение.
- Подключитесь к прокси-серверу.
Ключевые параметры для клиента:
- Server Address: IP-адрес вашего сервера, на котором установлен Shadowsocks.
- Port: 8388 (по умолчанию, или другой порт, если вы его изменили).
- Password: your_password (установите свой пароль).
- Encryption Method: aes-256-gcm (или другой метод шифрования).
Как использовать V2Ray:
Конфигурационный файл V2Ray располагается здесь:
/usr/local/etc/v2ray/config.json
Ключевые параметры для клиента
- Server Address: IP-адрес вашего сервера.
- Port: 1080 (по умолчанию, или другой порт, если изменен).
- Protocol: socks (или vmess, если используется этот протокол).
Для V2Ray нужно сгенерировать уникальный UUID: uuidgen
"port": 10808,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"alterId": 64
}
Это сгенерирует строку вроде 550e8400-e29b-41d4-a716-446655440000. Убедитесь, что id
соответствует сгенерированному UUID.
Как использовать:
- Установите V2Ray-клиент на вашем устройстве (например, V2RayN для Windows, V2RayNG для Android).
- Введите параметры (IP, порт, UUID) в клиентское приложение.
- Подключитесь к прокси-серверу.