অটোশ লিংক ডাউন করার সময় ssh হত্যা করে না


10

আমি আমার অটোশ উইট 30 দিনের পোলের সময় শুরু করেছি:

AUTOSSH_POLL=30 AUTOSSH_LOGLEVEL=7 autossh -M 0 -f -S none -f -N -L localhost:34567:localhost:6543 user1@server1

এবং এটি ঠিক কাজ করছে:

Sep  5 12:26:44 serverA autossh[20935]: check on child 23084
Sep  5 12:26:44 serverA autossh[20935]: set alarm for 30 secs

তবে আমি যদি শারীরিকভাবে নেটওয়ার্ক কেবলটি সরিয়ে ফেলি, যার অর্থ টানেলটি আর কাজ করতে পারে না, অটোশ এসএসএস ডেমনকে হত্যা করে না। কেন? আমি বুঝতে পারি যে লিঙ্কটি নিচে থাকলে অটোশ কিছুই করতে পারে না, তবে আমার মতে এটি নিম্নলিখিত করার চেষ্টা করা উচিত:

  1. সন্তানের ssh প্রক্রিয়াটি যাচাই করুন ( check on child ...)
  2. দূরবর্তী যাচাই করুন !!! (টানেলের মাধ্যমে একটি পিং-এর মতো অপারেশন)
  3. টানেলটি নিচে রয়েছে তা অনুধাবন করুন
  4. Ssh প্রক্রিয়া বন্ধ করুন
  5. আবার টানেল তৈরি করার চেষ্টা করুন
  6. বুঝতে পারছেন না যে এটি কাজ করে না এবং শীঘ্রই আবার যাচাই করার জন্য একটি (দ্রুত বৃদ্ধি পাচ্ছে?) টাইমার সেটআপ করুন

এ কারণেই আমি অটোশ চালাচ্ছি: যদি টানেলের কিছু ঘটে (এটি কোনও সফ্টওয়্যার বা হার্ডওয়্যার সমস্যা হ'ল), এটি আবার চালু করার চেষ্টা করা উচিত। পরিবর্তে, এটি কেবল ssh প্রক্রিয়াটি মারা যাওয়ার জন্য অপেক্ষা করছে। সংযোগটি পুনঃপ্রকাশের আশা না থাকলেও কি এটি পুনরায় চালু করার চেষ্টা করা উচিত নয়?

কি ধরণের চেক অটোশ করছে? শুধু যাচাই করুন যে এসএসএসটি চালু এবং চলছে? এটি কি কোনও ধরণের দূরবর্তী চেক করছে না?

সম্পাদন করা

অনুরোধ হিসাবে, আমি ssh কনফিগারেশনের প্রাসঙ্গিক অংশটি যুক্ত করছি:

# (see http://aaroncrane.co.uk/2008/04/ssh_faster)
# The ServerAliveInterval tells SSH to send a keepalive message every 60 seconds while the connection is open;
#   that both helps poor-quality NAT routers understand that the NAT table entry for your connection should
#   be kept alive, and helps SSH detect when there’s a network problem between the server and client.
ServerAliveInterval 60
# The ServerAliveCountMax says that after 60 consecutive unanswered keepalive messages, the connection should
#   be dropped. At that point, AutoSSH should try to invoke a fresh SSH client. You can tweak those
#   specific values if you want, but they seem to work well for me.
ServerAliveCountMax 60

TCPKeepAlive yes

সময়সীমা হ্রাস করার চেষ্টা সম্পর্কে কি?
নিকোলাইডিস ফোটিস

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

@ নিকোলাইডিস ফোটিস: সময়সীমা ঠিক আছে। এটা ... সময় শেষ। কিন্তু এটি সঠিক কাজটি করে না (ইমো) যখনই সময়সীমা কিক্স হয়, যথা: দূর-প্রান্তটি যাচাই করা হয় !
ড্যাংনফেষ্ট

@ নীলস টোডটম্যান: ধন্যবাদ, আমি একবার চেষ্টা করে দেখব এটি কার্যকর করা সহজ? আপনার কীভাবে কোনও ভাল লিঙ্কের কোনও লিঙ্ক আছে?
ডাঙনফেষ্ট

ওপেনভিপিএন বেশ সহজবোধ্য, আমরা কেবল এটি ইনস্টল করে নিয়েছি এবং সার্ভার বা ক্লায়েন্টের জন্য ডিফল্ট কনফিগারেশন দিয়ে শুরু করেছি, dev tunউভয়টি ব্যবহার করে এবং remoteক্লায়েন্ট কনফিগারেশনে সেটিং করছি । একমাত্র বিরক্তিকর বিট শংসাপত্রগুলি পরিচালনা করা। আমরা ওপেনভিপিএন সহ 'ইজি-আরএসএ' সিএ ব্যবহার করি। আপনার কাছে শংসাপত্রগুলি হয়ে গেলে, বাকিগুলি সহজ।
নিলস টোডটম্যান

উত্তর:


11

তবে আমি যদি শারীরিকভাবে নেটওয়ার্ক কেবলটি সরিয়ে ফেলি, যার অর্থ টানেলটি আর কাজ করতে পারে না, অটোশ এসএসএস ডেমনকে হত্যা করে না। কেন?

অটোশ আপনার ক্লায়েন্ট মেশিনে চলমান, সুতরাং এটি সার্ভারে সরাসরি ssh ডিমন প্রক্রিয়াটিকে হত্যা করতে পারে না। যাইহোক, আপনি সার্ভারে ClientAliveIntervalইন -শূন্যের মান নির্দিষ্ট করতে পারেন /etc/ssh/sshd_config(দেখুন man sshd_config) এবং কনফিগার পরিবর্তনটি প্রয়োগ করতে সার্ভারে sshd পরিষেবাটি পুনরায় চালু করতে পারেন। তারপরে কোনও নেটওয়ার্ক সংযোগ বিচ্ছিন্ন হওয়ার পরে, ssh ডিমন প্রক্রিয়াটি ClientAliveInterval * ClientAliveCountMaxকয়েক সেকেন্ড পরে মারা যাবে (তবে অটোশ দ্বারা নয়)।

এখন, যদি আপনি জিজ্ঞাসা করতে চেয়েছিলেন "কেন অটোশ এসএসএস ক্লায়েন্ট প্রক্রিয়াটি হত্যা করে না?" , আপনি নির্দিষ্ট করেছেন -M 0। অটোশ ম্যান পৃষ্ঠা থেকে:

Setting the monitor port to 0 turns the monitoring function off, and autossh will only restart ssh upon ssh's exit

সংযোগটি নিরীক্ষণ করতে অটোশ ব্যবহার করার পরিবর্তে, আপনি ServerAliveCountInterval * ServerAliveCountMaxসেকেন্ডের সময়সীমা পরে ssh প্রস্থান করার জন্য অপেক্ষা করছেন । আপনি ssh প্রস্থান করার আগে 60 টি সার্ভার-জীবিত চেকের জন্য অনুরোধ করেছেন, 60-সেকেন্ডের ব্যবধানে একটানা চেকগুলি পৃথক করে দেওয়া, যাতে আপনি আপনার এসএসএস ক্লায়েন্টের প্রস্থান হওয়ার এক ঘন্টা অপেক্ষা করবেন।

আপনি ExitOnForwardFailureক্লায়েন্টের পাশের বিকল্পটি দেখুন (দেখুন man ssh_config) বিবেচনা করতেও পারেন , যাতে কোনও টানেলটি স্থাপন না করতে পারলে ssh প্রস্থান করবে এবং তারপরে অটোশ আবার ssh চালু করার চেষ্টা করতে পারে।


ধন্যবাদ, এটি উপলব্ধি করে। আমি প্রকৃতপক্ষে "ক্লায়েন্ট প্রক্রিয়া" বলতে চাইছি, সার্ভার প্রক্রিয়া নয়।
ডাঙনফেষ্ট

এবং অটোশ ম্যান পৃষ্ঠাটি পুনরায় পড়ার পরে এখন আমার মনে আছে আমি কেন সেট করেছিলাম -M 0: একটি মনিটরিং বন্দর ব্যবহার করা সহজ নয়, এবং এটি পরোক্ষভাবে নিরুৎসাহিত করা হয়: মনিটরিং বন্দরের চেয়ে অনেক দিক থেকে এটি আরও ভাল সমাধান হতে পারে
ডাঙ্গনফাস্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.