Vorrei effettuare tutte le connessioni in entrata sulla porta 1000 del mio host (IP: 200.234.XXX.XXX) per essere inoltrato alla porta 80 sull'host 10.211.55.5
Come posso farlo sul mio host? Esegue Mac OS X 10.5.8
Vorrei effettuare tutte le connessioni in entrata sulla porta 1000 del mio host (IP: 200.234.XXX.XXX) per essere inoltrato alla porta 80 sull'host 10.211.55.5
Come posso farlo sul mio host? Esegue Mac OS X 10.5.8
Risposte:
Molto semplice da fare, in primo luogo dovrai abilitare il servizio di accesso remoto sul tuo mac ( Preferenze di Sistema -> Condivisione -> Accesso remoto ). Questo avvia il tuo server SSH.
Quindi eseguire il comando seguente nel Terminale OS X:
ssh -L 200.234.XXX.XXX:10000:10.211.55.5:80 -N 127.0.0.1
Potrebbe essere necessario accettare inizialmente l'impronta digitale del server e digitare la password locale per l'accesso ssh. (Puoi anche impostare una chiave pubblica / privata ssh da locale a locale in modo che non richieda una password, lasciandola come un esercizio per il lettore.)
Il formato è:
ssh -L local_addr:local_port:remote_addr:remote_port -N 127.0.0.1
Molto semplice utilizzando lo strumento versatile ncat:
sudo ncat --sh-exec "ncat 10.211.55.5 80" -l 1000 --keep-open
Prendi i binari di ncat / nmap per Mac OS X dal sito ufficiale: http://nmap.org/download.html#macosx
EDIT: aggiunto sudo per l'ascolto su una porta limitata <1024
Bene, posso dirti come faccio questo genere di cose sul mio sistema Mac OS X 10.5.8.
Ho iniziato con una risposta su NAT, ma penso che tu voglia invece un programma di forwarder TCP (citi 'proxy' e port forwarding).
Ci sono alcuni modi per farlo, a seconda delle vostre esigenze, anche 'SSH' può essere premuto in azione, anche se il mio preferito e breve modo dolce è uno script Perl tcpforward .
Se hai bisogno di una manipolazione HTTP (potresti dover modificare i reindirizzamenti HTTP, in modo che quando una richiesta arriva per un URL senza un '/' finale non venga reindirizzato al server reale, inaccessibile), Apache può fare il lavoro di un proxy inverso. Ti consigliamo di guardare mod_proxy e in particolare ProxyPass e ProxyPassReverse. Do Non abilitare ProxyRequests, che è per l'inoltro in avanti. Dovrebbe essere possibile utilizzare l'Apache di Mac OS per farlo, se ce l'hai in esecuzione. Viene fornito con mod_proxy e /etc/httpd/httpd.conf è il file di configurazione da aggiornare.
Anche con Apache, è necessario assicurarsi che tutti i collegamenti nel contenuto del server reale siano relativi, se fanno riferimento al server reale, è possibile provare il modulo mod_proxy_html (non ho esperienza di quanto bene funzioni).
La tua macchina è connessa direttamente a Internet (IE - senza router)? Normalmente si esegue il port forwarding sul router, ma se si utilizza un modem per connettersi direttamente, iptables è probabilmente il modo migliore.
iptables
per realizzare la domanda posta, ciò potrebbe essere utile.
Ecco un buon articolo: http://www.cyberhq.nl/article/384/port-forwarding-in-macos-x
Ma dal momento che stai inoltrando a 80, presumo che tu voglia che vada su un server Web, quindi cambierei la configurazione del server Web per impostare un proxy inverso o qualcosa del genere.