Задать вопрос
@hellfleet

Как заставить работать php через системное прокси?

задача состоит в том, чтобы логировать все данные отправляемые кодом PHP во вне.
запущен mitmproxy localhost:9901

cat /etc/profile.d/http_proxy.sh
export http_proxy=http://localhost:9001
export https_proxy=https://localhost:9001
export no_proxy=localhost,::1


php-fpm работает от пользователя www-data
пробовал
iptables -t nat -А OUTPUT -p tcp -m multiport --dport 80,443 -m owner --uid-owner 33 -j DNAT --to-destination 127.0.0.1:9001

выдается ошибка mitmproxy
Invalid HTTP request form (expected: authority or absolute, got: relative)
- при HTTP запросе

ProtocolException('Cannot connect to server, no server address given.')
- при HTTPS запросе

profile.d для www-data работает только в консоли.

Как использовать глобально прокси для всего php в системе?
  • Вопрос задан
  • 281 просмотр
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
shambler81
@shambler81 Куратор тега Linux
эээ пхп прекрасно умеет проксировать,смысл выдумывать велосипед ?
https://gist.github.com/codedokode/ea0503ecb0efbc3...
Ответ написан
Нужен локальный прокси с поддержкой транспарентного проксирования. Например
https://3proxy.ru/plugins/TransparentPlugin/

plugin /path/to/TransparentPlugin.ld.so transparent_plugin
log /path/to/log
auth iponly
allow * * * 80
parent 1000 http 0.0.0.0 0
allow *
parent 1000 socks5 SOCKS5_IP SOCKS5_PORT USER PASSWORD
transparent
tcppm -i127.0.0.1  12345 127.0.0.1 11111


в команде parent уже можно указать любой прокси, в т.ч. внешний, трафик заворчивать в 127.0.0.1:12345
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы