Você terá que usar alguma forma de regra de encaminhamento baseada no destino do iptables ou usar o Apache ou nginx como proxy . Para nginx
:
sudo apt-get install nginx
Crie uma configuração do servidor virtual do formulário:
server {
server_name notebooks;
location / {
proxy_pass http://localhost:8888;
proxy_redirect default;
}
access_log /var/log/nginx/notebook-access.log;
error_log /var/log/nginx/notebook-error.log;
}
Isso pode ser feito editando o site padrão ( /etc/nginx/sites-available/default
) ou criando um novo arquivo nesse diretório ( /etc/nginx/sites-available/notebook
, por exemplo). Use seu editor favorito com privilégios de administrador ( sudo vim
, sudo -H gedit
, etc.).
Em seguida, ative o site criando um link em /etc/nginx/sites-enabled/
, se ainda não existir:
sudo ln -s /etc/nginx/sites-{available,enabled}/default
# or, if you created a new file:
sudo ln -s /etc/nginx/sites-{available,enabled}/notebook
Reinicie o nginx
:
sudo service nginx restart
Edite /etc/hosts
para que você tenha um alias com o mesmo nome usado para server_name
na configuração acima.
Você pode criar muitos desses servidores virtuais para fazer proxy em várias portas.
Não tenho muita certeza do meu iptables-fu, mas alguns redirecionamentos simples parecem funcionar bem para mim. Por exemplo, com um servidor web Python simples ( python3 -m http.server 8888
):
iptables -t nat -A OUTPUT -p tcp -d notebooks --dport 80 -j REDIRECT --to-ports 8888
O comando é fácil de entender:
-
-A OUTPUT -p tcp
para corresponder ao tráfego TCP de saída. -
-d notebooks
e--dport 80
para corresponder ao nome do host e à porta de destino. A porta não é necessária aqui, já que você provavelmente estará usando apenas uma porta. -
-j REDIRECT --to-ports 8888
para usar a cadeia REDIRECT, com8888
como a porta de destino para o redirecionamento. Você só pode usar essa cadeia com a tabelanat
. - Uma entrada para
notebooks
deve existir em/etc/hosts
antes em que você aplica esta regra.