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 tcppara corresponder ao tráfego TCP de saída. -
-d notebookse--dport 80para 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 8888para usar a cadeia REDIRECT, com8888como a porta de destino para o redirecionamento. Você só pode usar essa cadeia com a tabelanat. - Uma entrada para
notebooksdeve existir em/etc/hostsantes em que você aplica esta regra.