Anda sebenarnya dapat mengganti port default untuk server VNC Apple pada Mac OS 10.7 Lion dan 10.8 Mountain Lion. Untuk mengubah port, Anda perlu mengedit file plist server /System/Library/LaunchDaemons/com.apple.screensharing.plist(file ini tidak ada di sistem sebelum 10.7 Lion).
Mengedit file memerlukan hak akses root (sudo). Di terminal, jika Anda terbiasa dengan vi atau vim , Anda dapat mengetik:
sudo vim /System/Library/LaunchDaemons/com.apple.screensharing.plist
atau jika tidak, Anda sebaiknya menggunakan nano :
Sekarang, yang harus Anda lakukan adalah mengubah baris 34 (yang berbunyi <string>vnc-server</string>) ke <string>nnnn</string>tempat nnnn adalah nomor port yang ingin Anda gunakan. Saya tahu rasanya aneh mengubah nama seperti "vnc-server" ke nomor, tetapi itulah cara Anda harus melakukannya. Saya telah memasukkan contoh di bawah ini jika ada sesuatu yang tidak jelas.
Untuk mengubah port default ke 54321, Anda akan mengedit file plist agar terlihat seperti ini:
Setelah menyimpan file, untuk membuat perubahan berlaku, matikan Berbagi Layar dan nyalakan lagi di panel preferensi Berbagi, atau alternatifkan bongkar dan muat ulang layanan menggunakan perintah ini:
Jika Anda masih ada - setelah Anda melakukan ini, apakah ada cara yang sebanding untuk mendapatkan aplikasi berbagi layar Mac bawaan untuk menyambungkan ke port itu, atau apakah Anda terjebak menggunakan aplikasi vnc pihak ketiga yang memungkinkan Anda menentukan Pelabuhan?
Jim Miller
2
Jawaban di atas: Di "Sambungkan ke server ...", tentukan vnc: //yourserver.com: 54321 (mengikuti contoh sebelumnya nomor port ulang)
Jim Miller
Jika ini berhasil (saya tidak bisa memeriksa sampai malam ini) Anda layak mendapatkan lebih banyak lagi upvotes.
PaulSkinner
1
Untuk mengonfirmasi, ya, Anda harus melakukan ini setelah setiap pembaruan OS (termasuk pembaruan tambahan).
PaulSkinner
1
Untuk menambahkan satu lagi catatan untuk ini, fitur 'tak menentu' baru dari OS X 10.11 El Capitan berarti tidak mungkin lagi untuk menyimpan file khusus ini tanpa menonaktifkan fitur tidak menentu, yang tidak dianjurkan. Adakah yang tahu solusinya tanpa menonaktifkan rootless?
PaulSkinner
5
Saya dapat mengonfirmasi setelah menemukan utas ini melalui Google bahwa pengeditan /etc/servicesuntuk port "rfb" akan mengubah port mendengarkan server VNC yang disertakan.
Saya mengedit file dan reboot (biasanya saya akan mencoba me-restart layanan atau membongkar launchdeamon tetapi saya mengalami beberapa masalah lain juga dan tidak mengganggu). iTeleport di iPad saya kemudian gagal terhubung pada 5900 dan berhasil pada port unprivileged tinggi yang saya pilih.
Demi kelengkapan: beberapa menyarankan bahwa mengubah port /etc/Servicesmungkin berguna. Saya mencobanya (saya bahkan reboot Mac saya setelah mengubahnya) tidak berhasil. Dan memikirkannya lagi, bahkan mungkin ide buruk untuk mengacaukan file itu, karena aplikasi lain mungkin juga menggunakannya untuk mendapatkan nomor port yang terkenal jika mereka ingin terhubung ke beberapa pihak ketiga menggunakan protokol tertentu. (Seperti: mengubah port SSH dalam file itu mungkin tampak berfungsi tetapi merupakan ide yang buruk .)
Arjan
1
Perhatikan jawabannya oleh Greg Canty - ini dapat diubah pada rilis OS X setelah Snow Leopard. Jawaban ini awalnya ditulis sebelum OS X Lion dirilis.
Doug Harris
1
Berdasarkan info yang diberikan oleh Greg di utas ini saya menulis skrip bash yang akan mengotomatiskan proses mengubah port mendengarkan VNC sistem Anda. Bekerja dengan baik dalam pengujian saya. Beritahu saya jika ada yang punya masalah dengannya.
#!/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
Ketika saya mencoba mengakses tautan - saya mendapat kesalahan Server ini tidak dapat membuktikan bahwa itu adalah getome.homeftp.net; sertifikat keamanannya tidak dipercaya oleh sistem operasi komputer Anda. Ini mungkin disebabkan oleh kesalahan konfigurasi atau penyerang mencegat koneksi Anda.
Prasanna
Maaf soal itu Mureinik. Kode diposting bukan tautan.
Will
0
Untuk mengubah port default dan / atau alamat yang mengikat tanpa menonaktifkan System Integrity Protection , Anda harus membuat LaunchDaemon baru di /Library.
Sayangnya agen berbagi layar tidak akan berfungsi dengan baik ketika diberi label yang berbeda. Itu berarti daemon harus "membayangi" aslinya menggunakan nama yang sama. Itu menyebabkan masalah sendiri karena saat reboot, sistem akan memuat yang asli /Systemdan mengabaikan versi yang dimodifikasi di /Library.
Solusinya adalah dengan menonaktifkan LaunchDaemon dan menggunakan daemon "launcher" yang secara paksa akan memuat LaunchDaemon yang dimodifikasi. Namun harus berhati-hati untuk tetap mengaktifkan Berbagi Layar melalui preferensi atau membiarkannya akan berakhir dalam mode hanya mengamati .
Di /Library/LaunchDaemons/com.apple.screensharing.plist, edit bagian Soket untuk melihat seperti yang Anda inginkan. Misalnya mendengarkan pada localhost:5901:
Setelah ini, hak Berbagi Layar akan disediakan dengan benar, daemon default tidak akan dimuat secara otomatis, dan peluncur kami akan secara paksa memulai daemon khusus kami.
Jawaban:
Anda sebenarnya dapat mengganti port default untuk server VNC Apple pada Mac OS 10.7 Lion dan 10.8 Mountain Lion. Untuk mengubah port, Anda perlu mengedit file plist server
/System/Library/LaunchDaemons/com.apple.screensharing.plist
(file ini tidak ada di sistem sebelum 10.7 Lion).Mengedit file memerlukan hak akses root (sudo). Di terminal, jika Anda terbiasa dengan vi atau vim , Anda dapat mengetik:
atau jika tidak, Anda sebaiknya menggunakan nano :
Sekarang, yang harus Anda lakukan adalah mengubah baris 34 (yang berbunyi
<string>vnc-server</string>
) ke<string>nnnn</string>
tempat nnnn adalah nomor port yang ingin Anda gunakan. Saya tahu rasanya aneh mengubah nama seperti "vnc-server" ke nomor, tetapi itulah cara Anda harus melakukannya. Saya telah memasukkan contoh di bawah ini jika ada sesuatu yang tidak jelas.Untuk mengubah port default ke 54321, Anda akan mengedit file plist agar terlihat seperti ini:
Setelah menyimpan file, untuk membuat perubahan berlaku, matikan Berbagi Layar dan nyalakan lagi di panel preferensi Berbagi, atau alternatifkan bongkar dan muat ulang layanan menggunakan perintah ini:
sumber
Saya dapat mengonfirmasi setelah menemukan utas ini melalui Google bahwa pengeditan
/etc/services
untuk port "rfb" akan mengubah port mendengarkan server VNC yang disertakan.Saya mengedit file dan reboot (biasanya saya akan mencoba me-restart layanan atau membongkar launchdeamon tetapi saya mengalami beberapa masalah lain juga dan tidak mengganggu). iTeleport di iPad saya kemudian gagal terhubung pada 5900 dan berhasil pada port unprivileged tinggi yang saya pilih.
sumber
Ini telah dibahas di berbagai forum di apple.com dan di macosxhints.com . Jawaban singkatnya adalah "Anda tidak dapat mengubahnya".
Jawaban yang lebih panjang menyarankan cara mengatasinya - tiga kemungkinan:
sumber
/etc/Services
mungkin berguna. Saya mencobanya (saya bahkan reboot Mac saya setelah mengubahnya) tidak berhasil. Dan memikirkannya lagi, bahkan mungkin ide buruk untuk mengacaukan file itu, karena aplikasi lain mungkin juga menggunakannya untuk mendapatkan nomor port yang terkenal jika mereka ingin terhubung ke beberapa pihak ketiga menggunakan protokol tertentu. (Seperti: mengubah port SSH dalam file itu mungkin tampak berfungsi tetapi merupakan ide yang buruk .)Berdasarkan info yang diberikan oleh Greg di utas ini saya menulis skrip bash yang akan mengotomatiskan proses mengubah port mendengarkan VNC sistem Anda. Bekerja dengan baik dalam pengujian saya. Beritahu saya jika ada yang punya masalah dengannya.
sumber
Untuk mengubah port default dan / atau alamat yang mengikat tanpa menonaktifkan System Integrity Protection , Anda harus membuat LaunchDaemon baru di
/Library
.Sayangnya agen berbagi layar tidak akan berfungsi dengan baik ketika diberi label yang berbeda. Itu berarti daemon harus "membayangi" aslinya menggunakan nama yang sama. Itu menyebabkan masalah sendiri karena saat reboot, sistem akan memuat yang asli
/System
dan mengabaikan versi yang dimodifikasi di/Library
.Solusinya adalah dengan menonaktifkan LaunchDaemon dan menggunakan daemon "launcher" yang secara paksa akan memuat LaunchDaemon yang dimodifikasi. Namun harus berhati-hati untuk tetap mengaktifkan Berbagi Layar melalui preferensi atau membiarkannya akan berakhir dalam mode hanya mengamati .
Selangkah demi selangkah
Menjalankan
Menjalankan
Di
/Library/LaunchDaemons/com.apple.screensharing.plist
, edit bagian Soket untuk melihat seperti yang Anda inginkan. Misalnya mendengarkan padalocalhost:5901
:Buat
/Library/LaunchDaemons/com.apple.screensharing.launcher.plist
dengan konten berikut:Menjalankan
Setelah ini, hak Berbagi Layar akan disediakan dengan benar, daemon default tidak akan dimuat secara otomatis, dan peluncur kami akan secara paksa memulai daemon khusus kami.
sumber