Adicionar o ! --out-interface lo
à regra de firewall NAT resolveu o problema: agora lo
access é regido pelas leis usuais e não está sujeito a nenhum mascaramento (como não deveria).
Eu tenho um laptop com uma configuração de rede um pouco estranha: para poder encaminhar qualquer acesso à Internet de minhas VMs e contêineres para qualquer rota padrão que meu laptop tenha (que poderia ser wlan0
, eth0
ou ppp0
), defini o usual sysctl net.ipv4.ip_forward=1
e o seguinte em /etc/network/interfaces
:
auto lxcbr0
iface lxcbr0 inet static
address 192.168.56.1
netmask 255.255.255.0
bridge_ports none
bridge_fd 0
bridge_maxwait 0
# XXX: no --out-interface
up iptables -t nat -A POSTROUTING -j MASQUERADE
down iptables -t nat -D POSTROUTING -j MASQUERADE
Eu uso o NetworkManager para obter minha conexão com a Internet. Até agora, isso funcionou normalmente, até que eu tentei executar fossil ui
e a conexão com 127.0.0.1
nesta configuração resulta no endereço do cliente sendo de uma sub-rede diferente.
Por exemplo, o seguinte script Perl:
#!/usr/bin/perl
use 5.020;
use IO::Socket::INET;
say IO::Socket::INET::->new(
Proto=>"tcp", Listen=>0,
LocalAddr=>"127.0.0.1:8080",
ReuseAddr=>1, ReusePort=>1,
)->accept->peerhost;
normalmente imprime 127.0.0.1
se eu usar nc 127.0.0.1 8080
para se conectar a ele (e isso acontece em minhas outras máquinas), mas neste laptop ele imprime 192.168.1.11
(que é de fato o endereço de wlan0
minha rota padrão atual reside).
Eu tentei adicionar uma rota especial a 127.0.0.0/8
via lo
, mas isso não mudou nada.
Como faço para que conexões de host local se comportem como se fossem realmente de localhost?
Adicionar o ! --out-interface lo
à regra de firewall NAT resolveu o problema: agora lo
access é regido pelas leis usuais e não está sujeito a nenhum mascaramento (como não deveria).
Tags networking