Vous pouvez réellement changer le port par défaut du serveur VNC d'Apple sur Mac OS 10.7 Lion et 10.8 Mountain Lion. Pour modifier le port, vous devez modifier le fichier plist du serveur /System/Library/LaunchDaemons/com.apple.screensharing.plist(ce fichier n'existe pas dans les systèmes antérieurs à 10.7 Lion).
La modification du fichier nécessite des privilèges root (sudo). Dans le terminal, si vous connaissez vi ou vim , vous pouvez taper:
sudo vim /System/Library/LaunchDaemons/com.apple.screensharing.plist
ou si vous ne l'êtes pas, vous feriez mieux d'utiliser nano :
Maintenant, tout ce que vous avez à faire est de changer la ligne 34 (celle qui lit <string>vnc-server</string>) <string>nnnn</string>où nnnn est le numéro de port que vous souhaitez utiliser. Je sais qu'il semble bizarre de changer un nom comme "vnc-server" en un nombre, mais c'est la façon dont vous devez le faire. J'ai inclus un exemple ci-dessous au cas où quelque chose ne serait pas clair.
Pour changer le port par défaut en 54321, vous devez modifier le fichier plist pour qu'il ressemble à ceci:
Après avoir enregistré le fichier, pour que la modification prenne effet, désactivez le partage d'écran, puis réactivez-le dans le volet des préférences de partage, ou bien déchargez et rechargez le service à l'aide de ces commandes:
Si vous êtes toujours là - une fois que vous avez fait cela, existe-t-il un moyen comparable d'obtenir que l'application de partage d'écran Mac intégrée se connecte à ce port, ou êtes-vous bloqué à l'aide d'applications vnc tierces qui vous permettent de spécifier le Port?
Jim Miller,
2
Réponse à ci-dessus: dans "Se connecter au serveur ...", spécifiez vnc: //votreserveur.com: 54321 (suivant l'exemple précédent concernant le numéro de port)
Jim Miller
Si cela fonctionne (je ne peux pas vérifier avant ce soir), vous méritez beaucoup plus de votes positifs.
PaulSkinner
1
Pour confirmer, oui, vous devrez le faire après chaque mise à jour du système d'exploitation (y compris les mises à jour incrémentielles).
PaulSkinner
1
Pour ajouter une note à cela, la nouvelle fonctionnalité «rootless» d'OS X 10.11 El Capitan signifie qu'il n'est plus possible d'enregistrer ce fichier particulier sans désactiver la fonctionnalité rootless, ce qui n'est pas recommandé. Quelqu'un connaît une solution de contournement sans désactiver rootless?
PaulSkinner
5
Je peux confirmer après avoir trouvé ce fil via Google que l'édition /etc/servicespour les ports "rfb" changera les ports d'écoute du serveur VNC inclus.
J'ai édité le fichier et redémarré (j'essayais généralement de redémarrer les services ou de décharger le lanceur de lancement, mais j'avais également d'autres problèmes et je n'ai pas pris la peine). iTeleport sur mon iPad n'a pas réussi à se connecter sur 5900 et a réussi sur le haut port non privilégié que j'ai choisi.
Juste pour être complet: certains suggèrent que changer les ports /etc/Servicespourrait faire l'affaire. J'ai essayé cela (j'ai même redémarré mon Mac après l'avoir changé) en vain. Et en y réfléchissant davantage, il pourrait même être une mauvaise idée de jouer avec ce fichier, car d'autres applications peuvent également l'utiliser pour obtenir le numéro de port connu si elles veulent se connecter à un tiers en utilisant un protocole spécifique. (Comme: changer le port SSH dans ce fichier peut sembler fonctionner mais c'est une mauvaise idée .)
Arjan
1
Notez la réponse de Greg Canty - elle peut être modifiée sur les versions OS X après Snow Leopard. Cette réponse a été écrite à l'origine avant la sortie d'OS X Lion.
Doug Harris
1
Sur la base des informations fournies par Greg dans ce fil, j'ai écrit un script bash qui automatisera le processus de modification du port d'écoute VNC de votre système. Fonctionne bien dans mes tests. Faites-moi savoir si quelqu'un a des problèmes avec cela.
#!/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
Lorsque j'ai essayé d'accéder au lien - j'ai eu l'erreur Ce serveur n'a pas pu prouver qu'il s'agit de getsome.homeftp.net; son certificat de sécurité n'est pas approuvé par le système d'exploitation de votre ordinateur. Cela peut être dû à une mauvaise configuration ou à un pirate interceptant votre connexion.
Prasanna
Désolé pour ce Mureinik. Code affiché au lieu d'un lien.
Will
0
Pour modifier le port par défaut et / ou l'adresse de liaison sans désactiver la protection de l'intégrité du système , vous devez créer un nouveau LaunchDaemon dans /Library.
Malheureusement, l'agent de partage d'écran ne fonctionnera pas correctement lorsqu'il est affecté à une étiquette différente. Cela signifie que le démon doit "observer" l'original en utilisant le même nom. Cela provoque ses propres problèmes car au redémarrage, le système chargera l'original dans /Systemet ignorera la version modifiée dans /Library.
La solution consiste à désactiver le LaunchDaemon et à utiliser un démon "lanceur" qui chargera de force le LaunchDaemon modifié. Cependant, il faut veiller à toujours activer le partage d'écran via les préférences, sinon il se terminera en mode d'observation uniquement .
Pas à pas
Activer le partage d'écran dans les préférences système
Dans /Library/LaunchDaemons/com.apple.screensharing.plist, modifiez la section Sockets pour voir comment vous le souhaitez. Par exemple en écoutant localhost:5901:
Après cela, les droits de partage d'écran seront correctement provisionnés, le démon par défaut ne se chargera pas automatiquement et notre lanceur démarrera de force notre démon personnalisé.
Réponses:
Vous pouvez réellement changer le port par défaut du serveur VNC d'Apple sur Mac OS 10.7 Lion et 10.8 Mountain Lion. Pour modifier le port, vous devez modifier le fichier plist du serveur
/System/Library/LaunchDaemons/com.apple.screensharing.plist
(ce fichier n'existe pas dans les systèmes antérieurs à 10.7 Lion).La modification du fichier nécessite des privilèges root (sudo). Dans le terminal, si vous connaissez vi ou vim , vous pouvez taper:
ou si vous ne l'êtes pas, vous feriez mieux d'utiliser nano :
Maintenant, tout ce que vous avez à faire est de changer la ligne 34 (celle qui lit
<string>vnc-server</string>
)<string>nnnn</string>
où nnnn est le numéro de port que vous souhaitez utiliser. Je sais qu'il semble bizarre de changer un nom comme "vnc-server" en un nombre, mais c'est la façon dont vous devez le faire. J'ai inclus un exemple ci-dessous au cas où quelque chose ne serait pas clair.Pour changer le port par défaut en 54321, vous devez modifier le fichier plist pour qu'il ressemble à ceci:
Après avoir enregistré le fichier, pour que la modification prenne effet, désactivez le partage d'écran, puis réactivez-le dans le volet des préférences de partage, ou bien déchargez et rechargez le service à l'aide de ces commandes:
la source
Je peux confirmer après avoir trouvé ce fil via Google que l'édition
/etc/services
pour les ports "rfb" changera les ports d'écoute du serveur VNC inclus.J'ai édité le fichier et redémarré (j'essayais généralement de redémarrer les services ou de décharger le lanceur de lancement, mais j'avais également d'autres problèmes et je n'ai pas pris la peine). iTeleport sur mon iPad n'a pas réussi à se connecter sur 5900 et a réussi sur le haut port non privilégié que j'ai choisi.
la source
Cela a été discuté sur divers forums sur apple.com et sur macosxhints.com . La réponse courte est "vous ne pouvez pas le changer".
Les réponses plus longues suggèrent des solutions: trois possibilités:
la source
/etc/Services
pourrait faire l'affaire. J'ai essayé cela (j'ai même redémarré mon Mac après l'avoir changé) en vain. Et en y réfléchissant davantage, il pourrait même être une mauvaise idée de jouer avec ce fichier, car d'autres applications peuvent également l'utiliser pour obtenir le numéro de port connu si elles veulent se connecter à un tiers en utilisant un protocole spécifique. (Comme: changer le port SSH dans ce fichier peut sembler fonctionner mais c'est une mauvaise idée .)Sur la base des informations fournies par Greg dans ce fil, j'ai écrit un script bash qui automatisera le processus de modification du port d'écoute VNC de votre système. Fonctionne bien dans mes tests. Faites-moi savoir si quelqu'un a des problèmes avec cela.
la source
Pour modifier le port par défaut et / ou l'adresse de liaison sans désactiver la protection de l'intégrité du système , vous devez créer un nouveau LaunchDaemon dans
/Library
.Malheureusement, l'agent de partage d'écran ne fonctionnera pas correctement lorsqu'il est affecté à une étiquette différente. Cela signifie que le démon doit "observer" l'original en utilisant le même nom. Cela provoque ses propres problèmes car au redémarrage, le système chargera l'original dans
/System
et ignorera la version modifiée dans/Library
.La solution consiste à désactiver le LaunchDaemon et à utiliser un démon "lanceur" qui chargera de force le LaunchDaemon modifié. Cependant, il faut veiller à toujours activer le partage d'écran via les préférences, sinon il se terminera en mode d'observation uniquement .
Pas à pas
Exécuter
Exécuter
Dans
/Library/LaunchDaemons/com.apple.screensharing.plist
, modifiez la section Sockets pour voir comment vous le souhaitez. Par exemple en écoutantlocalhost:5901
:Créez
/Library/LaunchDaemons/com.apple.screensharing.launcher.plist
avec le contenu suivant:Exécuter
Après cela, les droits de partage d'écran seront correctement provisionnés, le démon par défaut ne se chargera pas automatiquement et notre lanceur démarrera de force notre démon personnalisé.
la source