কোনও নেটওয়ার্ক অববাহিকার মাধ্যমে একটি ব্যক্তিগত ডাটাবেসের সাথে সংযোগ রাখতে আমি কীভাবে পোর্ট টানেলিং ব্যবহার করতে পারি?


12

আমার কাছে একটি নেটওয়ার্ক বেজ রয়েছে যা সর্বজনীনভাবে অ্যাক্সেসযোগ্য example.compute-1.amazonaws.comএবং এ সময়ে একটি ব্যক্তিগত পোস্টগ্রিজ ডাটাবেস উদাহরণ রয়েছেpostgres.example.us-east-1.rds.amazonaws.com:5432

আমি ব্যবহার করে ঘাঁটি মধ্যে ssh করতে পারেন

$ ssh -i key.pem ec2-user@example.compute-1.amazonaws.com

তারপরে একবার আমি ঘাঁটিতে এসে আমি এর সাথে একটি এসএস টানেল তৈরি করব:

$ ssh -i key.pem -L 5432:postgres.example.us-east-1.rds.amazonaws.com:5432 ec2-user@example.compute-1.amazonaws.com

আমি তখন যাচাই করতে পারি যে লোকালহস্ট ব্যবহার করে বুড় থেকে ডাটাবেসের সাথে সংযোগ স্থাপন করে সুড়ঙ্গটি কাজ করে:

$ psql -p 5432 -h localhost -U postgres

যাইহোক, আমি ডাটাবেসের সাথে দূরবর্তীভাবে সংযোগ স্থাপন করতে অক্ষম (ঘাঁটিতে না হয়ে)।

$ psql -p 5432 -h example.compute-1.amazonaws.com -U postgres
psql: could not connect to server: Connection refused
Is the server running on host "example.compute-1.amazonaws.com" () and accepting
TCP/IP connections on port 5432?

5432 বন্দরে অভ্যন্তরীণ ট্র্যাফিক গ্রহণ করার জন্য আমি ঘাঁটির সুরক্ষা গোষ্ঠীটি কনফিগার করেছি।

আমি কি ssh -Lসঠিকভাবে ব্যবহার করছি ? আমি কি এটা ঘাঁটির বাইরে ব্যবহার করা উচিত? কোন পরামর্শ অনেক প্রশংসা হবে।

উত্তর:


20

আপনি যখন কোনও এসএসএইচ টানেল তৈরি করেন, এটি খোলা বন্দরটি বাইরের বিশ্বে প্রকাশ করে না। খোলা বন্দর, হিসাবে কেবল উপলব্ধ localhost। সুতরাং আপনি কার্যকরভাবে যা করেছেন তা হ'ল আপনার ঘাঁটি থেকে আপনার ঘাঁটি পর্যন্ত একটি সুড়ঙ্গ তৈরি করা।

পরিবর্তে, আপনি যা করতে চান তা হ'ল আপনার ঘাঁটির মাধ্যমে স্থানীয় কম্পিউটার থেকে একটি সুড়ঙ্গ তৈরি করা।

সুতরাং, আপনি আপনার স্থানীয় কম্পিউটার থেকে আপনার অববাহিকায় সংযোগের অংশ হিসাবে আপনার টানেলটি তৈরি করেন । আপনার আর একটি এসএসএইচ সংযোগ তৈরি করার দরকার নেই।

সুতরাং, স্থানীয়ভাবে, আপনি কার্যকর করবেন:

$ ssh -i key.pem -L 5432:postgres.example.us-east-1.rds.amazonaws.com:5432 ec2-user@example.compute-1.amazonaws.com

ধরে নেওয়া postgres.example.us-east-1.rds.amazonaws.com প্রাইভেট আইপি ঠিকানার সমাধান করে।

তারপরে আপনার সার্ভারের সাথে সংযোগ রাখতে, স্থানীয়ভাবে এখনও, সংযোগ করুন যেন সার্ভারটি স্থানীয় ছিল:

$ psql -p 5432 -h localhost -U postgres

এটি করে, আপনার ঘাঁটিতে কোনও প্রম্পট ব্যবহার করার দরকার নেই।


এটি আমার জন্য কাজ করেছে, ধন্যবাদ! PSCl কমান্ডের যে কারও জন্য কেবল আমি এখানে ঝুলিয়ে রেখেছি তার জন্য আমি একটি জিনিস ভুলে গিয়েছিলাম: আপনার ডিবি সুরক্ষা গোষ্ঠীটি ঘাঁটি থেকে অ্যাক্সেসের অনুমতি দেয় তা নিশ্চিত করুন।
গোরান

-1

এটি আমার পক্ষে কাজ করেছে। স্থানীয়ভাবে আপনি পিএসএকিএল ক্লায়েন্ট ইনস্টল করেছেন তা নিশ্চিত করুন ।

psql --host=myAwsDbEndpointUrl.ciqykqusf0nv.us-west-1.rds.amazonaws.com --port=5432 --username=myUserName --password --dbname=myDbName

আপনার ডিবি উদাহরণ তৈরির সময়, নিম্নলিখিতটি সংজ্ঞায়িত করতে ভুলবেন না:

  1. ব্যবহারকারীর নাম
  2. পাসওয়ার্ড
  3. ডাটাবেস নাম
  4. পোর্ট নাম্বার

আমাকে ভিপিসির জন্য একটি সুরক্ষা গোষ্ঠীও তৈরি করতে হয়েছিল যা ডাটাবেসটি ছিল। এটি তৈরির পরে নিশ্চিত করুন যে আপনার ডিবি উদাহরণটি এটির সুরক্ষা গোষ্ঠীর জন্য ব্যবহার করে। সুরক্ষা গোষ্ঠীর নিম্নলিখিত নিয়ম রয়েছে:

inbound--> type:PostgreSQL, protocol:TCP port range:5432, source:0.0.0.0/0

outbound--> type:All Traffic, protocol:All, port range:all, destination:0.0.0.0/0

এটি যদিও একটি ঘাঁটি দিয়ে যাচ্ছে না, ডান? আপনি কেবল
আরডিএসের

এটি একটি ভিপিসি দিয়ে যায় যেটি আরডিএসের মাধ্যমে প্রকাশিত হয়। আপনি তৈরি হওয়ার পরে ভিপিসিটি আরডিএস উদাহরণের সাথে সংযুক্ত করেন।
টাইমসোর 27'17

হ্যাঁ, আমি মনে করি আসল প্রশ্নটি
ভিপিসিতে

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