ম্যাক ওএস এক্সে ডিফল্ট স্ক্রিন ভাগ করে নেওয়া / ভিএনসি পোর্ট নম্বর কীভাবে পরিবর্তন করবেন?


10

এটি ডিফল্ট 5900থেকে অন্য কোনও বন্দরে পরিবর্তন করার কোনও উপায় আছে কি ?


কমপক্ষে লোকালহোস্ট বাদে সমস্ত কিছু থেকে 5900 এ সংযোগ অক্ষম করুন; আইপিএফডাব্লু দিয়ে ওএস এক্স সুরক্ষিত করা - সিএস ল্যাবস উইকি

উত্তর:


16

আপনি ম্যাক ওএস 10.7 লায়ন এবং 10.8 মাউন্টেন সিংহটিতে অ্যাপলের ভিএনসি সার্ভারের জন্য ডিফল্ট পোর্টটি স্যুইচ করতে পারেন। পোর্টটি পরিবর্তন করতে আপনাকে সার্ভারের প্লিস্ট ফাইলটি সম্পাদনা করতে হবে /System/Library/LaunchDaemons/com.apple.screensharing.plist(এই ফাইলটি 10.7 সিংহের আগে সিস্টেমে উপস্থিত নেই)।

ফাইল সম্পাদনা করার জন্য মূল (sudo) সুবিধাগুলি প্রয়োজন। টার্মিনালে, আপনি যদি vi বা vim এর সাথে পরিচিত হন তবে আপনি টাইপ করতে পারেন:

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

বা যদি আপনি না হন, আপনি আরও ভাল ন্যানো ব্যবহার করতে চাইবেন :

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

এখন, আপনাকে যা করতে হবে তা হ'ল লাইন 34 (যেটি পড়ছে <string>vnc-server</string>) পরিবর্তন করতে হবে <string>nnnn</string>যেখানে nnnn আপনার ব্যবহার করতে চান এমন পোর্ট নম্বর। আমি জানি এটি "ভিএনসি-সার্ভার" এর মতো নাম একটি সংখ্যায় পরিবর্তন করা অদ্ভুত বলে মনে হচ্ছে, তবে আপনাকে এটি করতে হবে। কিছু পরিষ্কার না হওয়ার ক্ষেত্রে আমি নীচে একটি উদাহরণ অন্তর্ভুক্ত করেছি।

ডিফল্ট পোর্টটি 54321 এ পরিবর্তন করতে, আপনি প্লাস্ট ফাইলটি এর মতো দেখতে সম্পাদনা করতে পারেন:

...
<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>

ফাইলটি সংরক্ষণের পরে, পরিবর্তনটি কার্যকর করতে, স্ক্রিন ভাগ করে নেওয়া বন্ধ করুন এবং তারপরে আবার ভাগ করে নেওয়া অগ্রাধিকার ফলকটিতে বা বিকল্পভাবে এই আদেশগুলি ব্যবহার করে পরিষেবাটি আনলোড এবং পুনরায় লোড করুন:

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.screensharing.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.screensharing.plist

আপনি যদি এখনও আশেপাশে থাকেন - একবার আপনি এটি সম্পন্ন করার পরে কি বিল্ট-ইন ম্যাক স্ক্রিনসারেটিং অ্যাপ্লিকেশনটিকে সেই বন্দরের সাথে সংযুক্ত করার জন্য তুলনামূলক উপায় রয়েছে বা আপনি তৃতীয় পক্ষের ভিএনসি অ্যাপ্লিকেশনগুলি ব্যবহার করে আটকে আছেন যা আপনাকে নির্দিষ্ট করতে দেয় বন্দর?
জিম মিলার

2
উপরের উত্তর: "সার্ভারে সংযুক্ত করুন ..." এ, ভিএনসি নির্দিষ্ট করুন: //yourserver.com: 54321 (পূর্ববর্তী পুনরায় পোর্ট নম্বর অনুসরণ করে)
জিম মিলার

যদি এটি কাজ করে (আমি আজ রাতের আগ পর্যন্ত চেক করতে পারি না) তবে আপনি আরও অনেক বেশি উপায়ে প্রাপ্য।
পলস্কিনার

1
নিশ্চিত করতে, হ্যাঁ আপনাকে প্রতিটি ওএস আপডেটের পরে এটি করতে হবে (বর্ধিত আপডেটগুলি সহ)।
পলস্কিনার 24:56

1
এটিতে আরও একটি নোট যোগ করার জন্য, ওএস এক্স 10.11 এল ক্যাপিটেনের নতুন 'রুটলেস' বৈশিষ্ট্যটির অর্থ হ'ল রুটলেস বৈশিষ্ট্যটি অক্ষম না করে এই নির্দিষ্ট ফাইলটি সংরক্ষণ করা আর সম্ভব নয়, যা প্রস্তাবিত নয়। রুটলেস নিষ্ক্রিয় না করে কেউ কি একযোগে জানে?
পলস্কিনার

5

গুগলের মাধ্যমে এই থ্রেডটি সন্ধানের পরে আমি নিশ্চিত করতে পারি যে /etc/services"আরএফবি" পোর্টগুলির জন্য সম্পাদনা অন্তর্ভুক্ত ভিএনসি সার্ভারের শ্রবণ পোর্টগুলিকে পরিবর্তন করবে।

আমি ফাইলটি সম্পাদনা করে রিবুট করেছি (সাধারণত আমি পরিষেবাগুলি পুনরায় চালু করতে বা লঞ্চডেমনটি আনলোড করার চেষ্টা করি তবে আমার কিছু অন্যান্য সমস্যাও ছিল এবং বিরক্ত করিনি)। আমার আইপ্যাডের আইটেলপোর্টটি তারপরে 5900 এ সংযোগ করতে ব্যর্থ হয়েছিল এবং আমি বেছে নেওয়া উচ্চ অনিবদ্ধ বন্দরে সফল হয়েছিল।


এই উত্তরটি পারে এখন সমাধান এল ক্যাপটেনের 10.11 সঙ্গে ব্যবহার করার জন্য দেখুন।
পলস্কিনার

নিশ্চিত করার জন্য, এটি এখন সম্ভবত মূলহীন অক্ষম না করে এল ক্যাপিটেন 10.11 এর পক্ষে সেরা সমাধান ।
পলস্কিনার

এটি ফাইল ভাগ করে নেওয়ার জন্যও কাজ করেছে (এসএমবি)! আমি "মাইক্রোসফ্ট-ডিএস" এর জন্য বন্দরটি পরিবর্তন করেছি
ওয়াওফুনহাপি

@ পলস্কিনার কি রুটহীন / ইত্যাদি সমস্ত কিছুই রক্ষা করে না? (আমি এটি অক্ষম করেছি যাতে আমি জানতে পারি না)
Wowfunhappy

@ ওয়াউফুনহપ્পি আশ্চর্যজনকভাবে, না।
পলস্কিনার 15

3

এটি অ্যাপল ডটকমের বিভিন্ন ফোরামে এবং ম্যাকোসক্সিন্টস.কম-আলোচিত হয়েছে । সংক্ষিপ্ত উত্তরটি "আপনি এটি পরিবর্তন করতে পারবেন না"।

দীর্ঘ উত্তরগুলি এর চারপাশের উপায়গুলি নির্দেশ করে - তিনটি সম্ভাবনা:

  • বিকল্প ভিএনসি সার্ভার সফ্টওয়্যার ব্যবহার করুন
  • আপনার কাস্টম বন্দর থেকে ট্র্যাফিক পুনঃনির্দেশ করতে একটি এসএসএস টানেল ব্যবহার করুন 00
  • আপনার ম্যাকের 5900 পোর্টে যেতে ভিন্ন পোর্টে আগত ট্র্যাফিক নিতে আপনার রাউটারে পোর্ট ম্যাপিং কনফিগার করুন।

কেবল সম্পূর্ণতার খাতিরে: কেউ কেউ পরামর্শ দিয়েছেন যে বন্দরগুলি পরিবর্তন করা /etc/Servicesকৌশলটি করতে পারে। আমি চেষ্টা করেছিলাম (এমনকি আমি আমার ম্যাকটি এটি পরিবর্তন করে পুনরায় বুট করেছি) কোনও লাভ হয়নি। এবং এটিকে আরও চিন্তাভাবনা করা, সেই ফাইলটির সাথে জগাখিচুড়ি করা এমনকি খারাপ ধারণা হতে পারে, কারণ অন্যান্য অ্যাপ্লিকেশনগুলি কোনও নির্দিষ্ট প্রোটোকল ব্যবহার করে কিছু তৃতীয় পক্ষের সাথে সংযোগ রাখতে চাইলে সুপরিচিত বন্দর নম্বর পেতে এটি ব্যবহার করতে পারে। (যেমন: সেই ফাইলটিতে এসএসএইচ পোর্টটি পরিবর্তন করা কার্যকর হতে পারে তবে এটি একটি খারাপ ধারণা is )
আরজান

1
গ্রেগ ক্যান্টির উত্তরটি লক্ষ্য করুন - স্নো চিতাবাঘের পরে এটি ওএস এক্স রিলিজে পরিবর্তন করা যেতে পারে। এই উত্তরটি মূলত ওএস এক্স লায়ন প্রকাশের আগেই লেখা হয়েছিল।
ডগ হ্যারিস

1

এই থ্রেডে গ্রেগের সরবরাহিত তথ্যের ভিত্তিতে আমি একটি বাশ স্ক্রিপ্ট লিখেছিলাম যা আপনার সিস্টেমের ভিএনসি শ্রবণ পোর্ট পরিবর্তন করার প্রক্রিয়াটি স্বয়ংক্রিয় করবে। আমার পরীক্ষায় ভাল কাজ করে। কারও সাথে এটির কোনও সমস্যা আছে কিনা তা আমাকে জানান।

#!/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{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

আমি যখন লিংকটি অ্যাক্সেস করার চেষ্টা করেছি - আমার ত্রুটিটি পেয়েছে এই সার্ভারটি এটি প্রমাণ করতে পারেনি যে এটি getome.homeftp.net; এর সুরক্ষা শংসাপত্রটি আপনার কম্পিউটারের অপারেটিং সিস্টেম দ্বারা বিশ্বাসযোগ্য নয়। এটি কোনও ভুল কনফিগারেশনের কারণে বা কোনও আক্রমণকারী আপনার সংযোগটিকে বাধা দিতে পারে।
প্রসন্ন

এই মুরিনিক সম্পর্কে দুঃখিত। লিঙ্কের পরিবর্তে কোড পোস্ট করা হয়েছে।
উইল

0

সিস্টেম ইন্টিগ্রিটি প্রোটেকশন অক্ষম না করে ডিফল্ট পোর্ট এবং / অথবা বাঁধাইয়ের ঠিকানাটি পরিবর্তন করতে আপনাকে নতুন লঞ্চডেমোন তৈরি করতে হবে /Library

দুর্ভাগ্যক্রমে স্ক্রিন শেয়ারিং এজেন্ট কোনও ভিন্ন লেবেল নির্ধারিত হলে সঠিকভাবে কাজ করবে না। তার অর্থ ডিমনটি একই নাম ব্যবহার করে মূলটিকে "ছায়া" দিতে হবে। এটি তার নিজের সমস্যার কারণ কারণ রিবুট করার সময়, সিস্টেমটি মূলটি লোড করবে /Systemএবং এর মধ্যে পরিবর্তিত সংস্করণটিকে উপেক্ষা করবে /Library

সমাধানটি হ'ল লঞ্চডেমোনকে অক্ষম করা এবং একটি "লঞ্চার" ডিমন ব্যবহার করুন যা জোর করে সংশোধিত লঞ্চডেমন লোড করবে। তবে তবুও পছন্দসই পর্দা ভাগ করে নেওয়ার জন্য স্ক্রিন ভাগ করে নেওয়া সক্রিয় করতে হবে তবে এটি কেবল পর্যবেক্ষণ মোডে শেষ হবে

ধাপে ধাপে

  1. সিস্টেম পছন্দগুলিতে স্ক্রিন ভাগ করে নেওয়া সক্রিয় করুন
  2. এক্সিকিউট

    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
    
  3. এক্সিকিউট

    sudo cp /System/Library/LaunchDaemons/com.apple.screensharing.plist /Library/LaunchDaemons/com.apple.screensharing.plist
    
  4. ইন /Library/LaunchDaemons/com.apple.screensharing.plist, সকেট বিভাগটি আপনি কীভাবে এটি দেখতে চান তা সম্পাদনা করুন। উদাহরণস্বরূপ শোনা localhost:5901:

    <key>Sockets</key>
      <dict>
        <key>Listener</key>
        <dict>
          <key>SockNodeName</key>
          <string>localhost</string>
          <key>SockServiceName</key>
          <string>5901</string>
        </dict>
    </dict>
    
  5. /Library/LaunchDaemons/com.apple.screensharing.launcher.plistনিম্নলিখিত বিষয়বস্তু দিয়ে তৈরি করুন :

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
      <key>Label</key>
      <string>com.apple.screensharing.launcher</string>
      <key>LaunchOnlyOnce</key>
      <true/>
      <key>RunAtLoad</key>
      <true/>
      <key>KeepAlive</key>
      <false/>
      <key>ProgramArguments</key>
      <array>
        <string>/bin/launchctl</string>
        <string>load</string>
        <string>-F</string>
        <string>/Library/LaunchDaemons/com.apple.screensharing.plist</string>
      </array>
    </dict>
    </plist>
    
  6. এক্সিকিউট

    sudo launchctl load -w /Library/LaunchDaemons/com.apple.screensharing.launcher.plist
    

এর পরে, স্ক্রিন ভাগ করে নেওয়ার অধিকারগুলি যথাযথভাবে সরবরাহ করা হবে, ডিফল্ট ডেমন স্বয়ংক্রিয়ভাবে লোড হবে না এবং আমাদের লঞ্চারটি জোর করে আমাদের কাস্টমাইজড ডিমনটি শুরু করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.