Esta subpasta contém uma adaptação do projeto principal para rodar direto no sistema host, sem Docker. O instalador usa por padrão os binários do 3proxy pré-buildados que acompanham o repositório (linux/amd64 e linux/arm64), caindo para compilação do fonte apenas se a arquitetura não for suportada ou se você pedir explicitamente. Ele copia o binário para /usr/local/bin, cria um arquivo de configuração em /etc/ipv6-proxy/ e (opcionalmente) registra um serviço systemd.
O comportamento em runtime é idêntico ao do container: detecta todos os IPv6 globais do host, cria um proxy por IP (SOCKS5 ou HTTP), exibe a tabela com portas e sai de conexões.
- Linux
amd64ouarm64(outras arquiteturas caem no fallback de compilação do fonte) systemd(opcional, mas recomendado) ebash- Acesso
root(sudo) - Um ou mais endereços IPv6 globais já atribuídos à interface de rede
- Gerenciador de pacotes suportado:
apt,dnf,yumoupacman(as deps são instaladas automaticamente)
cd local
sudo ./install.shO instalador vai:
- Instalar dependências de runtime (
iproute2,curl,procps). - Detectar a arquitetura do host e copiar o binário pré-buildado de
bin/linux-<arch>/3proxypara/usr/local/bin/3proxy. Se não houver binário para a arquitetura, instala as deps de build (make,g++,wget) e compila o 3proxy a partir do fonte (versão controlada porPROXY_VERSION, default0.9.5). - Instalar o runner em
/usr/local/bin/ipv6-proxy-run. - Criar
/etc/ipv6-proxy/proxy.enva partir do exemplo (se ainda não existir). - Instalar a unit
ipv6-proxy.serviceem/etc/systemd/system/e rodarsystemctl daemon-reload.
Para forçar compilação do fonte (ignorando os binários pré-buildados):
sudo BUILD_FROM_SOURCE=1 ./install.shEdite o arquivo /etc/ipv6-proxy/proxy.env:
sudo nano /etc/ipv6-proxy/proxy.env| Variável | Padrão | Descrição |
|---|---|---|
PROXY_USER |
(vazio) | Usuário para autenticação. Vazio = sem auth. |
PROXY_PASS |
(vazio) | Senha para autenticação. |
START_PORT |
30000 |
Primeira porta; demais são sequenciais. |
PROXY_TYPE |
socks5 |
socks5 ou http. |
NET_INTERFACE |
(auto) | Interface de rede (ex.: eth0, ens3). |
ALLOWED_HOSTS |
(vazio) | Hosts permitidos (formato 3proxy). Outros são bloqueados. |
DENIED_HOSTS |
(vazio) | Hosts bloqueados. Outros são permitidos. |
SIMPLE_MODE |
(vazio) | Defina como 1 para criar apenas 1 proxy IPv4 simples, ignorando IPv6. |
PROXY_BIN |
/usr/local/bin/3proxy |
Caminho do binário do 3proxy. |
CONFIG_FILE |
/etc/3proxy/3proxy.cfg |
Onde gravar o config gerado. |
RUN_USER_UID |
65534 |
UID para o 3proxy após bind (drop de privilégios). |
RUN_USER_GID |
65534 |
GID para o 3proxy após bind. |
sudo ipv6-proxy-runLê /etc/ipv6-proxy/proxy.env, gera o config, imprime a tabela de proxies e roda o 3proxy com logs de requisição no terminal. Ctrl+C encerra.
Também aceita um arquivo de config alternativo:
sudo ipv6-proxy-run /caminho/para/outro.envsudo systemctl enable --now ipv6-proxy
sudo systemctl status ipv6-proxy
sudo journalctl -u ipv6-proxy -f # acompanhar logs em tempo realReinicie após mudar o .env:
sudo systemctl restart ipv6-proxy# SOCKS5 com auth
curl -x socks5://usuario:senha@127.0.0.1:30000 http://ifconfig.me
# HTTP com auth
curl -x http://usuario:senha@127.0.0.1:30000 http://ifconfig.me
# Testar todas as portas
for port in $(seq 30000 30031); do
echo -n "Porta $port -> "
curl -s -x socks5://usuario:senha@127.0.0.1:$port http://ifconfig.me
echo ""
doneCada porta deve retornar um IPv6 diferente.
Os binários versionados em bin/linux-amd64/3proxy e bin/linux-arm64/3proxy foram gerados em containers ubuntu:22.04 (usando QEMU para o arm64 quando o host é amd64). Para regerar:
# Uma vez por host (registra QEMU no binfmt para cross-arch):
docker run --privileged --rm tonistiigi/binfmt --install arm64
# A qualquer momento, para rebuildar ambas as arquiteturas:
./local/build-binaries.shA versão do 3proxy é controlada pela variável PROXY_VERSION (default 0.9.5).
sudo systemctl disable --now ipv6-proxy
sudo rm -f /etc/systemd/system/ipv6-proxy.service
sudo systemctl daemon-reload
sudo rm -f /usr/local/bin/3proxy /usr/local/bin/ipv6-proxy-run
sudo rm -rf /etc/ipv6-proxy /etc/3proxy- Não há isolamento: o
3proxyroda diretamente no host. - Parâmetros
sysctleulimitsão aplicados no host (persistem só até o reboot — use/etc/sysctl.d/se quiser fixar). - Logs vão para
journald(via systemd) em vez dedocker logs. - Não precisa de
--privilegednem--network host, mas precisa ser root parasysctl,ip_nonlocal_binde bind em portas privilegiadas (se aplicável). - Com
SIMPLE_MODE=1, não é necessário ter IPv6 no host e os sysctls IPv6 são ignorados.