আমি সংযোগটি নির্ধারণের জন্য ব্যবহারের বিরুদ্ধে অত্যন্ত প্রস্তাব দিই ping
। অনেকগুলি নেটওয়ার্ক প্রশাসক রয়েছে যা তাদের নেটওয়ার্ক থেকে উত্সাহিত বন্যার আক্রমণ সম্পর্কিত উদ্বেগের কারণে আইসিএমপি (এটি ব্যবহার করে এমন প্রোটোকল) অক্ষম করে।
পরিবর্তে, আমি কোনও বন্দরে নির্ভরযোগ্য সার্ভারের একটি দ্রুত পরীক্ষা ব্যবহার করি যা আপনি আশা করতে পারেন:
if nc -zw1 google.com 443; then
echo "we have connectivity"
fi
এই ব্যবহারের netcat ( nc
) তার মধ্যে বন্দর স্ক্যান মোড, একটি দ্রুত অকর্মা ( -z
হয় শূন্য, I / O মোড [স্ক্যানিং জন্য ব্যবহৃত] একটি দ্রুত সময়সীমার (সঙ্গে) -w 1
অপেক্ষা করছে সর্বাধিক এক সেকেন্ড)। এটি 443 পোর্টে (এইচটিটিপিএস) গুগল চেক করে।
বন্দী পোর্টাল এবং স্বচ্ছ প্রক্সিগুলির বিরুদ্ধে সুরক্ষার প্রয়াস হিসাবে আমি HTTP এর পরিবর্তে এইচটিটিপিএস ব্যবহার করেছি যা কোনও হোস্টের জন্য 80 (HTTP) পোর্টে উত্তর দিতে পারে। 443 বন্দর ব্যবহার করার সময় এটির কম সম্ভাবনা রয়েছে যেহেতু সেখানে শংসাপত্রের সাথে মেলে না does
আপনি যদি এর বিপরীতে নিজেকে প্রমাণ করতে চান তবে আপনাকে এই সংযোগের সুরক্ষাটি বৈধতা দিতে হবে:
test=google.com
if nc -zw1 $test 443 && echo |openssl s_client -connect $test:443 2>&1 |awk '
handshake && $1 == "Verification" { if ($2=="OK") exit; exit 1 }
$1 $2 == "SSLhandshake" { handshake = 1 }'
then
echo "we have connectivity"
fi
এটি কোনও সংযোগের জন্য পরীক্ষা করে (ওপেনসেলকে সময়ের বাইরে অপেক্ষা করার চেয়ে) এবং তারপরে যাচাইকরণের পর্যায়ে রেখে এসএসএল হ্যান্ডশেক করে। এটি নিঃশব্দে প্রস্থান করে ("সত্য") যদি যাচাইকরণটি "ঠিক আছে" বা অন্যথায় একটি ত্রুটির সাথে উপস্থিত হয় ("মিথ্যা"), তারপরে আমরা অনুসন্ধানের প্রতিবেদন করি।
$ ethtool <dev> | awk '$0 ~ /link detected/{print $3}'