Portál AbcLinuxu, 10. května 2025 04:25
cat /proc/sys/net/ipv4/ip_forwardPokud je tam 1, pak je třeba vypnout ipv4 forwarding.
Takový požadavek je nesmyslný. IP adresa adresuje váš počítač, takže paket s vaší cílovou adresou je určen pro váš počítač a je úplně jedno, jestli přijde na "správné" rozhraní nebo na kterékoli jiné. Pokud chcete zakázat přístup ke službě ze "špatné strany", použijte k tomu nástroj, který je k tomu určený, tedy netfilter. Možnost nastavit lokální adresu naslouchajícího soketu k tomu určená není.
Celé to patrně pochází z nešťastného historického zlozvyku pocházejícího z dob, kdy platila bijekce mezi rozhraními a adresami. Tehdy autoři řady démonů mátli uživatele tím, že volbu adres, na kterých démon poslouchá, v dokumentaci a konfiguračních souborech prezentovali jako volbu rozhraní, na kterých démon poslouchá. Ale tak to nefunguje a nikdy ani nefungovalo. Ten démon nemá možnost rozlišovat, na které rozhraní paket přišel, a vlastně mu do toho ani nic není.
lo
rozhraní adresu 127.0.0.1 a nasměruji ji přes jiný počítač?
ip addr del 127.0.0.1/8 dev lo ip route add 127.0.0.1 via 192.168.1.1Server na HTTP portu naslouchá, ale připojit se nejde (a neprojde ani ping na localhost):
telnet 127.0.0.1 http Trying 127.0.0.1... telnet: Unable to connect to remote host: Connection timed outJen tak pro zajímavost – kde je v Linuxu zadrátovaná ta výjimka, že se lokální adresy chovají jinak než normální – aneb proč to s 192.168.2.1 jde, ale se 127.0.0.1 ne?
tcpdump
na cílovém stroji ten paket ještě vidí, ale pak jako by se někam ztratil. Určitě se to tak ale nechovalo vždy. Až budu mít trochu času, zkusím prozkoumat, proč se to děje.
ping -I eth0 127.0.0.1
, tak to pingá z mojí IP (ne ze 127.0.0.1), takže tím to asi nebude.
A v rámci jednoho stroje a standardního nastavení –
tohle funguje:
ping -I lo 127.0.0.1tohle nefunguje:
ping -I eth0 127.0.0.1a tohle zase funguje:
ping -I lo 192.168.1.2Takže to
lo/eth0
je jakoby „propustné“ jen v jednom směru.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.