রিডিস - রিমোট সার্ভারে সংযুক্ত করুন


122

আমি কেবলমাত্র আমার উবুন্টু ১০.১০ সার্ভারে http://redis.io/topics/quickstart এর দ্রুত শুরু গাইডের নির্দেশাবলী ব্যবহার করে সফলভাবেই রেডিস ইনস্টল করেছি । আমি দেমন হিসাবে পরিষেবাটি চালাচ্ছি (যাতে এটি init.d দ্বারা চালানো যায়)

সার্ভারটি অভ্যন্তরীণ এবং বাহ্যিক আইপি সহ র‌্যাকস্পেস ক্লাস্টারের অংশ। হোস্টটি পোর্ট 79 6379৯ এ চলছে (রেডিসের জন্য মানক)

নীচে দেখানো হয়েছে 63৩ 63৯ বন্দর থেকে ইনকামিং সংযোগগুলির অনুমতি দেওয়ার জন্য আমি আইপটিবেলে একটি সারি যুক্ত করেছি:

 ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:6379 

অন্য সার্ভারে আমার পিএইচপি কোডে, আমি এখানে নতুন রেডিস সার্ভারের সাথে সংযোগ দেওয়ার চেষ্টা করছি:

$this->load->helper("iredis");

$hostname = "IP ADDRESS HERE";

$redis = new iRedis(array('hostname' => $hostname, 'port' => 6379));

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

এটি কাজ করার বিষয়ে কোনও পরামর্শ?


আপনি কি রেডিস কমান্ড লাইন সরঞ্জামটি ব্যবহার করে সংযোগ করতে সক্ষম? redis-cli -h hostname
jlundqvist

সংযোগ প্রত্যাখ্যান সম্পর্কে সার্ভার ফল্টের একটি সাধারণ প্রশ্ন রয়েছে ।
রায়েডওয়াল্ড

উত্তর:


129

প্রথমে আমি যা যা আইপিগুলি আশা করে তা এটি শুনছে তা যাচাই করার জন্য আমি যাচাই করেছি:

netstat -nlpt | grep 6379

আপনি কীভাবে শুরু / থামিয়েছেন তার উপর নির্ভর করে আপনি যখন ভেবেছিলেন যে আপনি আসলেই পুনরায় সূচনা করতে পারেন নি। নেটস্ট্যাট আপনাকে বলবে যে এটি কোথায় তা শুনছে কিনা তা আপনাকে বলবে। যদি তা না হয় তবে এটি পুনরায় চালু করুন এবং নিশ্চিত হয়ে নিন যে এটি পুনরায় চালু হয়েছে। যদি এটি পুনরায় চালু হয় এবং এখনও আপনি প্রত্যাশা করেন না তবে এটি নিশ্চিত হওয়ার জন্য আপনার কনফিগারেশন ফাইলটি পরীক্ষা করুন।

এটি স্থাপনের পরে আপনি এটি কোথায় আশা করবেন তা শুনছেন, এমন একটি রিমোট নোড থেকে যা অ্যাক্সেস চেষ্টা করে দেখতে হবে:

redis-cli -h REMOTE.HOST ping

আপনি স্থানীয় হোস্ট থেকেও এটি চেষ্টা করতে পারেন তবে হোস্টনাম বা লোকালহোস্টের পরিবর্তে আপনি যে আইপিটি শোনার আশা করছেন তা ব্যবহার করুন। উভয় ক্ষেত্রে আপনার প্রতিক্রিয়া হিসাবে এটি পং দেখতে হবে।

যদি তা না হয় তবে আপনার ফায়ারওয়ালগুলি আপনাকে ব্লক করছে / করছে। এটি হয় স্থানীয় আইপিটিবেল বা নোডগুলির মধ্যে সম্ভবত ফায়ারওয়াল। কি ঘটছে তা দেখতে আপনি 6379 এর বেশি সংযোগগুলিতে লগ করতে আপনার আইপেটেবল কনফিগারেশনে লগিং স্টেটমেন্ট যুক্ত করতে পারেন। এছাড়াও, তিনি স্থানীয় এবং অ-স্থানীয় থেকে একই আইপিতে পুনরায় পুনরায় চেষ্টা করার অর্থ উদাহরণস্বরূপ হওয়া উচিত। এটি যদি স্থানীয়ভাবে প্রতিক্রিয়া দেখায় তবে দূর থেকে নয়, আমি আপনার অন-নোড আইপি টেবিলের নিয়মের জটিলতার উপর নির্ভর করে একটি হস্তক্ষেপকারী ফায়ারওয়ালের দিকে ঝুঁকতে চাই।


16
সুতরাং, স্পষ্টতই, আপনি পোস্ট করা সমস্যার একটি উত্তরকে নিম্নচাপিত করছেন কারণ আপনার কোনও সম্পর্কিত (তবে স্পষ্টত অভিন্ন নয়) সমস্যাটি সমাধান করে না? আমি আপনার সমাধান পোস্ট করার সাথে একমত হয়েছি, সঠিক উত্তরটি ডাউনভোটিং করা কারণ আপনার সমস্যাটি আলাদা ছিল কারণ এটি করার উপযুক্ত জিনিসটি মনে হয় না। এটি বলেছিল, আপনার সমাধানটি প্রশ্নের পক্ষে ভাল পছন্দ নয় কারণ ওপিতে একাধিক আইপি রয়েছে এবং সেগুলির সবগুলিই শুনতে চান না এবং ওপি বিশেষত প্রশ্নের মধ্যে কনফিগারেশনের ফাইলের বাইন্ড অংশটি উল্লেখ করেছে। সুতরাং আপনার সমাধান জিজ্ঞাসিত প্রশ্নের সমাধান করে না।
রিয়েল বিল

2
ঠিক আছে, আমি আবার প্রশ্নটি পড়েছি, এবং এটি আমার পক্ষে এতটা সুস্পষ্ট বলে মনে হয় নি যে ওপি এই 'বাইন্ড' লাইনের জন্য সঠিক কনফারেন্স সেট করেছিল। এছাড়াও, আমি নিশ্চিত নই যে কোনও ফায়ারওয়াল তার মামলায় জড়িত। যাইহোক, আপনি আমার -1 অপসারণ করতে পারেন যদি আপনি এটি অসভ্য মনে করেন। আমি সবেমাত্র পেয়েছি যে আপনার উত্তর পুরোপুরি অফ-টপিক, এবং এটি বেশিরভাগ ব্যবহারকারীর পক্ষে খুব সাধারণ সমস্যা নিয়ে আসার পক্ষে খুব কার্যকর নয় ... (বাইন্ড ডিফল্ট প্যারামিটার)
ওরাব্যাগ

1
ওপি বলেছিল যে তিনি স্থানীয় বাইন্ড রুল সম্পর্কে মন্তব্য করেছিলেন, যা সিস্টেমে সমস্ত ঠিকানা আবদ্ধ করতে রেডিসকে বলে। আমি -1 অভদ্র কল করব না, কেবল অনুপযুক্ত। ওপি বিশেষত বলেছিল যে তার আইপটবেলসের নিয়ম রয়েছে, সুতরাং এটি পরিষ্কার যে প্রশ্ন করা প্রশ্নে ফায়ারওয়াল বিধি রয়েছে। ফায়ারওয়ালের উপস্থিত উপস্থিতি এবং কনফিগারেশনে স্থানীয় বাইন্ড অপসারণের কারণে, আপনার উত্তর জিজ্ঞাসা করা প্রশ্নের সঠিক বা প্রাসঙ্গিক নয়।
রিয়েল বিল

হ্যাঁ, আপনি ঠিক বলেছেন, দুঃখিত। আমি কোনও স্থানীয় ইংরেজী নই, এবং "কমেন্ট আউট" ক্রিয়াটি ভুল ব্যাখ্যা করেছিলাম ... আমি ভেবেছিলাম যে ওপি মন্তব্যটি "মুছে ফেলেছে"। (দুর্ভাগ্যক্রমে, আমি আমার -1 সরাতে পারবেন না, যতক্ষণ না আপনি নিজের পোস্টটি সম্পাদনা করেন)
ওরাব্যাগ

কোন উদ্বেগ নেই, এটি ঘটে। আপনি যেখানে এটি চান সেখানে এটি যাচাই করার বিষয়ে আমি কিছু স্পষ্টতা যুক্ত করেছি। আশা করি এটি ভবিষ্যতের পাঠকদের জন্য এটি পরিষ্কার করতে সহায়তা করে।
রিয়েল বিল

328

আমি একই ইস্যুতে আটকে গিয়েছি, এবং পূর্ববর্তী উত্তরটি আমাকে সাহায্য করেনি (ভাল লেখা থাকলেও)।

সমাধানটি এখানে: আপনার পরীক্ষা করে দেখুন /etc/redis/redis.confএবং ডিফল্টটি পরিবর্তন করার বিষয়টি নিশ্চিত করুন

bind 127.0.0.1

প্রতি

bind 0.0.0.0

তারপরে আপনার পরিষেবাটি পুনরায় চালু করুন ( service redis-server restart)

এরপরে আপনি এখন পরীক্ষা করতে পারবেন যে redis এর সাথে স্থানীয় নয় এমন ইন্টারফেস শুনছে

redis-cli -h 192.168.x.x ping

(আপনার আইপি ঠিকানা দিয়ে 192.168.xx প্রতিস্থাপন করুন)

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


1
এখানে একইভাবে, ফায়ারওয়াল সেটিংস বা নেটওয়ার্ক সংক্রান্ত সমস্যাগুলি চিন্তা করার আগে আপনাকে প্রথমে রেডিস সার্ভার থেকে দূরবর্তী সংযোগের অনুমতি দেওয়া উচিত। ধন্যবাদ ওরাবিগ
16-15 এ

এটি সুস্পষ্ট সঠিক উত্তর। উপরের একটিতে প্রচুর প্রযুক্তিগত সিসাদমিন "ডার্ক-আর্টস" মম্ব্বো জাম্বো রয়েছে ... তবে এটি মোটেও সহায়ক নয় :)
হেনলি চিউ

7
এই সমস্যাটি ওপির মতো নয়। ওপি বিশেষত বলেছে যে তারা ইতিমধ্যে কনফিগার ফাইলে পরিবর্তনগুলি প্রয়োজনীয় করেছে। যেহেতু ওপি কনফিগার ফাইলটিতে পরিবর্তন করেছে এবং আপনি করেছেন। না, এগুলি দুটি পৃথক বিষয়। প্রদত্ত উত্তরটি প্রদত্ত সমস্যার সমাধান করেছে। এটি সব সমস্যার সমাধান করার মতো ছিল না। শুধু একজন জিজ্ঞাসা। এটি যে কোনও কিছু ভুল বলে স্বীকার করার বিষয়ে নয়, এটি আপনার সমস্যা বোঝার চেয়ে আলাদা about এটি কারওর মতো বলে যে তাদের গাড়ি শুরু হবে না তবে তাদের এতে গ্যাস রয়েছে এবং আপনি তাদের বলছেন যে তাদের গ্যাস দরকার need
রিয়েল বিল

1
আপনি কীভাবে আইপিভি 4 এবং আইপিভি 6 ডুয়েল-স্ট্যাক নির্দিষ্ট করতে পারবেন তাও জানতে পারবেন? আমি নিম্নলিখিত চেষ্টা: bind 0, ::, bind 0, [::], bind 0\nbind6 ::এবং (যেখানে \ N একটি newline হয়) bind 0 [::]কিন্তু শুধুমাত্র জিনিস যে কাজ একটি থাকার নয় bindএ সব কনফিগ লাইন। এটি 0 (বা 0.0.0.0/0) এবং [::] এ শোনার ক্ষেত্রে ডিফল্ট হয় সুতরাং কোনও সমস্যা নেই তবে আমি একবারের প্রয়োজন হলে সঠিক পদ্ধতিটি জানতে চাই। এটি কোথাও নথিভুক্ত বলে মনে হয় না।
লুক

7
এই উত্তরটি যা করে তা হ'ল এটি আপনার রেডিস সার্ভারকে বিশ্বে অ্যাক্সেসযোগ্য করে তুলেছে। এটি একটি বড় সুরক্ষা ঝুঁকি। আপনি যদি এটি করেন তবে নিশ্চিত হয়ে নিন যে আপনি অন্যভাবে আপনার রেডিস সার্ভারটি লক করে রেখেছেন , যেমন রেডিসে একটি এথথ পাসওয়ার্ড যুক্ত করা এবং iptablesঅননুমোদিত ক্লায়েন্টদের ব্লক করার জন্য আপনার ফায়ারওয়াল (যেমন ) কনফিগার করা ।
এসএফসিসি

14

ওরাবাগ দ্বারা দেওয়া দুর্দান্ত উত্তর ছাড়াও:

আমি সরিয়ে এই সমস্যা সমাধান bindঅধ্যায় সম্পূর্ণভাবে এবং সেটিং protected-modeকরতে no

#bind 127.0.0.1
protected-mode no

সর্বজনীন উন্মুক্ত সার্ভারগুলিতে কখনও এই পদ্ধতিটি ব্যবহার করবেন না।


1
সুরক্ষিত পদ্ধতি ব্যবহার না করে এমন কারও কাছে: দয়া করে আপনার রেডিস সার্ভারটি রক্ষা করুন !! অথবা আপনি, কারণ আমি Redis সার্ভার সুরক্ষিত করছি না আপনার সমস্ত ফাইল নষ্ট হয়ে যাবে :( আমার সার্ভারে আপোস করা হয়েছে আক্রমণকারী আমাকে (আমার জন্য বড় যথেষ্ট) টাকা কিছু পরিমাণ টাকা দিতে চান ভালো আক্রমণকারী কিছু।। duo.com/ ব্লগ /…
MonkimoE

4

ওরাবিগ ঠিক আছে।

আপনি উবুন্টুতে 10.0.2.15 কে আবদ্ধ করতে পারেন (ভার্চুয়ালবক্স) তারপরে হোস্ট থেকে অতিথি উবুন্টুতে একটি পোর্ট ফরওয়ার্ডিং করুন

/etc/redis/redis.conf এ

bind 10.0.2.15

তারপরে, পুনরায় চালু করুন:

sudo systemctl restart redis

এটা কাজ করবে!


4

আমি কিছু দিন ধরে রেডিসের রিমোট সংযোগের সাথে লড়াই করছিলাম। অবশেষে আমি এটি তৈরি। সংযুক্ত হওয়ার জন্য অনুসরণ করার জন্য আমি এখানে পুরো চেক তালিকাটি রেখেছি follow উপরের উত্তরগুলিতে কয়েকটি সমাধান দেওয়া হয়েছে। তবুও আমি চাইছিলাম আমার উত্তরটি এই বিষয়টিতে ন্যানো-উইকি হোক :) আমি কিছু দরকারী লিঙ্কও যুক্ত করেছি।

যদি redis স্থানীয়ভাবে কাজ করে:

$ redis-cli
127.0.0.1:6379>ping
PONG
127.0.0.1:6379>

যদি পাসওয়ার্ড সেট না করা হয়

/etc/redis/redis.confকনফিগারেশনটি দেখুন (এটি উবুন্টু 18.04-এর জন্য ডিফল্ট লোকেশন, আপনার এটি ভিন্ন জায়গায় থাকতে পারে):

# The following line should be commented
# requirepass <some pass if any>

সুরক্ষিত মোডটি কনফিগারেশনে 'না' তে সেট করা থাকলে:

# The following line should be uncommented
protected-mode no

আইপি বাইন্ডিংটি যদি কনফিগারেশনে ইন্টারনেট থেকে অ্যাক্সেসের জন্য খোলা থাকে:

# The following line should be commented
# bind 127.0.0.1 ::1

যদি লিনাক্স ফায়ারওয়াল সংযোগের অনুমতি দেয়

(এখানে উবুন্টু ১৮.০৪ এর জন্য) পরীক্ষা করুন এটি আগত ইন্টারনেট ট্র্যাফিককে বন্দরে যেতে দেয় 6379(রেডিস ডিফল্ট বন্দর)

# To check if it the port is open
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
...
6379/tcp                   ALLOW       Anywhere
6379/tcp (v6)              ALLOW       Anywhere (v6)
...

# To open the port
$ sudo ufw allow 6379/tcp

পুনরায় পরিষেবা পুনরায় চালু করুন

পরিবর্তনগুলি কার্যকর করতে এবং এটি চালু রয়েছে তা দেখতে Redis পরিষেবাটি পুনরায় চালু করতে ভুলবেন না:

$ sudo systemctl restart redis.service
$ sudo systemctl status redis

এটি রিমোট সার্ভার হিসাবে কাজ করে কিনা তা পরীক্ষা করুন

আপনার কমান্ড লাইন থেকে ব্যবহার করুন redis-cliযেন রেডিস সার্ভার দূরবর্তী সার্ভারে রয়েছে:

$ redis-cli -h <your-server-ip>
<your-server-ip>:6379> ping
PONG
<your-server-ip>:6379> exit
$

যদি আপনি রিমোট রেডিস সংযোগ কাজ না করে দূরবর্তী সার্ভার হিসাবে সংযুক্ত আপনার ইন্টারনেট সার্ভারের মাধ্যমে আপনার রেডিস সার্ভারটি পিং-পং করতে পারেন।

নিরাপত্তা সতর্কতা

উপরের সমস্তটি আপনার রেডিস ডেটা ইন্টারনেট থেকে যে কারও জন্য সম্পূর্ণ উন্মুক্ত করে তোলে।

মূলত রেডিস কনফিগারেশনে রেডিজ ব্যবহার requirepassএবং protected-mode yesসেটিংস সুরক্ষিত করতে (উপরে দেখুন) এবং বিপজ্জনক রেডিস কমান্ডগুলি (উপরে লিঙ্কটি দেখুন) ব্লক করুন, আরও গভীর বোঝার জন্য এই নিবন্ধটি এবং রেডিস সাইটের সুরক্ষা বিভাগটি দেখুন )।

উপকারী সংজুক

উবুন্টু 18.04 এ রেডিস কীভাবে ইনস্টল করা যায় এবং কীভাবে উবুন্টু 18.04 ফায়ারওয়াল সেটআপ করা যায় সে সম্পর্কে সহায়তার জন্য কয়েকটি লিঙ্ক ।

আশা করি এটা সাহায্য করবে.


2
  • আপনি যদি আবার নিজেকে ডাউনলোড করে থাকেন (তবে এডিট করুন রেডিস-সার্ভারটি ইনস্টল করবেন না) এবং তারপরে উপরের পরামর্শগুলি দিয়ে redis.conf সম্পাদনা করেছেন তবে কনফিগারেশনের মাধ্যমে আপনার সূচনা পুনরায় শুরু হয়েছে তা নিশ্চিত করুন :./src/redis-server redis.conf

    • পাশের নোটটি আমি ভার্চুয়াল বক্স সেটিংয়ের স্ক্রিনশটটি পুনরায় redis এ সংযুক্ত করতে অন্তর্ভুক্ত করছি, যদি আপনি উইন্ডোতে থাকেন এবং ভার্চুয়ালবক্স ভিএম-এ সংযুক্ত হন।

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


0

সার্ভারের রেডিস কনফিগারেশনে tcp-keepalive 60 এ সেট করা (এটি 0 তে সেট করা হয়েছিল) আমাকে এই সমস্যাটি সমাধান করতে সহায়তা করেছে।

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