Port forwarding su Linux senza iptables?


34

Ho un server Linux VPS (virtuozzo) e ho bisogno di impostare il port forwarding, ma il mio provider di hosting non consente i moduli del kernel iptables-nat quindi iptables -t nat- non funziona.

Sto cercando altri modi per farlo. So che posso inoltrare la porta usando openssh , ma devo inoltrare oltre 20 porte diverse, tcp e udp, quindi questa non è un'opzione.

Esiste un software per Linux in grado di eseguire il port forwarding?


eh buona domanda +1. non sono a conoscenza di una soluzione, non vedo l'ora di vedere se c'è qualcosa qui.
Lo Shurrican il

E poi, che dire di un programma che ti consente di inoltrare le porte verso destinazioni diverse in base all'IP di origine?
dpk,

Evita del tutto il problema non usando mai VPS basati su Virtuozzo / OpenVZ.
Michael Hampton

@MichaelHampton: non estremamente costruttivo ...
Nicolas Raoul,

Risposte:


47

Usa lo strumento chiamato "socat", è un ottimo strumento per queste cose ed è già impacchettato in molte distribuzioni di Linux. Leggi qui: http://www.dest-unreach.org/socat/doc/README

Esempio di port forwarding con socat:

socat TCP4-LISTEN:80,fork TCP4:www.yourdomain.org:8080

Questo reindirizza tutte le connessioni TCP sulla porta 80 su www.tuodominio.org porta 8080 TCP.


Non dimenticare che https è predefinito sulla porta 443, anziché sulla porta 80 :)
keiki

Socat è l'unico strumento che ha funzionato per me su un lampone solo per ipv6
chotchki

Perfetto, risolto immediatamente il mio problema. Nota, devi assicurarti che la porta in entrata sia aperta in iptables se ne hai.
Jancha,

13

C'è un piccolo programma di risorse leggere chiamato redirche è abbastanza configurabile.

apt-get install redir sulle distribuzioni basate su Debian.


Ho usato questo strumento in passato e funziona molto bene ...
Alex

Secondo questo strumento. Sembra che questo non sia uno strumento di inoltro di pacchetti, ma il tunnel TCPC. Cambierà l'indirizzo IP di origine visto dalla destinazione. Quindi funziona benissimo quando è necessario reindirizzare una porta su un altro computer che ha una diversa configurazione di routing.
scegg,


6

xinetdsupporta un attributo di reindirizzamento che farà ciò che desideri. Come altri hanno notato, esistono numerosi programmi che gestiscono i reindirizzamenti.

L'uso xinetdo un altro programma che utilizza la tcpwrapperslibreria ti permetterà di applicare restrizioni di accesso se e quando sarà necessario.


4

Xinet / inetd. Ad esempio:

reindirizzare

Consente a un servizio tcp di essere reindirizzato a un altro host. Quando xinetd riceve una connessione tcp su questa porta, genera un processo che stabilisce una connessione all'host e al numero di porta specificato e inoltra tutti i dati tra i due host.

http://linux.die.net/man/5/xinetd.conf


Sembra interessante, ma è limitato a TCP solo come hai detto
Doud

4

Ho trovato un piccolo util chiamato portfwd http://portfwd.sourceforge.net/ che fa esattamente ciò di cui ho bisogno (inoltro TCP e UDP), la homepage dice che è stato aggiornato l'ultima volta nel 2002, ma l'ultima versione è il 2007 e funziona con il kernel 2.6 .


Accetterò la mia risposta perché sembra che questo sia l'unico software che supporti completamente i protocolli TCP e UDP.
troex,

3

SSH esegue il port forwarding, purché sia ​​possibile eseguire il tunneling in una connessione SSL.


-3

Ok, ecco la semplice risposta che dovrebbe funzionare, non è scienza missilistica ma la maggior parte delle persone complica la risposta e confonde tutti i nuovi utenti Linux.

uww consentire 2xxx

2xxx = qualunque sia il tuo numero di porta, digita quel comando nel tuo terminale del server e la tua porta desiderata viene aperta.


Apre semplicemente la porta su interfacce rivolte all'esterno del server. Non reindirizza o inoltra la porta da un IP all'altro. APRE IL PORTO.
AmirHossein,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.