Portál AbcLinuxu, 12. května 2025 10:22

Dotaz: Jak přesměrovat lokální port na jinou IP adresu

7.9.2008 12:27 Galen
Jak přesměrovat lokální port na jinou IP adresu
Přečteno: 1148×
Odpovědět | Admin
Zdravím,

snažím se zprovoznit přesměrování portů na SLAXu 6.0.7, zkoušel jsem to přes iptables i redir, ale asi nemám štěstí. Potřebuji přesměrovat lokální port 10001 na IP 192.168.100.140:10001. Tak, aby když se připojí moje aplikace na lokální port 127.0.0.1:10001 ve skutečnosti komunikovala se zařízením na IP 192.168.100.140:10001. Moje PC má jednu síťovku eth1. Ve Windows na to používám utilitku IntelligentPorts a funguje to ok. Zkoušel jsem něco jako:

iptables -A FORWARRD -i lo -o eth1 -s localhost -d 192.168.100.140 -p tcp --sport 10001 --dport 10001
iptables -A FORWARRD -i eth1 -o lo -s 192.168.100.140 -d localhost -p tcp --sport 10001 --dport 10001


zatím ale bez výsledku. Většinou se pohybuji ve Windows, ale snažil jsem se to dle návodů na
webu a dokumenace nějak nastavit - což bohužel neznamená, že to může být úplně blbě :)

Díky za pomoc.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.9.2008 13:56 Marble | skóre: 27 | blog: marble
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, blbě to je vcelku úplně. Přesměrovávat pakety umí target DNAT, který je platný v tabulce nat v chainu OUTPUT a PREROUTING. Vzhledem k tomu, že jde o lokálně generované pakety, mělo by pravidlo přijít do chainu OUTPUT. Tolik teorie, v praxi mi při vyzkoušení bohužel pakety místo redirectu zmizely. (Případně pro ostatní -- pravidlo s DNAT v output chainu paket chytí, ale ten pak už není vidět na žádném interface.)

Druhá věc je zmíněný program z windows. Předpokládám, že ten nijak nemění pakety, ale prostě jen dělá lokální "proxy", která poslouhá lokálně a zároven si vytváří spojení na vzdálený počítač a veškerý provoz jednoduše přeposílá. Nevím, jestli něco takového existuje pro linux už hotové, ale pokud ne, jde to triviálně napsat nejlépe v nějakém vyšším jazyce, který už má vše pro TCP a spol hotové.
7.9.2008 15:47 Galen
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
Ano ta utilitka pro Win opravdu jen přeposílá veškerý provoz na vzdálený počítač - v tomto případě je vzdáleným počítačem převodník TCPIP/RS32 (PortBox od HWgroup). Zkoušel jsem ještě něco ve stylu:

iptables -t -nat -A OUTPUT -o eth1 -s localhost -d 127.0.0.1 -p tcp -j DNAT --to 192.168.100.140:10001

ale nic
7.9.2008 18:14 Marble | skóre: 27 | blog: marble
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
Jak je zmíněno někde o post níže, DNAT s loopbackem prý nefunguje úmyslně, takže je to trochu mimo, ale pro úplnost: nemělo být -o eth1 (paket, na který se to pravidlo aplikuje, není routovaný na eth0, ale na lo; každopádně není třeba psát nic, pokud už je paket dostatečně určen ostatním, třeba pomocí -d), naopak chybí --dport, aby se pravidlo chytalo jen na pakety mířící na správný port. Jinak souhlas (tedy ještě IMO --to-destination místo --to).
7.9.2008 15:24 papundekl | skóre: 11
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
Odpovědět | | Sbalit | Link | Blokovat | Admin
DNAT/SNAT s localhostem od jiste verze kernelu nejde pouzivat (zamerne). Je nutno pouzivat nejakou proxy. Myslim, ze nekdo doporucoval stone: http://www.gcd.org/sengoku/stone/.
7.9.2008 16:11 Galen
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
Díky. To řeší můj problém. Úspěšně odzkoušeno. Pro ilustraci parametry nastavení (jednoduchost sama):

stone 192.168.100.140:10001 127.0.0.1:10001
7.9.2008 16:42 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
nebo program redir.
In Ada the typical infinite loop would normally be terminated by detonation.
7.9.2008 18:17 Marble | skóre: 27 | blog: marble
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
Ad DNAT/SNAT: netušíš proč, resp. kde k tomu najít nějaké info? Když jsem přišel na to, že pakety místo redirectu mizí, zkoušel jsem, co na to poví google, či stránky netfilteru, ale nic rozumného jsem nenašel. Díky.
8.9.2008 08:52 papundekl | skóre: 11
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
Tak to bohuzel nemuzu slouzit.
Jendа avatar 7.9.2008 15:35 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nešlo by to SSH tunelem?
7.9.2008 15:42 Galen
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
Bohužel, zařízení na druhé straně nemá o SSH ani potuchy (je to převodník RS232/TCPIP).
7.9.2008 18:22 black
Rozbalit Rozbalit vše Re: Jak přesměrovat lokální port na jinou IP adresu
Odpovědět | | Sbalit | Link | Blokovat | Admin
treba jednoduse pres rinetd

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.