it-swarm.dev

Come realizzare un port forward in Mac OS X

Vorrei fare in modo che tutte le connessioni in arrivo alla porta 1000 del mio host (IP: 200.234.XXX.XXX) fossero inoltrate alla porta 80 su Host 10.211.55.5

Come posso farlo sul mio host? È in esecuzione Mac OS X 10.5.8

33
Daniel Cukier

Abbastanza semplice da fare, in primo luogo sarà necessario abilitare il servizio di accesso remoto sul proprio Mac ( Preferenze di sistema -> Condivisione -> Login remoto ). Questo avvia il tuo server ssh.

Quindi esegui il seguente comando nel tuo 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 locale-locale per far sì che non richieda una password, lasciandola come esercizio per il lettore.)

Il formato è:

ssh -L local_addr:local_port:remote_addr:remote_port -N 127.0.0.1
28
Marius

Molto semplice con lo strumento versatile ncat:

Sudo ncat --sh-exec "ncat 10.211.55.5 80" -l 1000 --keep-open

Ottieni i file binari di ncat/nmap per Mac OS X dal sito web ufficiale: http://nmap.org/download.html#macosx

EDIT: aggiunto Sudo per l'ascolto su una porta con restrizioni <1024

8
Tony Baguette

Supponendo che tu abbia un router UPnP, è facile configurare le porte usando PortMap

Ha un'interfaccia utente molto semplice.

alt text

5
Alexis Hirst

Bene, posso dirti come faccio questo genere di cose sul mio sistema Mac OS X 10.5.8.

Ho iniziato una risposta su NAT, ma penso che in realtà vuoi un TCP programma di forwarder invece (parli di 'proxy' e port forwarding).

Ci sono alcuni modi per farlo, a seconda delle tue esigenze, anche 'SSH' può essere premuto in azione, anche se il mio modo breve e dolce preferito è uno script Perl tcpforward .

Se hai bisogno di qualche manipolazione HTTP (potresti aver bisogno di modificare i reindirizzamenti HTTP, così quando una richiesta arriva per un URL senza un "/" finale non viene reindirizzato al server reale, inaccessibile), allora Apache può fare il lavoro di un proxy inverso. Dovresti dare un'occhiata a mod_proxy e in particolare ProxyPass e ProxyPassReverse. Do not abilita ProxyRequests, cioè per il forward proxy. Dovrebbe essere possibile utilizzare Apache di Mac OS per farlo, se ce l'hai. Arriva 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, allora si può provare il modulo mod_proxy_html (non ho esperienza di quanto bene funzioni).

3
jrg