Wie kann ich die Standard-Bildschirmfreigabe / VNC-Portnummer unter Mac OS X ändern?

37009
GJ.

Gibt es eine Möglichkeit, den Standard 5900von einem anderen Port zu ändern ?

10
Deaktivieren Sie mindestens Verbindungen von allem außer localhost zu 5900; [Sichern von OS X mit ipfw - CS Labs Wiki] (http://docs.cslabs.clarkson.edu/wiki/Securing_OS_X_with_ipfw) vor 13 Jahren 0

4 Antworten auf die Frage

15
Greg Canty

Sie können den Standardport für den VNC-Server von Apple unter Mac OS 10.7 Lion und 10.8 Mountain Lion tatsächlich ändern. Um den Port zu ändern, müssen Sie die Plist-Datei des Servers bearbeiten /System/Library/LaunchDaemons/com.apple.screensharing.plist(diese Datei ist in Systemen vor 10.7 Lion nicht vorhanden).

Das Bearbeiten der Datei erfordert Root-Berechtigungen (Sudo-Berechtigungen). Wenn Sie mit vi oder vim vertraut sind, können Sie Folgendes eingeben :

sudo vim /System/Library/LaunchDaemons/com.apple.screensharing.plist 

oder wenn nicht, nimm lieber nano :

sudo nano /System/Library/LaunchDaemons/com.apple.screensharing.plist 

Jetzt müssen Sie nur noch die Zeile 34 (die lesende <string>vnc-server</string>) ändern, <string>nnnn</string>wobei nnnn die Portnummer ist, die Sie verwenden möchten. Ich weiß, es scheint seltsam, einen Namen wie "vnc-server" in eine Zahl zu ändern, aber so müssen Sie es tun. Ich habe unten ein Beispiel eingefügt, falls etwas nicht klar ist.

Um den Standardport auf 54321 zu ändern, bearbeiten Sie die Plist-Datei wie folgt:

... <key>Sockets</key> <dict> <key>Listener</key> <dict> <key>Bonjour</key> <string>rfb</string> <key>SockServiceName</key> <string>54321</string> <!-- Change this line! --> </dict> </dict> <key>UserName</key> <string>root</string> <key>SHAuthorizationRight</key> <string>system.preferences</string> </dict> </plist> 

Deaktivieren Sie nach dem Speichern der Datei die Bildschirmfreigabe im Bereich Voreinstellungen für die Freigabe oder aktivieren Sie sie erneut. Alternativ können Sie den Dienst mit den folgenden Befehlen entladen und erneut laden:

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.screensharing.plist sudo launchctl load /System/Library/LaunchDaemons/com.apple.screensharing.plist 
Wenn Sie noch in der Nähe sind, gibt es eine vergleichbare Möglichkeit, die integrierte Mac-Screensharing-App mit diesem Port zu verbinden, oder verwenden Sie Vnc-Apps von Drittanbietern, mit denen Sie die Option angeben können Hafen? Jim Miller vor 11 Jahren 0
Antwort auf oben: Geben Sie unter "Mit Server verbinden ..." vnc: //yourserver.com: 54321 an (nach der vorherigen Beispielreportnummer) Jim Miller vor 11 Jahren 2
Wenn dies funktioniert (ich kann es bis heute Abend nicht überprüfen), verdienen Sie noch viele weitere Upvotes. PaulSkinner vor 11 Jahren 0
Übrigens tut es. Bestätigt einwandfreies Arbeiten. Ich denke, dass Sie diese Schritte wahrscheinlich nach jedem OS-Update wiederholen müssen, aber trotzdem ... PaulSkinner vor 11 Jahren 0
Um dies zu bestätigen, müssen Sie dies nach jeder Aktualisierung des Betriebssystems tun (einschließlich inkrementeller Updates). PaulSkinner vor 11 Jahren 1
Die neue "rootless" -Funktion von OS X 10.11 El Capitan bedeutet, dass es nicht mehr möglich ist, diese bestimmte Datei zu speichern, ohne die rootless-Funktion zu deaktivieren. Dies wird nicht empfohlen. Kennt jemand eine Problemumgehung, ohne rootless zu deaktivieren? PaulSkinner vor 9 Jahren 1
Damit es nicht an alle Schnittstellen, sondern an localhost gebunden wird, ändern Sie den Schlüssel von Bonjour in SockNodeName und die Zeichenfolge von rfb in 127.0.0.1 Erlend vor 9 Jahren 0
Ich kann die Datei nicht bearbeiten, egal was ich mache. VIM-Editor sagt, dass die Datei zum Schreiben nicht geöffnet werden kann. Ich bin auch als Superuser angemeldet, ich kann nicht einmal Berechtigungen oder Besitzer der Datei ändern, als wäre ich komplett gesperrt. Irgendwelche Ideen? Joseph Astrahan vor 6 Jahren 0
5
MichaelM

Nachdem Sie diesen Thread über Google gefunden haben, kann ich bestätigen, dass das Bearbeiten /etc/servicesder "Rfb" -Ports die Abhörports des enthaltenen VNC-Servers ändert.

Ich habe die Datei bearbeitet und neu gestartet (normalerweise würde ich versuchen, die Dienste neu zu starten oder den Launchdeamon zu entladen, aber ich hatte auch andere Probleme und habe mich nicht darum gekümmert). iTeleport auf meinem iPad konnte dann keine Verbindung mit dem 5900 herstellen und der hochprivilegierte Port, den ich gewählt hatte, war erfolgreich.

Diese Antwort * kann * jetzt die Lösung für El Capitan 10.11 sein. PaulSkinner vor 9 Jahren 0
Um dies zu bestätigen, ist dies nun wahrscheinlich die beste Lösung für El Capitan 10.11 **, ohne dass rootless deaktiviert wird. PaulSkinner vor 9 Jahren 0
Das funktionierte auch für File Sharing (smb)! Ich habe den Port für "Microsoft-DS" geändert. Wowfunhappy vor 7 Jahren 0
@PaulSkinner Schützt nicht rootless alles in / etc? (Ich habe es deaktiviert, also würde ich es nicht wissen) Wowfunhappy vor 7 Jahren 0
@Wowfunglücklich, nein. PaulSkinner vor 7 Jahren 0
3
Doug Harris

This has been discussed on various forums at apple.com and on macosxhints.com. The short answer is "you can't change it".

The longer answers suggest ways around it -- three possibilities:

  • Use alternate VNC server software
  • Use an ssh tunnel to redirect traffic from your custom port to 5900
  • Configure port mapping in your router to take incoming traffic on a different port to go to port 5900 on your mac.
Nur der Vollständigkeit halber: Einige schlagen vor, dass das Ändern der Ports in `/ etc / Services` den Trick erfüllen könnte. Ich habe es versucht (ich habe meinen Mac nach dem Umbau sogar neu gestartet) ohne Erfolg. Wenn Sie darüber nachdenken, ist es vielleicht sogar eine schlechte Idee, sich mit dieser Datei zu beschäftigen, da andere Anwendungen sie möglicherweise auch verwenden, um die bekannte Portnummer zu erhalten, wenn sie über ein bestimmtes Protokoll eine Verbindung zu einem Drittanbieter herstellen möchten. (Zum Beispiel: Das Ändern des SSH-Ports in dieser Datei scheint zu funktionieren, aber [ist eine schlechte Idee]) (http://serverfault.com/questions/18761/how-to-change-sshd-port-on-mac-os- x / 67616 # 67616).) Arjan vor 13 Jahren 0
Beachten Sie die Antwort von Greg Canty - sie kann in OS X-Versionen nach Snow Leopard geändert werden. Diese Antwort wurde ursprünglich vor der Veröffentlichung von OS X Lion geschrieben. Doug Harris vor 10 Jahren 1
1
Will

Basierend auf den Informationen, die Greg in diesem Thread bereitgestellt hat, schrieb ich ein Bash-Skript, das den Prozess des Änderns des VNC-Überwachungsports Ihres Systems automatisiert. Funktioniert gut in meinen Tests. Lassen Sie mich wissen, wenn jemand Probleme damit hat.

#!/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 throwapenny@me.com. #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 /SockServiceName/ ' | awk -F "<|>" ''` os_version=`sw_vers -productVersion` os_version_aug=`sw_vers -productVersion | awk -F "." ''` sip_status=`csrutil status | awk ''` #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 "$This Script Must Run As Root$\n" exit 0 fi  clear printf $;echo "---------------------------------------------------------------" echo "--- ---" echo "--- This Script Will Change Your Systems VNC Listening Port ---" echo "--- Hit Ctrl + c to exit at anytime ---" echo "--- ---" echo "---------------------------------------------------------------";printf "$\n"  #Check System Version sleep 1 if [ "$" -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 [ "$" == "1011" ]; then if [ "$" == "enabled." ]; then echo "" printf "$••• System Integrity Protection is Enabled •••$\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 [ "$" == "vnc-server" ]; then echo "" echo "The System's VNC Port is Currently" echo "Set to the System Default Port of 5900." echo "--------" elif [ "$" != "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 [ "$" == "1011" ]; then echo "" echo "Since you're running El Capitan" echo "be sure to re-enable System Integrity Protection" exit 0 fi  exit 0 
Als ich versuchte, auf den Link zuzugreifen, erhielt ich den Fehler _Dieser Server konnte nicht beweisen, dass es sich um getsome.homeftp.net handelt; Das Sicherheitszertifikat wird vom Betriebssystem Ihres Computers nicht als vertrauenswürdig eingestuft. Dies kann durch eine fehlerhafte Konfiguration oder durch einen Angreifer verursacht werden, der Ihre Verbindung abfängt._ Prasanna vor 9 Jahren 0
Entschuldigung, Mureinik. Code veröffentlicht statt eines Links. Will vor 9 Jahren 0