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.