Como posso encaminhar uma porta acessível para o mundo no meu Mac?

1

Eu sei que há muitas informações sobre o encaminhamento de portas, mas aqui está minha situação específica .

Eu preciso usar o Remote in (via VNC) no meu Mac. Por padrão, o servidor de compartilhamento remoto do Mac escuta na porta 5900. Isso seria bom, exceto que minha empresa está bloqueando as conexões de entrada da porta 5900!

No entanto, ele está permitindo a porta 3389. Então, o que estou tentando fazer é configurá-lo para que eu possa ouvir as conexões na porta 3389 e encaminhá-las para 5900.

Veja o que tentei: ssh 127.0.0.1 -L3389:127.0.0.1:5900

Isso não é exatamente o que eu quero, porque somente conexões de 127.0.0.1 serão aceitas na 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

Preciso ouvir do mundo, * na porta 3389 . Como posso conseguir isso?

    
por Shamoon 25.04.2014 / 23:31

4 respostas

1

Sua pergunta é um pouco curta sobre detalhes específicos, é um pouco difícil dar respostas diretas sem saber algumas coisas:

  1. Você pode se conectar na porta VNC padrão de fora - digamos da casa de um amigo, onde seu trabalho não está bloqueando você? Nesse caso, você pode alterar a porta que o VNC escuta para o 3389 e testá-lo. Como mudar o compartilhamento de tela padrão / número da porta VNC no Mac OS X?

  2. O comando ssh que você mencionou precisaria ser executado na máquina CONNECTING e não no "servidor". Então você executaria:

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

    e, em seguida, conecte o VNC ao localhost: 9999 em sua máquina cliente. Eu uso 9999 como um exemplo, uma vez que provavelmente não está em uso e 5900 pode ser se o seu cliente for um Mac e 3389 pode ser se o seu cliente for o Windows.

Para ser claro: você precisará ser capaz de ssh no seu Mac do trabalho, o número após -L é a porta na qual você se conecta em sua máquina de conexão (localhost), 127.0.0.1:5900 é onde o VNC já está ouvindo no seu Mac (remoto).

  1. Eu também pensaria em uma VPN para contornar restrições de trabalho (e por segurança). O OpenVPN pode ser facilmente executado na porta 443 (HTTPS), o que provavelmente é permitido, e até funciona em um servidor proxy, se o seu trabalho restringir o acesso à web dessa maneira. Configurar isso não é muito difícil, mas fora do escopo desta questão.
por 29.04.2014 / 11:57
1

Em vez de encaminhamento de porta, você pode alterar a porta em que launchd atende conexões VNC. ( launchd ouve em nome de screensharingd e inicia screensharingd quando uma tentativa de conexão é recebida).

screensharingd é o servidor VNC padrão ativado no OS X. Se você estiver usando o Apple Remote Desktop (também conhecido como ARD, "Gerenciamento Remoto"), essas instruções provavelmente precisarão ser modificadas.

Edite o /System/Library/LaunchDaemons/com.apple.screensharing.plist

Encontre este par chave / valor:

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

E mude para isso:

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

Em seguida, você provavelmente precisará reinicializar ou usar launchctl para forçar o launchd a recarregar esse plist.

Em seguida, no seu cliente VNC, especifique a porta 3389. Por exemplo, o cliente VNC integrado do OS X usa URLs, para que você possa entregá-lo em vnc://username:[email protected]:3389/ . Ou deixe o username:password para que você seja solicitado.

Advertência: Eu não tentei isso sozinho, então tente por sua própria conta e risco. Considere fazer uma cópia de backup desse arquivo plist antes de editá-lo, por isso é fácil retroceder como era.

    
por 01.05.2014 / 00:14
0

Você pode tentar a opção -D com ssh, que é o encaminhamento de porta dinâmico. Então, isso pode parecer com: ssh -D 3389 [email protected]

Eu fiz isso ontem e estou lembrando isso da memória, mas isso é o básico disso. Uma vez que este comando funcione, basta digitar sua senha e configurar seu aplicativo para escutar na porta especificada - 3389 no seu caso com 127.0.0.1 como o endereço IP.

Eu acho que isso cria uma espécie de proxy SOCKS usando ssh.

: D

    
por 26.04.2014 / 00:03
0

Acho que você está procurando por algo como este , o Mac equivalente do iptables.

Não tenho um Mac, por isso não posso testá-lo, mas sugiro que experimente

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

Note que parece haver várias sintaxes diferentes que ipfw pode processar ( 127.0.0.1,3389 e 127.0.0.1 3389 parecem que também funcionam do que posso encontrar). Eu ligaria você à página do FreeBSD, mas como novo usuário eu ainda não tenho o suficiente para isso: apito:.

Como alternativa, pois ipfw foi preterido, você pode tentar usar pfctl conforme descrito aqui .

    
por 28.04.2014 / 22:42