হোস্ট থেকে ভিএম এ রেল সার্ভার অ্যাক্সেস করতে পারে না


12

ভার্চুয়াল মেশিনে আমার একটি রেল সার্ভার রয়েছে এবং আমাকে হোস্ট থেকে লোকালহোস্ট অ্যাক্সেস করতে হবে। আমি NAT (পোর্ট ফরওয়ার্ডিং - অতিথি পাশ 80 এবং 3000 পোর্ট) এবং ব্রিজড অ্যাডাপ্টার উভয়ই চেষ্টা করেছি কিন্তু কিছুই কাজ করছে বলে মনে হচ্ছে না।

উভয় ক্ষেত্রেই আমি 80 বন্দরটি অ্যাক্সেস করতে সক্ষম হয়েছি কিন্তু 3000 বন্দরটিতে লোকালহোস্টের সাথে সংযোগ স্থাপনের চেষ্টা করতে ব্যর্থ হয়েছি (সুতরাং xampp সার্ভারটি অ্যাক্সেস করতে কোনও সমস্যা হয়নি)।

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

আমার অতিথিতে লিনাক্স (ডিবিয়ান) এবং হোস্ট উইন্ডোজ 7 রয়েছে - আমি ভার্চুয়ালবক্স ব্যবহার করি।

উত্তর:


10

এখানে খেলতে কমপক্ষে তিনটি পৃথক উপাদান রয়েছে, যার প্রত্যেককে সঠিকভাবে কনফিগার করা দরকার।

রেলগুলি বাধ্যতামূলক ঠিকানা

রেলগুলি (বা অন্য কোনও সার্ভার অ্যাপ্লিকেশন) নেটওয়ার্ক সংযোগগুলি গ্রহণ করার জন্য খুললে এটি আইপি এবং পোর্ট উভয়ের সাথে আবদ্ধ হবে। যদি আগত অনুরোধ এই দুটির সাথেই মেলে না, তবে এটি সংযোগটি গ্রহণ করবে না। থেকে rails server --help:

Usage: rails server [mongrel, thin etc] [options]
-p, --port=port                  Runs Rails on the specified port.
                                 Default: 3000
-b, --binding=IP                 Binds Rails to the specified IP.
                                 Default: localhost
...

সুতরাং ডিফল্টরূপে, রেলগুলি কেবল তার localhost(লুপব্যাক) নেটওয়ার্ক অ্যাডাপ্টারে (ডাকা lo) প্রেরিত অনুরোধগুলি গ্রহণ করবে । যেহেতু এই অ্যাডাপ্টারটি কেবল একই কম্পিউটারের মধ্যে থেকে অ্যাক্সেসযোগ্য তাই কেবলমাত্র এটির অনুরোধগুলি গ্রহণ করবে দেবিয়ান ভিএম নিজে থেকেই: এটি পরীক্ষার জন্য ভাল এবং সুরক্ষিত, তবে উত্পাদন জন্য কার্যকর নয়, এমনকি কোনও আলাদা কম্পিউটার থেকেও পরীক্ষার জন্য কার্যকর নয়।

যদি আপনি চান যে আপনার রেলগুলি অন্য কোনও কম্পিউটার (আপনার উইন্ডোজ 7 হোস্ট সহ) থেকে অ্যাক্সেসযোগ্য হয়ে উঠতে পারে, তবে আপনাকে দেউলিয়ানকে যে কোনও আইপি ঠিকানা বাইরের থেকে অ্যাক্সেসযোগ্য আছে তার সাথে আবদ্ধ করতে রেলগুলি বলতে হবে (নীচে দেখুন)।

যাইহোক, একটি সহজ উপায় রেলগুলিকে বিশেষ আইপি ঠিকানার সাথে আবদ্ধ করতে বলা 0.0.0.0, যার অর্থ কোনও নেটওয়ার্ক অ্যাডাপ্টার । সুতরাং, আপনার রেলস সার্ভারটি এর মতো শুরু করুন:

rails server -p 80 -b 0.0.0.0

যে কেউ আপনার ভিএম নেটওয়ার্কে দেখতে পাবে আপনার ওয়েবসাইটটিকে অ্যাক্সেসযোগ্য করে তুলবে।

আপনার অন্য দুটি উপাদান কাজ করে থাকলেও এটি সম্ভবত আপনাকে গোলমেলে ফেলেছে।

ভিএম আইপি ঠিকানা

আপনাকে আপনার ব্রাউজারটি ডেবিয়ান ভার্চুয়াল মেশিনে চিহ্নিত করতে হবে যা এটির নিজস্ব বিযুক্ত কম্পিউটার।

থাম্বের নিয়মটি localhostহ'ল এটি সর্বদা একই কম্পিউটারকে বোঝায়। তবে, নেটওয়ার্কিংয়ের উদ্দেশ্যে, আপনার ডেবিয়ান ভিএম এটির নিজস্ব একটি পৃথক কম্পিউটার। আপনি যদি আপনার উইন্ডোজ 7 হোস্টে কোনও ওয়েব ব্রাউজার ব্যবহার করেন localhostতবে সর্বদা আপনার উইন্ডোজ 7 এবং অন্য কিছুই নয়।

আপনার এখানে দুটি বিকল্প রয়েছে:

  • ভার্চুয়ালবক্স ভিএম অ্যাডাপ্টারটি ব্রিজ মোডে সেট করুন (যেমন আপনি আপনার প্রশ্নে উল্লেখ করেছেন)। এটি আপনার ডিবিয়ানকে সরাসরি আপনার উইন্ডোজ 7 হোস্টের মতো / হোম / ওয়ার্ক নেটওয়ার্কের বাইরে রাখবে। তারপরে আপনি চালিয়ে আপনার ডেবিয়ান ভিএম এর আইপি নির্ধারণ করতে পারেন ifconfig। আপনার eth0বা eth<something>অ্যাডাপ্টারের আইপি সন্ধান করুন । আপনার ব্রাউজারের ঠিকানা বারে এটি প্লাগ করুন।

  • NAT অ্যাডাপ্টার এবং ভার্চুয়ালবক্স পোর্ট ফরওয়ার্ডিং ব্যবহার করুন । আইএমও এটি আরও জটিল।

দেবিয়ান ফায়ারওয়াল

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

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

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