ওএস এক্স 10.6.5 (.4 থেকে) আপডেট করার পরে, যখন আমার ভিপিএন সংযুক্ত থাকে তখন অ্যাপ্লিকেশনগুলি সঠিক ক্রমে (নেটওয়ার্ক প্রিফারেন্সিতে সার্ভিস অর্ডার অনুসারে) হোস্টের নাম সন্ধান করবে বলে মনে হয় না।
আমার বর্তমান সেটআপটি এয়ারপোর্ট পরিষেবাটির সামনে একটি সিসকো আইপিসেক ভিপিএন পরিষেবা। ডিএনএস সার্ভারগুলি স্বয়ংক্রিয়ভাবে ভিপিএন সংযোগের জন্য সেটআপ হয়ে যায় (যা ঠিক আছে), এবং এয়ারপোর্ট পরিষেবা ডিএনএস আমার রাউটারের দিকে নির্দেশ করছে (192.168.1.1, যা ওপেনডিএনএস সার্ভারগুলিতে নির্দেশিত)।
আমার ভিপিএন সংযুক্ত থাকাকালীন আমি প্রথমে ডিপিএস ডিভিএসের ভিপিএন ডিএনএস সার্ভারগুলির মধ্য দিয়ে যেতে চাই, তবে আমার সমস্ত অ্যাপ্লিকেশন (ফায়ারফক্স, থান্ডারবার্ড, এসএসএস) আমার এয়ারপোর্ট ডিএনএস সার্ভারটি প্রথমে (ওপেনডিএনএস) ব্যবহার করছে বলে মনে হচ্ছে।
এটি আপডেটের ঠিক আগে কাজ করছিল।
কোন সাহায্যের জন্য ধন্যবাদ।
** সম্পাদনা **
আমি এই পোস্টটি জুড়ে এসেছি , এবং গৃহীত উত্তরে কমান্ডগুলি চালিত করেছি। যদিও এটি সাহায্য করবে বলে মনে হয় নি।
আরও কিছুটা অনুসন্ধান করার পরে, আমি এই কমান্ডটি পেয়েছিলাম: স্কুটিল - ডিএনএস
কমান্ড থেকে আউটপুট নীচে। সবকিছু ঠিকঠাক মনে হচ্ছে, কেবলমাত্র আমি মনে করি রেজোলভার # 2 এর আগে আসা উচিত এবং সমাধান সমাধান # 1 এ একটি অনুসন্ধান ডোমেন রয়েছে (এটি সম্ভবত foobar.com নয়, তবে আসল ভিপিএন ডোমেন)। আমি মনে করি এটি বাগ (বা যা কিছু হোক) মিথ্যা ছিল। আমি ম্যানুয়ালি এটি নির্দিষ্ট করেছিলাম না, এবং এটি আমার এয়ারপোর্ট সংযোগের জন্য ডিএনএস ট্যাবে নেই। যখন ভিপিএন সংযোগ বিচ্ছিন্ন হয়ে যায়, সেই অনুসন্ধান ডোমেনটি সেখানে নেই, এবং সমাধানকারী # 2 চলে গেছে, যেমনটি হওয়া উচিত।
resolver #1
search domain[0] : foobar.com
nameserver[0] : 192.168.1.1
order : 200000
resolver #2
domain : foobar.com
nameserver[0] : 172.30.50.100
nameserver[1] : 172.30.50.80
order : 100200
resolver #3
domain : local
options : mdns
timeout : 2
order : 300000
resolver #4
domain : 254.169.in-addr.arpa
options : mdns
timeout : 2
order : 300200
resolver #5
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 2
order : 300400
resolver #6
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 2
order : 300600
resolver #7
domain : a.e.f.ip6.arpa
options : mdns
timeout : 2
order : 300800
resolver #8
domain : b.e.f.ip6.arpa
options : mdns
timeout : 2
order : 301000
** সম্পাদনা **
ঠিক আছে, যতক্ষণ না কেউ আমার প্রশ্নের উত্তর দিতে সক্ষম না হয়, আমি নীচে উল্লিখিত কাজের সাথে সহায়তার জন্য একটি স্ক্রিপ্ট লিখেছি। আপনি আপনার ভিপিএন সংযুক্ত করার পরে এটি চালানো উচিত এবং সংযোগ বিচ্ছিন্ন হওয়ার পরে আবার দৌড়াতে হবে (এটি স্বয়ংক্রিয়ভাবে চালানোর কোনও উপায় আমি খুঁজে পাইনি)। কয়েকটি নোট:
আমার অ্যাকাউন্টটি আনলকযুক্ত নেটওয়ার্ক পছন্দগুলি সহ অ্যাডমিন হিসাবে চালিত হয়, সুতরাং আমি নিশ্চিত না যে এই স্ক্রিপ্টটি অন্য কোনও ক্ষেত্রে কীভাবে সুষ্ঠু হবে।
আপনাকে স্ক্রিপ্টে vpn_srvc_name সেট করতে হবে, আপনি এটি অনুমান করেছিলেন, ভিপিএন পরিষেবা নাম।
আমি নিশ্চিত যে এটি করার সম্ভবত একটি সহজ উপায় আছে, তাই আপনার মন্তব্য পোস্ট করতে দ্বিধা বোধ করবেন।
এই পান্ডুলিপি:
#!/bin/bash
function get_pri_srvc_id ()
{
cat <<EOF | scutil | \
grep 'PrimaryService' | \
awk -F': ' '{print $2}'
show State:/Network/Global/IPv4
EOF
}
function get_srvc_name ()
{
cat <<EOF | scutil | \
grep 'UserDefinedName' | \
awk -F': ' '{print $2}'
show Setup:/Network/Service/$1
EOF
}
function get_srvc_ids ()
{
cat <<EOF | scutil | \
sed -nEe '
/ServiceOrder/ {
:ids
n
/[0-9]+ :/ {
s/ *[0-9]+ : ([0-9A-Z-]+) */\1/p
b ids
}
}'
show Setup:/Network/Global/IPv4
EOF
}
function get_srvc_id_by_name ()
{
local srvc_ids=$(get_srvc_ids)
for srvc_id in $srvc_ids
do
local srvc_name=$(get_srvc_name "$srvc_id")
if [[ "$srvc_name" == "$1" ]]
then
echo $srvc_id
return
fi
done
}
function get_dns_ips ()
{
local srvc_id=$(get_srvc_id_by_name "$1")
cat <<EOF | scutil | \
sed -nEe '
/ServerAddresses/ {
:ips
n
/[0-9]+ :/ {
s/ *[0-9]+ : ([0-9.]+) */\1/p
b ips
}
}'
show $2:/Network/Service/$srvc_id/DNS
EOF
}
function set_dns_ips ()
{
networksetup -setdnsservers "$@"
}
vpn_srvc_name='NAME OF VPN SERVICE'
ip_file='/tmp/setup_dns_ips'
pri_srvc_id=$(get_pri_srvc_id)
pri_srvc_name=$(get_srvc_name "$pri_srvc_id")
if [[ ! -e "$ip_file" ]]
then
setup_dns_ips=$(get_dns_ips "$pri_srvc_name" "Setup")
state_dns_ips=$(get_dns_ips "$pri_srvc_name" "State")
vpn_ips=$(get_dns_ips "$vpn_srvc_name" "State")
set_dns_ips "$pri_srvc_name" $vpn_ips $setup_dns_ips $state_dns_ips
if [[ -z "$setup_dns_ips" ]]
then
setup_dns_ips="Empty"
fi
echo $setup_dns_ips >$ip_file
else
setup_dns_ips=$(cat $ip_file)
set_dns_ips "$pri_srvc_name" $setup_dns_ips
rm $ip_file
fi
** সম্পাদনা **
দেখে মনে হচ্ছে এটি লায়নতে এখনও একটি সমস্যা is আমি শিরোনাম আপডেট করছি এবং একটি ট্যাগ যুক্ত করছি।
** সম্পাদনা **
স্পষ্টতই সিংহ ওয়াই-ফাইতে এয়ারপোর্ট পরিষেবাটির নতুন নামকরণ সহ কিছু বেতার পরিবর্তন আনল। যদি আমি একটি ওয়্যারলেস সংযোগের মাধ্যমে তাদের ভিপিএন এর সাথে সংযোগ স্থাপন করি তবে আমি সরবরাহ করা কাজের স্ক্রিপ্ট নিয়ে সমস্যা সৃষ্টি করতে পারে issues সিংহ (কোনও কারণে) এয়ারপোর্ট নামক পরিষেবাটি ফণীর নীচে রাখে। এটি ঠিক করতে, আপনার এয়ারপোর্টের পাশাপাশি আপনার ওয়াই-ফাই পরিষেবাটির নতুন নামকরণ করতে হবে। আপনি যদি Wi-Fi নাম রাখতে চান তবে আপনাকে অবশ্যই প্রথমে এটির নতুন নামকরণ করতে হবে, তারপরে আবার নামটি Wi-Fi এ রাখতে হবে।
networksetup -setdnsservers "$@"
। আমার ম্যাক প্রোতে দুটি ইথারনেট সংযোগ রয়েছে ("ইথারনেট 1" এবং "ইথারনেট 2" ডিফল্ট নাম) এবং তাই সেগুলি উদ্ধৃত করতে হবে। সম্পাদনা: কেন এটি করবেন