ssh টানেলের মাধ্যমে কীভাবে মংডোব সার্ভারের সাথে সংযোগ স্থাপন করবেন


17

সিক্যুয়েলপ্রো ব্যবহার করে আমার দূরবর্তী মাইএসকিএল সার্ভারের সাথে সংযোগ স্থাপন করা আমার পক্ষে সহজ ছিল , তবে আমি মংডোব দিয়ে একই জিনিসটি নিয়ে লড়াই করছি।

আমি কমান্ড লাইনের মাধ্যমে এসএসএস টানেল স্থাপনের চেষ্টা করেছি:

ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com

আমি হোস্টের পরিবর্তে আইপি ঠিকানা দিয়ে চেষ্টা করেছিলাম

ধারণাটি হল 9999 পোর্টে সমস্ত মঙ্গোদব সংযোগগুলি পোর্ট 27101 এ হোস্টের একটিতে ফরোয়ার্ড করা হবে .. তবে আমি যখন কমান্ডটি চালাচ্ছি:

mongo --host localhost --port 9999

সংযোগ ব্যর্থ হয়, আমি পরিবর্তে এটি পেয়েছি:

MongoDB shell version: 2.6.0
connecting to: localhost:9999/test
channel 2: open failed: connect failed: Connection timed out
channel 3: open failed: connect failed: Connection timed out
2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed
2014-05-22T14:42:01.374+0300 Error: DBClientBase::findN: transport error: localhost:9999 ns: admin.$cmd query: { whatsmyuri: 1 } at src/mongo/shell/mongo.js:148
exception: connect failed

যদি আমি চালনা sudo netstat -plntকরি তবে আমি নিম্নলিখিতগুলি পাই (যা মনে হয়):

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      4242/node           
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1342/httpd2-prefork 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2552/sshd           
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      2505/master         
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      11719/mongod        
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      16561/redis-server  

কোন ধারণা আমি কি ভুল করছি?

আপডেট: এই হল কিভাবে মত চূড়ান্ত কার্মিক কমান্ড সৌন্দর্য (ক্রেডিট যায় kenster ):

ssh -fN -i ~/path/to/id_rsa -L 6666:localhost:27017 root@remote.server.com

যেখানে -fNকমান্ডটি এই কমান্ডটিকে পটভূমিতে চালিত করে

উত্তর:


23

"চ্যানেল 2" এবং "চ্যানেল 3" লাইনগুলি এসেছে sshsshdদূরবর্তী সার্ভারে উদাহরণস্বরূপ অর্ডার সুড়ঙ্গ সংযোগ পরিষেবাটি host.com বন্দর 27017 সংযোগের চেষ্টা, এবং এটি একটি "সংযোগের সময় শেষ হয়েছে" ত্রুটি হচ্ছে।

অন্য কথায়, sshdরিমোট সার্ভারে টানেলের লক্ষ্যে পৌঁছাতে পারে না। যেহেতু রিমোট হোস্টটি এমন হোস্টও রয়েছে যার মধ্যে আপনি সম্ভবত সুরঙ্গ করছেন, তাই নির্দিষ্ট সমস্যাটি কী তা বলা শক্ত hard এটি হতে পারে যে "হোস্ট ডট কম" একাধিক আইপি ঠিকানার সমাধান করেছে। আপনি ক্লাস্টারের একটি সার্ভারে একটি এসএসএইচ সংযোগ করছেন, এবং তারপরে ক্লাস্টারের একটি আলাদা সার্ভারটি টানেল লক্ষ্য হিসাবে বেছে নেওয়া হচ্ছে। আপনি "হোস্ট ডটকম" এর পরিবর্তে সুরক্ষা লক্ষ্যটিকে "লোকালহোস্ট" এ পরিবর্তনের চেষ্টা করতে পারেন:

ssh -fN -l root -i path/to/id_rsa -L 9999:localhost:27017 host.com

হালনাগাদ:

"-L 9999: লোকালহোস্ট: 27017" এর অর্থ হ'ল sshলোকাল সার্ভারে ক্লায়েন্ট 9999 পোর্টে সংযোগের জন্য শোনেন it এটি সংযোগ পেলে sshdএটি দূরবর্তী সার্ভারে সংযোগটি সুড়ঙ্গ করে । দূরবর্তী sshdউদাহরণটি সেখান থেকে লোকালহোস্টের সাথে সংযুক্ত: 27017। সুতরাং এখানে "লোকালহোস্ট" দূরবর্তী সার্ভারের দৃষ্টিকোণ থেকে।

নেটস্ট্যাট আউটপুট সহ, এটি কেন আগে কাজ করছে না তা একটু পরিষ্কার। "১২7.০.০.১৮৮০70০১17" অংশটির অর্থ মঙ্গডব বিশেষত রিমোট হোস্টের লোকালহোস্ট (127.0.0.1) ইন্টারফেসের সাথে আবদ্ধ। আপনি হোস্টের নিয়মিত আইপি ঠিকানার সাথে সংযোগ স্থাপনের চেষ্টা করে সরাসরি মঙ্গোদ্বের সেই উদাহরণটির সাথে যোগাযোগ করতে পারবেন না - আপনি কেবল লোকালহোস্ট ঠিকানার মাধ্যমে মঙ্গডবের সেই উদাহরণটির সাথে যোগাযোগ করতে পারেন। এবং অবশ্যই, যেহেতু এটি লোকালহোস্ট, আপনি কেবল তখনই যোগাযোগ করতে পারেন যদি কোনও ক্লায়েন্টের কাছ থেকে একই হোস্টে চলছে।

সুতরাং, আপনি এখন যেভাবে এটি করছেন - ssh এর মাধ্যমে সার্ভারের সাথে একটি সংযোগ সুড়ঙ্গ করুন এবং সেখান থেকে লোকালহোস্টের সাথে সংযুক্ত করুন - এটি করার উপায় do


এটি সত্যিই অদ্ভুত .. আপনি যেভাবে ব্যবহার করছেন -Lতা ssh ম্যান পৃষ্ঠাটির বিরোধিতা করে বলে মনে হচ্ছে: -L [bind_address:]port:host:hostport Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.এটি স্পষ্টতই বলেছে যে hostএটি রিমোট সার্ভারের হোস্ট .. আপনি এটি স্থানীয় ব্যবহার করছেন?
আবদু

আমি একটি IP ঠিকানা সঙ্গে একই কমান্ড চেষ্টা .. কিন্তু একই ফলাফল .. BTW আমি আমার প্রশ্নের আমাকে সেবা শোনা যে সাহায্য করে তাহলে জন্য netstat কমান্ড চলমান ফলাফল দেখাও আপডেট
abbood

এখানে এবং এখানে পড়ার পরে আপনার পথটি সঠিক পথটি দেখা যাচ্ছে। তবে আমার একটি প্রশ্ন আছে .. প্রথম লিঙ্কে লোকটি ব্যাখ্যা করে যে আপনার আদেশ কেন প্রয়োজনীয় ->
আবদু

1
ssh -L 27017: myserver: 27017 user @ myserver লোকালহোস্টের 27017 পোর্টে শোনা উচিত, তারপরে আমার সার্ভারের ssh সংযোগের উপর সুড়ঙ্গ করা উচিত এবং তারপরে 27017 পোর্টে মাইজারেরটি আঘাত করা উচিত Now এখন, যদি মাইজারটি কেবল লোকালহোস্টে শুনছে, এটি হবে না কাজ, কারণ হোস্টনামটি বাইরের আইপি ঠিকানার দিকে ইঙ্গিত করছে। যদি এটি হয় তবে এই
এসএসএস

আপনি কি দয়া করে এর অর্থ ব্যাখ্যা করতে পারেন? 'হোস্টনামটি কেবলমাত্র বাহ্যিক আইপি ঠিকানার দিকে ইঙ্গিত করছে' এর অর্থ কী?
Abbood

-1

রবো 3 টি জিইআই ব্যবহার করে মোংগোডিবিকে সফলভাবে সংযোগ করতে আমি আমার উবুন্টু 18 ভ্যাগ্র্যান্ট বাক্সে কয়েকটি কনফিগারেশন করেছি। আমি নিম্নলিখিত পদক্ষেপে ব্যাখ্যা করেছি।

  1. উবুন্টু সার্ভারে, মঙ্গো শেল রান খুলতে:
    $ mongo
    
  2. মঙ্গো শেলের ভিতরে নতুন প্রশাসক ব্যবহারকারী তৈরি করতে নিম্নলিখিত কমান্ডটি টাইপ করুন।

    > use admin;
    > db.createUser({user:"admin", pwd:"password", roles:[{ role: "root", db: "admin" }]});
    
  3. ডিফল্টরূপে মঙ্গোদব শুধুমাত্র লোকালহস্ট (আইপি 127.0.0.1) থেকে সংযোগের জন্য কনফিগার করা হয়েছে। আমাদের যে কোনও আইপি ঠিকানা থেকে দূরবর্তী সংযোগগুলির অনুমতি দেওয়া দরকার। নিম্নলিখিত পরিবর্তনটি কেবলমাত্র আপনার বিকাশ সার্ভারে করা উচিত। ইত্যাদি খুলুন / mongod.conf ফাইল এবং নিম্নলিখিত পরিবর্তন করুন।

    # network interfaces
        net:
            port: 27017
            bindIp: 0.0.0.0   #default value is 127.0.0.1
    

    এছাড়াও একই mongod.conf ফাইলটিতে নিরঙ্কুশ সুরক্ষা বিকল্পে এবং নীচে প্রদর্শিত হিসাবে অনুমোদন বিকল্প যুক্ত করুন ।

    security:
        authorization: enabled
    
  4. Mongod.conf ফাইলটি সংরক্ষণ করুন এবং প্রস্থান করুন এবং mongodb সার্ভারটি পুনরায় চালু করুন।

    $ sudo servcie mongod restart
    
  5. Robo 3T GUI সরঞ্জামটি ডাউনলোড এবং ইনস্টল করুন।

  6. রোবো 3 টি জিইউআইতে, সংযোগ সেটিংসে আপনাকে নীচের স্ক্রিন শটগুলিতে প্রদর্শিত কিছু পরিবর্তন করতে হবে।

এখানে চিত্র বর্ণনা লিখুন

আপনি পূর্বে তৈরি মংডোব অ্যাডমিন ডাটাবেস ব্যবহারকারীর নাম এবং পাসওয়ার্ড লিখুন ।

এখানে চিত্র বর্ণনা লিখুন

এখানে, আমি আমার উবুন্টু 18 ভ্যাগ্র্যান্ট বক্স এসএস শংসাপত্র প্রবেশ করিয়েছি।

এখানে চিত্র বর্ণনা লিখুন

পরিবর্তনগুলি সংরক্ষণ করুন এবং সংযোগটি সঠিকভাবে কাজ করছে কিনা তা দেখার জন্য সংযোগ আইকন টিপুন ।

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