Como encaminhar somehost para outro host com alguma porta no linux?

3

Digamos que eu queira encaminhar todas as solicitações para google.com para localhost: 333, como fazer isso?

khelll
fonte
1
Pergunta interessante e suspeita =).
RJFalconer

Respostas:

3

Rotas Shorewall. ( Perguntas frequentes )

Você deseja redirecionar todas as solicitações de conexão locais do google.com para um servidor em execução na sua zona local em 127.0.0.1 e ouvir na porta 333. Sua interface local é eth1.

Aviso Legal; Eu não fiz exatamente isso com o Shorewall, então modifiquei um exemplo de configuração do servidor Squid:

  1. Adicione esta entrada ao seu arquivo / etc / shorewall / providers.

    #NAME   NUMBER  MARK    DUPLICATE       INTERFACE       GATEWAY         OPTIONS
    foo     1       202     -               eth1            127.0.0.1     loose
    
  2. Em / etc / shorewall / tcrules, adicione:

    #MARK    SOURCE              DEST        PROTO    DEST
    #                                                 PORT(S)
    202:P    net:google.com   0.0.0.0/0   tcp      80
    
  3. Em / etc / shorewall / interfaces:

    #ZONE   INTERFACE    BROADCAST    OPTIONS
    loc     eth1         detect       routeback          
    
  4. No host local, providencie para que o seguinte comando seja executado após o surgimento da rede

    iptables -t nat -A PREROUTING -i eth0 -d ! 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 333          
    
RJFalconer
fonte
1
redirecionar o google por IPs adicionados manualmente não funcionará muito bem - você obterá um IP diferente para a pesquisa de DNS a cada 5 minutos ou mais devido ao balanceamento de carga. para google.com, você realmente deseja redirecionar no nível do DNS. Shorewall pode fazer isso?
quack quixote
Eu suspeito que "net: google.com" deva fazer o truque. Sim, você me pegou no meio da edição lá.
RJFalconer
justo enuff. deixando o comentário para o momento, mas feliz em ver que você já estava trabalhando nisso. :)
quack quixote
É o melhor que posso pensar, acho. Vou deixar aqui para alguém mais experiente com shorewall para comentar / editar.
RJFalconer
Eu quero que ele esteja na mesma máquina, então pingging google.com deve ir para alguma porta que eu especificar na minha máquina local, digamos 333
khelll
1

Se você quer apenas fazer isso em uma única máquina, você pode editar:

/etc/hosts 

e adicione

google.com 127.0.0.1

em seguida, reinicie os serviços de rede

/etc/rc.d/init.d/network restart

Isso redirecionaria o tráfego normal da web para localhost: 80 embora.

RJFalconer
fonte
Boa idéia para acompanhar as conexões de rede local! : D
dag729
Isso é o que eu queria originalmente, mas também quero controlar a qual porta a solicitação será enviada.
khelll