Na verdade, você pode alternar a porta padrão para o servidor VNC da Apple no Mac OS 10.7 Lion e 10.8 Mountain Lion. Para alterar a porta, você precisa editar o arquivo plist do servidor /System/Library/LaunchDaemons/com.apple.screensharing.plist(esse arquivo não existe nos sistemas anteriores à versão 10.7 Lion).
A edição do arquivo requer privilégios de root (sudo). No terminal, se você estiver familiarizado com o vi ou vim , poderá digitar:
sudo vim /System/Library/LaunchDaemons/com.apple.screensharing.plist
Agora, tudo que você precisa fazer é mudar a linha 34 (a que lê <string>vnc-server</string>) para <string>nnnn</string>onde nnnn é o número da porta que você deseja usar. Eu sei que parece estranho mudar um nome como "vnc-server" para um número, mas é assim que você deve fazer. Incluí um exemplo abaixo, caso algo não esteja claro.
Para alterar a porta padrão para 54321, edite o arquivo plist para ficar assim:
Depois de salvar o arquivo, para que a alteração entre em vigor, desative o compartilhamento de tela e ligue-o novamente no painel de preferências Compartilhamento ou, alternativamente, descarregue e recarregue o serviço usando estes comandos:
Se você ainda estiver por aí - depois de fazer isso, existe uma maneira comparável de conectar o aplicativo de compartilhamento de tela do Mac a essa porta ou se você estiver usando aplicativos vnc de terceiros que permitem especificar o porta?
21713 Jim Miller
2
Resposta acima: Em "Conectar-se ao servidor ...", especifique vnc: //yourserver.com: 54321 (seguindo o exemplo anterior número da porta)
Jim Miller
Se isso funcionar (não posso verificar até hoje à noite), você merece muito mais votos.
21313 PaulSkinner
1
Para confirmar, sim, você precisaria fazer isso após cada atualização do sistema operacional (incluindo atualizações incrementais).
21413 PaulSkinner #
1
Para adicionar mais uma observação, o novo recurso 'sem raiz' do OS X 10.11 El Capitan significa que não é mais possível salvar esse arquivo específico sem desativar o recurso sem raiz, o que não é recomendado. Alguém conhece uma solução alternativa sem desativar o rootless?
PaulSkinner
5
Posso confirmar, depois de encontrar este tópico no Google, que a edição /etc/servicesdas portas "rfb" alterará as portas de escuta do servidor VNC incluídas.
Editei o arquivo e reiniciei (normalmente tentaria reiniciar os serviços ou descarregar o launchdeamon, mas também estava tendo outros problemas e não me incomodei). O iTeleport no meu iPad falhou na conexão no 5900 e teve êxito na porta alta e sem privilégios que eu escolhi.
Apenas por uma questão de integridade: alguns sugerem que alterar as portas /etc/Servicespode fazer o truque. Eu tentei isso (eu até reiniciei o meu Mac depois de alterá-lo) sem sucesso. E, pensando um pouco mais, pode até ser uma má idéia mexer com esse arquivo, pois outros aplicativos também podem usá-lo para obter o número de porta conhecido, se quiserem se conectar a terceiros usando um protocolo específico. (Como: alterar a porta SSH no arquivo que pode parecer para trabalho, mas é uma má idéia .)
Arjan
1
Observe a resposta de Greg Canty - ela pode ser alterada nas versões do OS X após o Snow Leopard. Esta resposta foi originalmente escrita antes do lançamento do OS X Lion.
Doug Harris
1
Com base nas informações fornecidas por Greg neste tópico, escrevi um script bash que automatizará o processo de alteração da porta de escuta VNC do seu sistema. Funciona bem nos meus testes. Deixe-me saber se alguém tem algum problema com isso.
#!/bin/sh
#Created by Will D. on 04/10/2015
#If you find it useful (or have suggestions, feedback, etc.), shoot me an email at [email protected].
#Requires Mac OS 10.7.x or later (tested up to and including 10.10.3)
#02/02/2016 - Updated Script to alert for SIP status
#Setting Static Variables
sourcepath="/System/Library/LaunchDaemons/"
filename="com.apple.screensharing.plist"
port=`less $sourcepath$filename | awk 'f{print $1;f=0} /SockServiceName/ {f=1}' | awk -F "<|>" '{print $3}'`
os_version=`sw_vers -productVersion`
os_version_aug=`sw_vers -productVersion | awk -F "." '{print $1$2}'`
sip_status=`csrutil status | awk '{print $5}'`
#Colors
nc='\033[0m'
light_red='\033[1;31m' #Light Red
yellow='\033[1;33m' #Yellow
clear
#Check the script is being run by root
if [ "$EUID" -ne 0 ];then
printf "${light_red}This Script Must Run As Root${nc}\n"
exit 0
fi
clear
printf ${yellow};echo "---------------------------------------------------------------"
echo "--- ---"
echo "--- This Script Will Change Your Systems VNC Listening Port ---"
echo "--- Hit Ctrl + c to exit at anytime ---"
echo "--- ---"
echo "---------------------------------------------------------------";printf "${nc}\n"
#Check System Version
sleep 1
if [ "${os_version_aug}" -lt "107" ]; then
echo ""
echo "System OS Must Be Greater Than 10.7.x. Aborting Script."
exit 0
else
echo ""
echo "System OS Version is" $os_version
echo "OS Requirement Met √"
echo "--------"
fi
if [ "${os_version_aug}" == "1011" ]; then
if [ "${sip_status}" == "enabled." ]; then
echo ""
printf "${light_red}••• System Integrity Protection is Enabled •••${nc}\n"
echo ""
echo "This script modifies /System/Library/LaunchDaemons/com.apple.screensharing.plist"
echo "Please Disable System Integrity Protection Before Running"
echo ""
exit 0
fi
fi
#Give Feedback on Current Port
sleep 1
if [ "${port}" == "vnc-server" ]; then
echo ""
echo "The System's VNC Port is Currently"
echo "Set to the System Default Port of 5900."
echo "--------"
elif [ "${port}" != "vnc-server" ]; then
echo ""
echo "The System's VNC Port is Currently"
echo "Set to a Non-default Port of" $port"."
echo "--------"
fi
#Updating Port
echo ""
printf "What Port Would You Like VNC to Listen On? "
read newport
echo ""
echo "The Following Action Requires an Admin Password."
echo "Note: Your Password Will Be Visible When You Type It"
echo ""
printf "Admin Password? "
read admin_pass
sleep 1
echo ""
echo "Created" $filename".bak."
sleep 1
echo ""
echo "Updating VNC Port to" $newport"..."
echo $admin_pass | sudo -S sed -i.bak -e "s|$port|$newport|g" $sourcepath$filename
sleep 1
echo "Done"
echo ""
sleep 1
#Restarting screensharing process
echo "Restarting Screen Sharing Service..."
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.screensharing.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.screensharing.plist
echo "Done"
sleep 1
echo ""
echo "Your System's VNC Port is Now Set to" $newport"."
echo ""
echo "Update Complete. All Done."
if [ "${os_version_aug}" == "1011" ]; then
echo ""
echo "Since you're running El Capitan"
echo "be sure to re-enable System Integrity Protection"
exit 0
fi
exit 0
Quando tentei acessar o link - recebi o erro Este servidor não pôde provar que é o getsome.homeftp.net; seu certificado de segurança não é confiável pelo sistema operacional do seu computador. Isso pode ser causado por uma configuração incorreta ou por um invasor que interceptou sua conexão.
Prasanna
Desculpe por isso Mureinik. Código postado em vez de um link.
Will
0
Para alterar a porta padrão e / ou o endereço de ligação sem desativar o System Integrity Protection , é necessário criar um novo LaunchDaemon no /Library.
Infelizmente, o agente de compartilhamento de tela não funcionará corretamente quando for atribuído um rótulo diferente. Isso significa que o daemon deve estar "sombreando" o original usando o mesmo nome. Isso causa seus próprios problemas, porque, na reinicialização, o sistema carrega o original /Systeme ignora a versão modificada /Library.
A solução é desativar o LaunchDaemon e usar um daemon "launcher" que carregará à força o LaunchDaemon modificado. No entanto, é necessário ter cuidado para ainda ativar o compartilhamento de tela através das preferências ou, caso contrário, ele terminará no modo somente observação .
Passo a passo
Ative o compartilhamento de tela nas preferências do sistema
Depois disso, os direitos de compartilhamento de tela serão provisionados corretamente, o daemon padrão não será carregado automaticamente e nosso iniciador iniciará à força nosso daemon personalizado.
Respostas:
Na verdade, você pode alternar a porta padrão para o servidor VNC da Apple no Mac OS 10.7 Lion e 10.8 Mountain Lion. Para alterar a porta, você precisa editar o arquivo plist do servidor
/System/Library/LaunchDaemons/com.apple.screensharing.plist
(esse arquivo não existe nos sistemas anteriores à versão 10.7 Lion).A edição do arquivo requer privilégios de root (sudo). No terminal, se você estiver familiarizado com o vi ou vim , poderá digitar:
ou, se não estiver, é melhor usar o nano :
Agora, tudo que você precisa fazer é mudar a linha 34 (a que lê
<string>vnc-server</string>
) para<string>nnnn</string>
onde nnnn é o número da porta que você deseja usar. Eu sei que parece estranho mudar um nome como "vnc-server" para um número, mas é assim que você deve fazer. Incluí um exemplo abaixo, caso algo não esteja claro.Para alterar a porta padrão para 54321, edite o arquivo plist para ficar assim:
Depois de salvar o arquivo, para que a alteração entre em vigor, desative o compartilhamento de tela e ligue-o novamente no painel de preferências Compartilhamento ou, alternativamente, descarregue e recarregue o serviço usando estes comandos:
fonte
Posso confirmar, depois de encontrar este tópico no Google, que a edição
/etc/services
das portas "rfb" alterará as portas de escuta do servidor VNC incluídas.Editei o arquivo e reiniciei (normalmente tentaria reiniciar os serviços ou descarregar o launchdeamon, mas também estava tendo outros problemas e não me incomodei). O iTeleport no meu iPad falhou na conexão no 5900 e teve êxito na porta alta e sem privilégios que eu escolhi.
fonte
Isso foi discutido em vários fóruns em apple.com e macosxhints.com . A resposta curta é "você não pode mudar".
As respostas mais longas sugerem maneiras de contornar isso - três possibilidades:
fonte
/etc/Services
pode fazer o truque. Eu tentei isso (eu até reiniciei o meu Mac depois de alterá-lo) sem sucesso. E, pensando um pouco mais, pode até ser uma má idéia mexer com esse arquivo, pois outros aplicativos também podem usá-lo para obter o número de porta conhecido, se quiserem se conectar a terceiros usando um protocolo específico. (Como: alterar a porta SSH no arquivo que pode parecer para trabalho, mas é uma má idéia .)Com base nas informações fornecidas por Greg neste tópico, escrevi um script bash que automatizará o processo de alteração da porta de escuta VNC do seu sistema. Funciona bem nos meus testes. Deixe-me saber se alguém tem algum problema com isso.
fonte
Para alterar a porta padrão e / ou o endereço de ligação sem desativar o System Integrity Protection , é necessário criar um novo LaunchDaemon no
/Library
.Infelizmente, o agente de compartilhamento de tela não funcionará corretamente quando for atribuído um rótulo diferente. Isso significa que o daemon deve estar "sombreando" o original usando o mesmo nome. Isso causa seus próprios problemas, porque, na reinicialização, o sistema carrega o original
/System
e ignora a versão modificada/Library
.A solução é desativar o LaunchDaemon e usar um daemon "launcher" que carregará à força o LaunchDaemon modificado. No entanto, é necessário ter cuidado para ainda ativar o compartilhamento de tela através das preferências ou, caso contrário, ele terminará no modo somente observação .
Passo a passo
Executar
Executar
Em
/Library/LaunchDaemons/com.apple.screensharing.plist
, edite a seção Soquetes para obter a aparência desejada. Por exemplo, ouvindolocalhost:5901
:Crie
/Library/LaunchDaemons/com.apple.screensharing.launcher.plist
com o seguinte conteúdo:Executar
Depois disso, os direitos de compartilhamento de tela serão provisionados corretamente, o daemon padrão não será carregado automaticamente e nosso iniciador iniciará à força nosso daemon personalizado.
fonte