Для проекта потребовалось использовать прокси для работы curl .
Выбор пал на Dante , была взят самый простой vps сервер с CentOS.
Для начала обновляемся:
yum update –yДобавляем репозиторий:
yum install http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpmВключаем репозитарий и устанавливаем прокси сервер Dante:
yum --enablerepo=gf-plus install dante-serverРазрешаем автозагрузку сервиса:
systemctl enable sockd.serviceСоздаем рабочий каталог:
mkdir /var/run/sockdСохраняем для потомков оригинальный файл конфигурации
mv /etc/sockd.conf /etc/sockd.conf.origИ Создаем свой:
vi /etc/sockd.conf
#logging logoutput: stderr #debug: 1 #server address specification internal: eth0 port = 1080 external: eth0 #server identities user.privileged: root user.notprivileged: nobody #authentication methods #clientmethod: none socksmethod: username # allow any client connection client pass { from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0 log: connect disconnect error } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect disconnect error socksmethod: username }
Немного о настройках.
Строка internal: eth0 port = 1080 указывает на каком порту будет работать прокси, можно указать любой порт в диапазоне от 1 до 65535
Строка socksmethod – указывает на метод авторизации (username - авторизация с указанием логина и пароля системных пользователей.
Можно указать none если вы хотите не использовать авторизацию, но не советую оставлять открытым для порта для прокси.)
user.privileged - имя пользователя с расширенными правами.
user.unprivileged - имя пользователя с обычными правами.
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="ваш_внешний_ip/32" port protocol="tcp" port="1080" accept"или с любого
firewall-cmd --zone=public --permanent --add-port=1080/tcpТеперь будет разумным сделать отдельного пользователя, который будет у нас работать через наш прокси
useradd --shell /usr/sbin/nologin userproxy passwd userproxy [Вводим дважды пароль]Запускаем и можно начинать работать
systemctl start sockd.serviceИ тетерь можно дополнить свой скрипт заветной строкой подключения через прокси
curl_setopt($ch, CURLOPT_PROXY, "socks5://userproxy:pass@myproxy.com");
Поскольку SOCKS передает все данные от клиента серверу, ничего не добавляя от себя, то с точки зрения web-сервера socks proxy является клиентом. Поэтому этоn тип proxy-сервера лучше использовать.
Если появится желание проверить работу этого прокси через браузер то помните: Браузеры не поддерживают Socks прокси с авторизацией.