En realidad, puede cambiar el puerto predeterminado para el servidor VNC de Apple en Mac OS 10.7 Lion y 10.8 Mountain Lion. Para cambiar el puerto, debe editar el archivo plist del servidor /System/Library/LaunchDaemons/com.apple.screensharing.plist(este archivo no existe en los sistemas anteriores a 10.7 Lion).
La edición del archivo requiere privilegios de root (sudo). En la terminal, si está familiarizado con vi o vim , puede escribir:
sudo vim /System/Library/LaunchDaemons/com.apple.screensharing.plist
Ahora, todo lo que tiene que hacer es cambiar la línea 34 (la que se lee <string>vnc-server</string>) a <string>nnnn</string>donde nnnn es el número de puerto que desea usar. Sé que parece extraño cambiar un nombre como "vnc-server" a un número, pero esa es la forma en que debes hacerlo. He incluido un ejemplo a continuación en caso de que algo no esté claro.
Para cambiar el puerto predeterminado a 54321, editaría el archivo plist para que se vea así:
Después de guardar el archivo, para que el cambio surta efecto, apague Compartir pantalla y vuelva a encenderlo en el panel de preferencias Compartir, o alternativamente descargue y vuelva a cargar el servicio con estos comandos:
Si todavía está cerca, una vez que haya hecho esto, ¿hay una manera comparable de hacer que la aplicación de pantalla compartida de Mac incorporada se conecte a ese puerto, o está atascado usando aplicaciones de vnc de terceros que le permiten especificar el ¿Puerto?
Jim Miller
2
Respuesta a lo anterior: En "Conectarse al servidor ...", especifique vnc: //yourserver.com: 54321 (siguiendo el número de puerto de ejemplo anterior)
Jim Miller
Si esto funciona (no puedo verificar hasta esta noche), te mereces muchos más votos a favor.
PaulSkinner
1
Para confirmar, sí, deberá hacer esto después de cada actualización del sistema operativo (incluidas las actualizaciones incrementales).
PaulSkinner
1
Para agregar una nota más a esto, la nueva característica 'sin raíz' de OS X 10.11 El Capitan significa que ya no es posible guardar este archivo en particular sin deshabilitar la característica sin raíz, lo que no se recomienda. ¿Alguien sabe una solución sin deshabilitar rootless?
PaulSkinner
5
Después de encontrar este hilo a través de Google, puedo confirmar que la edición /etc/servicesde los puertos "rfb" cambiará los puertos de escucha del servidor VNC incluido.
Edité el archivo y reinicié (por lo general, intentaba reiniciar los servicios o descargar el launchdeamon, pero también tenía otros problemas y no me molesté). iTeleport en mi iPad no pudo conectarse en 5900 y tuvo éxito en el puerto sin privilegios que elegí.
Solo en aras de la exhaustividad: algunos sugieren que cambiar los puertos /etc/Servicespodría ser el truco. Lo intenté (incluso reinicié mi Mac después de cambiarlo) fue en vano. Y reflexionando un poco más, incluso podría ser una mala idea meterse con ese archivo, ya que otras aplicaciones también podrían usarlo para obtener el número de puerto conocido si quieren conectarse a un tercero utilizando un protocolo específico. (Como: cambiar el puerto SSH en ese archivo puede parecer que funciona, pero es una mala idea .)
Arjan
1
Tenga en cuenta la respuesta de Greg Canty: se puede cambiar en las versiones de OS X después de Snow Leopard. Esta respuesta se escribió originalmente antes de que se lanzara OS X Lion.
Doug Harris
1
Basado en la información provista por Greg en este hilo, escribí un script bash que automatizará el proceso de cambiar el puerto de escucha VNC de su sistema. Funciona bien en mis pruebas. Avíseme si alguien tiene algún problema con eso.
#!/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
Cuando intenté acceder al enlace, recibí el error Este servidor no pudo probar que es getsome.homeftp.net; el sistema operativo de su computadora no confía en su certificado de seguridad. Esto puede ser causado por una configuración incorrecta o un atacante que intercepta su conexión.
Prasanna
Perdón por eso Mureinik. Código publicado en lugar de un enlace.
Se
0
Para cambiar el puerto predeterminado y / o la dirección de enlace sin deshabilitar la Protección de integridad del sistema , debe crear un nuevo LaunchDaemon en /Library.
Lamentablemente, el agente para compartir pantalla no funcionará correctamente cuando se le asigne una etiqueta diferente. Eso significa que el demonio tiene que estar "sombreando" el original usando el mismo nombre. Eso causa sus propios problemas porque al reiniciar, el sistema cargará el original /Systeme ignorará la versión modificada /Library.
La solución es deshabilitar el LaunchDaemon y usar un demonio "launcher" que cargará a la fuerza el LaunchDaemon modificado. Sin embargo, se debe tener cuidado para seguir activando Compartir pantalla a través de las preferencias o, de lo contrario, terminará en modo de observación solamente .
Paso a paso
Activar Compartir pantalla en las Preferencias del sistema
Después de esto, los derechos de Compartir pantalla se aprovisionarán correctamente, el demonio predeterminado no se cargará automáticamente y nuestro lanzador iniciará por la fuerza nuestro demonio personalizado.
Respuestas:
En realidad, puede cambiar el puerto predeterminado para el servidor VNC de Apple en Mac OS 10.7 Lion y 10.8 Mountain Lion. Para cambiar el puerto, debe editar el archivo plist del servidor
/System/Library/LaunchDaemons/com.apple.screensharing.plist
(este archivo no existe en los sistemas anteriores a 10.7 Lion).La edición del archivo requiere privilegios de root (sudo). En la terminal, si está familiarizado con vi o vim , puede escribir:
o si no lo eres, será mejor que uses nano :
Ahora, todo lo que tiene que hacer es cambiar la línea 34 (la que se lee
<string>vnc-server</string>
) a<string>nnnn</string>
donde nnnn es el número de puerto que desea usar. Sé que parece extraño cambiar un nombre como "vnc-server" a un número, pero esa es la forma en que debes hacerlo. He incluido un ejemplo a continuación en caso de que algo no esté claro.Para cambiar el puerto predeterminado a 54321, editaría el archivo plist para que se vea así:
Después de guardar el archivo, para que el cambio surta efecto, apague Compartir pantalla y vuelva a encenderlo en el panel de preferencias Compartir, o alternativamente descargue y vuelva a cargar el servicio con estos comandos:
fuente
Después de encontrar este hilo a través de Google, puedo confirmar que la edición
/etc/services
de los puertos "rfb" cambiará los puertos de escucha del servidor VNC incluido.Edité el archivo y reinicié (por lo general, intentaba reiniciar los servicios o descargar el launchdeamon, pero también tenía otros problemas y no me molesté). iTeleport en mi iPad no pudo conectarse en 5900 y tuvo éxito en el puerto sin privilegios que elegí.
fuente
Esto se ha discutido en varios foros en apple.com y en macosxhints.com . La respuesta corta es "no se puede cambiar".
Las respuestas más largas sugieren formas de evitarlo: tres posibilidades:
fuente
/etc/Services
podría ser el truco. Lo intenté (incluso reinicié mi Mac después de cambiarlo) fue en vano. Y reflexionando un poco más, incluso podría ser una mala idea meterse con ese archivo, ya que otras aplicaciones también podrían usarlo para obtener el número de puerto conocido si quieren conectarse a un tercero utilizando un protocolo específico. (Como: cambiar el puerto SSH en ese archivo puede parecer que funciona, pero es una mala idea .)Basado en la información provista por Greg en este hilo, escribí un script bash que automatizará el proceso de cambiar el puerto de escucha VNC de su sistema. Funciona bien en mis pruebas. Avíseme si alguien tiene algún problema con eso.
fuente
Para cambiar el puerto predeterminado y / o la dirección de enlace sin deshabilitar la Protección de integridad del sistema , debe crear un nuevo LaunchDaemon en
/Library
.Lamentablemente, el agente para compartir pantalla no funcionará correctamente cuando se le asigne una etiqueta diferente. Eso significa que el demonio tiene que estar "sombreando" el original usando el mismo nombre. Eso causa sus propios problemas porque al reiniciar, el sistema cargará el original
/System
e ignorará la versión modificada/Library
.La solución es deshabilitar el LaunchDaemon y usar un demonio "launcher" que cargará a la fuerza el LaunchDaemon modificado. Sin embargo, se debe tener cuidado para seguir activando Compartir pantalla a través de las preferencias o, de lo contrario, terminará en modo de observación solamente .
Paso a paso
Ejecutar
Ejecutar
En
/Library/LaunchDaemons/com.apple.screensharing.plist
, edite la sección Sockets para ver cómo lo desea. Por ejemplo escuchando enlocalhost:5901
:Crea
/Library/LaunchDaemons/com.apple.screensharing.launcher.plist
con el siguiente contenido:Ejecutar
Después de esto, los derechos de Compartir pantalla se aprovisionarán correctamente, el demonio predeterminado no se cargará automáticamente y nuestro lanzador iniciará por la fuerza nuestro demonio personalizado.
fuente