Use a correspondência -m socket
.
Consulte esta página da Web para obter algumas instruções mais explícitas: link
Eu tenho um servidor escutando na porta 10000. Mas este servidor está rodando apenas em um caso especial (então algum terceiro serviço está disponível). Caso contrário, a porta não será ouvida. É possível redirecionar o cliente para outra porta se 10000 não estiver escutando?
Eu vejo duas soluções: 1) inserir / remover regras de iptables no início / parada do servidor, mas como o servidor pode ser eliminado, ele não pode inserir a regra de redirecionamento iptable correta antes de morrer.
2) faça uma regra de espaço de usuário permanente que verifique se a porta está ouvindo e redireciona o pacote se não for escutado.
Como fazer 2)? Alguém tem receitas para o ipq?
Alguém pode me sugerir uma maneira melhor?
É algo como redirecionamento de fallback: eu terei milhares de clientes com portas diferentes (10000-11000) e se a instância do servidor não estiver em execução, o soro deve ser redirecionado para alguma página explicando por que eles não têm e instância conectada.
Use a correspondência -m socket
.
Consulte esta página da Web para obter algumas instruções mais explícitas: link
Acho que uma opção melhor é usar um balanceador de carga, como o haproxy. Você pode configurá-lo para escutar em várias portas e usar diferentes servidores back-end.
Para implementar a funcionalidade de redirecionar o usuário para uma porta diferente (ou servidor diferente), você pode usar a opção backup
no haproxy.
Esta é uma configuração supersimplificada para seus servidores front-end (clientes) e back-end:
frontend my_clients 0.0.0.0:10000
acl its_ok always_true
use_backend my_backend if its_ok
default_backend my_backend
backend my_backend
balance source
server server1 IP:port other options...
server server2 IP:port other options...
Como dito aqui , você pode usar a palavra-chave backup
. Isso significa que o servidor de backup será usado somente quando não houver outro servidor que não seja de backup disponível.
Isso é usado principalmente para balanceamento de carga HTTP, mas eles dizem que ele pode ser usado para outros serviços baseados em tcp.
Tags iptables