Am o mașină virtuală Debian 11 pe o mașină Windows. Are 3 adaptoare de retea. Unul este extern (WAN), unul intern (LAN) și altul privat (experimental).
Folosesc caseta ca router care, la rândul său, îmi folosește routerul DSL înapoi prin WAN NIC care este de fapt conectat la caseta Hyper-V. Totul funcționează în ceea ce privește rutarea.
Ceea ce încerc să obțin și, după ce am citit multe articole, au eșuat până acum, este că încerc să interceptez un singur port (4444), de exemplu, la o singură adresă IP publică de internet și să o redirecționez înapoi la o mașină de pe dispozitivul meu. LAN. Sună simplu și sunt sigur că este, dar nu pot să funcționeze.
Pentru a fi clar, aceasta este NU încercând să expună un port public și să-l direcționeze intern. Aceasta este pentru a intercepta un singur port (aplicația în cauză se conectează la mai multe porturi). Vreau ca toate comunicațiile să meargă la serverul țintă în mod normal, dar vreau ca acest port să fie direcționat către mașina mea unde am un server socket configurat pentru a se ocupa de comunicare.
Știu că răspunsul implică iptables, dar pur și simplu nu pot obține comenzile corect. Ori de câte ori o fac
iptables -t nat -A OUTPUT -p tcp --dport 4444 -j DNAT --to-destination 10.0.0.111:4444
nici măcar nu apare în mine iptables -L
. Redirecționarea este activată. am incercat si eu:
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 4444 -j DNAT --to-destination 10.0.0.111:4444
L-am aplicat chiar și la eth0, care este gateway-ul implicit.
eth0 - WAN public
eth1 - LAN
eth2 - Experimentează cu atribuirea IP-ului public în cauză, dar această rută de rutare pentru toate porturile, așa că a renunțat la asta