Come inoltro una porta accessibile al mondo sul mio Mac?


1

Mi rendo conto che ci sono molte informazioni là fuori sul port forwarding, ma ecco la mia situazione specifica .

Devo usare Remote in (tramite VNC) sul mio Mac. Per impostazione predefinita, il server Mac Remote Sharing è in ascolto sulla porta 5900. Sarebbe tutto a posto, tranne per il fatto che la mia azienda sta bloccando le connessioni in entrata della porta 5900!

Tuttavia, sta consentendo la porta 3389. Quindi quello che sto cercando di fare è configurarlo in modo che io possa ascoltare le connessioni sulla porta 3389 e inoltrarle a 5900.

Ecco cosa ho provato: ssh 127.0.0.1 -L3389:127.0.0.1:5900

Questo non fa esattamente quello che voglio perché solo le connessioni da 127.0.0.1 saranno accettate sulla porta 3389.

 netstat -an | egrep 'Proto|LISTEN'
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp6       0      0  *.5900                 *.*                    LISTEN
tcp4       0      0  *.5900                 *.*                    LISTEN
tcp4       0      0  127.0.0.1.3389         *.*                    LISTEN

Devo ascoltare dal mondo, *al porto 3389. Come posso ottenere questo?


Di solito il software VNC ti consente di dire su quale porta ascoltare nelle impostazioni. Non c'è opzione per quello?
Colyn1337,

Hai scritto che il firewall della tua azienda bloccherà 5900. In uscita o in entrata? E da dove ti collegherai? Dov'è il tuo Mac? E potresti connetterti a qualsiasi servizio sul tuo Mac? Da dove stabilirai la connessione al tuo Mac? E che tipo di porte potresti usare in uscita?
Utenti

Risposte:


1

La tua domanda è un po 'breve su dettagli specifici, è un po' difficile dare risposte dirette senza sapere alcune cose:

  1. Puoi connetterti sulla porta VNC predefinita dall'esterno, ad esempio da casa di un amico, dove il tuo lavoro non ti sta bloccando? In tal caso è possibile modificare la porta su cui VNC è in ascolto su 3389 e testarlo. Come modificare il numero di porta VNC / condivisione schermo predefinito su Mac OS X?

  2. Il comando ssh menzionato dovrebbe essere eseguito dalla macchina CONNECTING e non dal "server". Quindi eseguiresti:

    ssh address.of.your.mac -L9999:127.0.0.1:5900
    

    e quindi connettere VNC a localhost: 9999 sul computer client. Uso 9999 come esempio poiché probabilmente non è in uso e 5900 potrebbe essere se il tuo client è un Mac e 3389 potrebbe essere se il tuo client è Windows.

Per essere chiari: dovrai essere in grado di accedere al tuo Mac dal lavoro, il numero dopo -L è la porta a cui ti connetti sulla tua macchina connessa (localhost), 127.0.0.1:5900 è dove VNC è già in ascolto sul tuo (remoto) Mac.

  1. Vorrei anche pensare a una VPN per aggirare le restrizioni sul lavoro (e per sicurezza). OpenVPN può essere facilmente eseguito sulla porta 443 (HTTPS), che probabilmente è consentita, e funzionerà anche su un server proxy se il tuo lavoro limita l'accesso al web in quel modo. L'impostazione non è troppo difficile ma non rientra nell'ambito di questa domanda.

1

Invece di port forwarding, è possibile modificare la porta in launchdascolto per le connessioni VNC. ( launchdascolta per conto di screensharingde si avvia screensharingdquando arriva un tentativo di connessione).

screensharingd è il server VNC predefinito attivo in OS X. Se invece si utilizza Apple Remote Desktop (aka ARD, "Gestione remota"), è probabile che queste istruzioni debbano essere leggermente modificate.

modificare /System/Library/LaunchDaemons/com.apple.screensharing.plist

Trova questa coppia chiave / valore:

<key>SockServiceName</key>
<string>vnc-server</string>

E cambiarlo in questo:

<key>SockServiceName</key>
<string>3389</string>

Quindi probabilmente dovrai riavviare o usare launchctlper forzare launchda ricaricare quel plist.

Quindi, nel tuo client VNC, specifica la porta 3389. Ad esempio, il client VNC incorporato di OS X utilizza gli URL, in modo da poterlo consegnare vnc://username:password@host.example.com:3389/. O lascia perdere username:passwordcosì ti verrà richiesto.

Avvertenza: non l'ho provato io stesso, quindi prova a tuo rischio. Valuta di fare una copia di backup di quel file plist prima di modificarlo, quindi è facile ripristinarlo com'era.


0

Potresti provare l' -Dopzione con ssh che è il port forwarding dinamico. Quindi questo potrebbe apparire come:ssh -D 3389 yourAccount@yourDomain.com

L'ho fatto ieri e lo sto ricordando dalla memoria, ma questa è la base. Una volta che questo comando funziona è sufficiente inserire la password e configurare l'applicazione per l'ascolto sulla porta specificata - 3389 nel tuo caso con 127.0.0.1 come indirizzo IP.

Penso che questo crei una sorta di proxy SOCKS usando ssh.

: D


0

Penso che siete in cerca di qualcosa di simile a questo , l'equivalente per Mac di iptables.

Non ho un Mac, quindi non posso provarlo da solo, ma suggerirei di provarlo

sudo ipfw add fwd 127.0.0.1,5900 tcp from any to 127.0.0.1 dst-port 3389

Nota che sembrano esserci diverse sintassi che ipfwpossono essere elaborate ( 127.0.0.1,3389e 127.0.0.1 3389sembrano funzionare anche da quello che posso trovare). Vorrei collegarti alla pagina di FreeBSD, ma come nuovo utente non ho ancora abbastanza rappresentante per questo: fischio :.

In alternativa poiché ipfwè stato deprecato, potresti provare pfctlcome descritto qui .

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.