Установка Squid Proxy на Debian 10

воскресенье, 18 апреля 2021 05:34:13, написал Admin

Небольшая заметка, как за 10 минут настроить и проверить прокси-сервер Squid на Debian 10

Ставим сам пакет: 

apt update
apt upgrade -y
apt install squid3
systemctl start squid
systemctl enable squid

Ставим apache2-utils для входа по паролю:

apt install apache2-utils
touch /etc/squid/passwd
chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

Добавляем нового юзера и пароль к нему:

htpasswd /etc/squid/passwd proxy_user

Открываем конфиг/etc/squid/squid.conf на правку, вносим туда такие изменения:

http_access allow localhost

acl mainIP src YOUR_IP_CLIENT
http_access allow  mainIP

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

http_access deny all

Здесь YOUR_IP_CLIENT - ваш клиентский айпи адрес. Например, у меня возникла необходимость заходить с основного сервера через прокси, т.е. сюда я вписал айпи оснвного сервера. Так же можно заходить с любого айпи по логину и паролю.

Настройка Guzzle

            $client = new \GuzzleHttp\Client([
                'base_uri' => $url,
                'curl' => [
                    CURLOPT_PROXY => $ip,
                    CURLOPT_PROXYPORT => 3128,
                    //CURLOPT_PROXYUSERPWD => 'user:pwd',
                ]
            ]);
            $response = $client->request('GET', '/ip.php');

            $result = (string)$response->getBody();
            echo $result;

На другом сервере разместите файл ip.php с таким содержанием:

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}
echo $ip;

Также можно заходить с любого айпи через браузер, вписав в настройки прокси айпи адрес прокси-сервера и порт 3128. При первом входе надо будет ввести логин/пароль

Из важных настроек: auth_param basic children отвечает за число одновременных коннектов. В данном случае 5 клиентов могут работать одновременно, а остальные будут ждать, пока освободиться очередь.

Debian Squid Системное администрирование
  

Поделиться статьей с друзьями:

  

Комментарии к статье