Existem muitas respostas excelentes para esta pergunta que envolvem a configuração de rotas iptables no roteador. Porém preciso configurar as rotas do iptables no cliente.
Estou trabalhando em um sistema embarcado. Este é conectado à internet usando ppp e um modem GPRS. O sistema executa um aplicativo que faz solicitações https via libcurl.
Agora preciso rotear essas solicitações https por meio de um servidor proxy https transparente hospedado em algum lugar da Internet. Configurei um proxy https com squid e ssl_bump e verifiquei que está tudo funcionando conforme o esperado.
Existem várias maneiras de rotear as solicitações https através do proxy, por exemplo, posso reconstruir o aplicativo e configurar libcurl para usar o servidor proxy via CURLOPT_PROXY. Mas estou querendo saber se pode ser mais simples e flexível configurar uma rota para encaminhar tudo o que é enviado para a porta HTTPS para o proxy.
A pergunta mais próxima que eu vi é Como configuro um proxy transparente onde o servidor proxy é remoto? mas isso requer que a rota contenha o endereço IP do cliente. Como esta é uma conexão GPRS que vai e vem, o endereço IP será desconhecido e mudará de tempos em tempos.
libcurl respeita variáveis de ambiente http_proxy https_proxy
Então isso é muito simples:
fonte: https://curl.haxx.se/libcurl/c/CURLOPT_PROXY.html