Come effettuare il port forwarding in Mac OS X.


36

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


ah, stai anche eseguendo parallelismi, avendo lo stesso problema come me? :)
LearnCocos2D

Risposte:


30

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

Possiamo farlo se la porta 22 non è aperta?
Afshin Moazami,

1
Devi connetterti in qualche modo. Ma puoi sempre eseguire ssh su un'altra porta ... forse la porta http? o la porta BIND (DNS)? Quelli sono per lo più aperti sui firewall.
Marius,

10

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


1
Grazie. è molto semplice, inoltre non è necessario riavviare!
verystrongjoe,

Inoltre non è necessario avviare il server SSH su macOS.
Tony Baguette,

5

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

Ha un'interfaccia utente molto semplice.

testo alternativo


perché la tua immagine è così piccola?
barlop

3

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).


+1 per tcpforward, Perl non smette mai di essere utile.
Steve Kehlet,

0

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.


Non ho idea del perché questo sia stato votato perché è la verità.
Hasaan Chop,

4
@HasaanChop Questo è sottovalutato perché non è utile. Se descrivesse esattamente come utilizzare iptablesper realizzare la domanda posta, ciò potrebbe essere utile.
Jon-Eric,

Non ci sono iptables su mac os x.
Senza nome_1

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.