Quero que as conexões que entram no ppp0 na porta 8001 sejam roteadas para 192.168.1.200 no eth0 na porta 8080.
Eu tenho essas duas regras
-A PREROUTING -p tcp -m tcp --dport 8001 -j DNAT --to-destination 192.168.1.200:8080
-A FORWARD -m state -p tcp -d 192.168.1.200 --dport 8080 --state NEW,ESTABLISHED,RELATED -j ACCEPT
e isso não funciona. o que estou perdendo?
Respostas:
Primeiro de tudo - você deve verificar se o encaminhamento é permitido:
Se ambos retornarem,
1
tudo bem. Caso contrário, faça o seguinte:Segunda coisa -
DNAT
poderia ser aplicadanat
apenas na mesa. Portanto, sua regra deve ser estendida adicionando a especificação da tabela também (-t nat
):Ambas as regras são aplicadas apenas ao tráfego TCP (se você deseja alterar também o UDP, é necessário fornecer regras semelhantes, mas com o
-p udp
conjunto de opções).Por último, mas não menos importante, é a configuração de roteamento. Tipo:
e verifique se
192.168.1.0/24
está entre as entradas de roteamento retornadas.fonte
sysctl
sintaxe comosysctl net.ipv4.conf.eth0.forwarding=1
-A
com-D
Eu acho que o que você quer é:
fonte
Você esquece o endereço de origem pós-rastreamento SNAT 'ing:
E não se esqueça de definir seu firewall linux como gateway padrão no computador com endereço 192.168.1.200.
fonte
POSTROUNTING
degrau. Neste ponto, a conversa ainda é sobre--destination
e não--source
.Eu criei o seguinte script bash para fazer isso no meu roteador linux. Ele infere automaticamente o IP da WAN e confirma suas seleções antes de continuar.
O uso do script é simples, basta copiar e colar em um arquivo e depois.
Para remover a mesma regra
Eu pensei que isso poderia economizar tempo de alguém em seu respectivo roteador.
fonte
Eu tive a tarefa de fazer MACHINE_A pensar que o serviço está sendo executado fisicamente em MACHINE_B, mas redirecione de forma transparente todas as solicitações para MACHINE_C.
O truque era usar o MASQUERADE.
Observe que você pode querer ajustar os comandos:
Para permitir o encaminhamento de pacotes apenas em uma interface específica. Por exemplo:
Para permitir que não apenas MACHINE_A, mas também todos os outros usem o encaminhamento de porta, remova:
fonte
Experimentar
Esses arquivos informam ao kernel que é permitido encaminhar pacotes entre as interfaces.
fonte
Este comando não funciona para mim:
Eu tenho 2 interfaces de rede local e o FORWARD funciona quando vou escrever:
PREROUTING e FORWARD também são necessários, é claro :)
fonte