যান্ত্রিক বাক্সের জন্য পাবলিক স্ট্যাটিক আইপি


13

আমার কাছে 1 ইথারনেট কার্ড এবং 2 টি পাবলিক স্ট্যাটিক আইপি (188.120.245.4 এবং 188.120.244.5) সহ সার্ভার (ডিবিয়ান স্কিজ) রয়েছে।

আমি যা চাই: স্থির আইপি (188.120.244.5) এর মাধ্যমে অ্যাক্সেস সহ ভার্চুয়াল বক্স (উবুন্টু) সেটআপ করুন।

আমি যা চেষ্টা করছিলাম:

  • config.vm.forward_port - ভাল ধারণা: হোস্ট-মেশিনে 188.120.244.5 সহ সেটআপ ইন্টারফেস "eth1: 1", এবং Vagrant ফাইলটিতে যুক্ত করুন "config.vm.forward_port = hmm?"
  • config.vm.network: হোস্টনলি, "188.120.244.5" - কাজ করছে না। আইপি "188.120.244.1" দিয়ে হোস্ট-মেশিনে নতুন ইন্টারফেস তৈরি করা হয়েছিল। অবশ্যই 188.120.244.1 আইপি আমার নয় এবং আমি এই আইপিটির মাধ্যমে আমার সার্ভারটি অ্যাক্সেস করতে পারি না।
  • config.vm.network: ব্রিজড - আমি বিভ্রান্ত হয়ে পড়েছি যে এটি কীভাবে কাজ করে :)

আমার এখন যা আছে: কনফিগারেশন কাজ করছে না।

Debian-host-machine# cat Vagrantfile
Vagrant::Config.run do |config|
  config.vm.define :gitlab do |box_config|
    box_config.vm.box = "ubuntu"
    box_config.vm.host_name = "ubuntu"
    box_config.vm.network :bridged
    box_config.vm.network :hostonly, "188.120.244.5", :auto_config => false
  end
end

Debian-host-machine# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:15:17:69:71:bb  
          inet addr:188.120.245.4  Bcast:188.120.247.255  Mask:255.255.248.0

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0

vboxnet0  Link encap:Ethernet  HWaddr 0a:00:27:00:00:00  
          inet addr:188.120.244.1  Bcast:188.120.246.255  Mask:255.255.255.0

Ubuntu-virtual-machine# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:ee:8d:0c  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0

eth1      Link encap:Ethernet  HWaddr 08:00:27:45:71:87  

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0

নেটওয়ার্ক থেকে সার্বজনীন স্ট্যাটিক আইপি এর মাধ্যমে আমি কীভাবে ভার্চুয়াল বাক্স অ্যাক্সেস করতে পারি?

আমি ওরাকল ভিএম ভার্চুয়ালবক্স ম্যানেজার 4.1.18 এবং ভ্যাগ্র্যান্ট সংস্করণ 1.0.3 ব্যবহার করছি।

আপনার প্রতিক্রিয়ার জন্য আগাম ধন্যবাদ।


আমি বাহ্যিকভাবে অ্যাক্সেসযোগ্য আইপি এবং বিশেষত ভার্চুয়ালবক্স সরবরাহকারীর সাথে ভ্যাব্রেন্ট ব্যবহারের বিষয়ে সতর্ক। stackoverflow.com/a/16919803/2109800
mc0e

উত্তর:


14

প্রকাশের পর থেকে 1.3.0:

Static IP can now be set on public networks. [GH-1745]

আপনাকে কেবল আপনার ভ্যাগ্রান্টফাইলে (ডকুমেন্টেশন) এই কনফিগারেশনটি রাখতে হবে :

config.vm.network "public_network", ip: "192.168.0.200"

এই ভ্যাগ্র্যান্ট জিনিসটি সত্যিই দুর্দান্ত :-)


সুতরাং আমি লক্ষ্য করেছি যে আমার ডিএইচসিপি সার্ভারটি মনে হয় না যে আমার যোজনাগুলি বাক্সটি সত্যই ip এ রয়েছে: \
থারস্মমনার

2

দুই সপ্তাহ পরে, আমি আমার প্রশ্নটি এভাবে সমাধান করেছি:

কুকবুক টেমপ্লেট থেকে ভ্যাগ্রান্টফাইল তৈরি করে:

Vagrant::Config.run do |config|
  config.vm.define :gitlab do |box_config|
    box_config.vm.box = "mybox"
    box_config.vm.host_name = "mybox"
    box_config.vm.forward_port 80, 4567
    box_config.vm.forward_port 22, 2222
    box_config.vm.network :hostonly, "192.168.5.10"
  end
end

পুনর্নির্মাণ-iptables iptables নিয়ম তৈরি এবং প্রয়োগ করা প্রয়োজন:

# /etc/iptables/general
*filter
:INPUT ACCEPT [0,0]
:FORWARD ACCEPT [0,0]
:OUTPUT ACCEPT [0,0]
# Vagrand boxes forwarding ports
-A FORWARD -p tcp -d 192.168.5.10 --dport 80 -j ACCEPT
-A FORWARD -p tcp -d 192.168.5.10 --dport 22 -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0,0]
:POSTROUTING ACCEPT [0,0]
:OUTPUT ACCEPT [0,0]
# Nat all traffic to vagrant boxes
# For example, my vagrant box public static ip is 8.8.8.8
-A PREROUTING -d 8.8.8.8 -p tcp -j DNAT --to-destination 192.168.5.10
-A POSTROUTING -j MASQUERADE
COMMIT

এবং:

echo '1' > /proc/sys/net/ipv4/ip_forward

এখন, আমি বাক্সে অ্যাপ্লিকেশনগুলি ইনস্টল করতে পারি এবং "Port_forwarding" সেটআপ (ভিপিএসের মতো) ব্যতীত পাবলিক স্ট্যাটিক আইপি-তে তাদের সাথে সংযোগ স্থাপন করতে পারি।


0

আপনার যা সত্যই প্রয়োজন তা হ'ল একটি স্ট্যাটিক আইপি সহ একটি ব্রিজযুক্ত ইন্টারফেস। দুর্ভাগ্যক্রমে, অসম্পূর্ণ এখনও এটি সমর্থন করে না ( এখানে আলোচনা দেখুন )।

প্রথমত, box_config.vm.network সেট করুন: একটি ব্রিজযুক্ত ইন্টারফেস তৈরি করতে আপনার ভার্চুয়ালবক্সের প্রয়োজন হওয়ায় সেতুবন্ধন করুন এবং আপনি বক্স_কনফিগ.ভিএম.টর্কে: হোস্টনলি অপসারণ করতে পারেন।

আপনি আপনার আইপি দিয়ে নেটওয়ার্কটি পুনরায় কনফিগার করতে শেল প্রভিশন ব্যবহার করতে পারেন , তবে আপনি / ইত্যাদি / নেটওয়ার্ক / ইন্টারফেস ফাইলটি সংশোধন করতে পারবেন না বা আপনি কোনও ভিজেন্ট থামিয়ে দিলে ভিএম ফিরে আসতে সক্ষম হবে না (ভ্যাংগার আপ করার চেষ্টা করবে) এবং নেটওয়ার্ক ইন্টারফেসগুলি পুনরায় কনফিগার করুন এবং আপনি যদি এই ফাইলটি সংশোধন করেন তবে এটি মারা যায়।
সুতরাং, বিকল্পটি /etc/network/if-up.d/ এ একটি স্ক্রিপ্ট তৈরি করছে যা ইন্টারফেসের জন্য আইপি পুনরায় সেট করে। আদর্শ নয়, তবে আমি এখনও এর থেকে আরও ভাল সমাধান নিয়ে আসিনি!


নীচে কনফিগারেশন সম্পর্কিত বিভাগ দেখুন। বাশ স্ক্রিপ্টে আপনার আইপি / নেটমাস্ক, গেটওয়ে এবং ডিএনএস সেট করা উচিত (এবং ইন্টারফেস নম্বর, যদি আপনার আলাদা হয় তবে এটি এথ 1 হওয়া উচিত যদিও আপনি সবেমাত্র ভ্যাগ্রান্টফাইলে ব্রিজড সেট পেয়েছেন)।
সুতরাং, আপনি প্রথমবার ভিজাগর করবেন এবং এটি ভিএম তৈরি করে এটি একটি স্ক্রিপ্ট /etc/network/if-up.d/custom-network-config তৈরি করে যা আইপি কনফিগারেশন, রাউটিং এবং অ্যাপাচি পুনরায় আরম্ভ করে (আপনার প্রয়োজন হবে আপনি যদি অন্য কোনও পরিষেবা ব্যবহার করেন যা নেটওয়ার্কিং কনফিগারেশনের উপর নির্ভর করে) এটি পরিবর্তন করুন এবং এটি ডিএনএস সেট করে।
তারপরে আপনি যদি ভিএমআরটি আবার চালু করেন যখন ভিএম ইতিমধ্যে উপস্থিত রয়েছে (যেমন, ভ্যাগ্রান্ট থামিয়ে দেওয়ার পরে) এটি যা করা হয় তা সমস্তই নেটওয়ার্ক ইন্টারফেসগুলি পুনরায় চালু করা হয় যাতে স্ক্রিপ্টটি চালিত হয় এবং ইন্টারফেসটি কনফিগার করা হয় (কোনও কারণে, আমি দেখতে পেলাম যে স্ক্রিপ্টটি লাথি মারেনি found যখন ভিএম চালু হয়েছিল এবং ইন্টারফেসগুলি প্রথম দিকে উপস্থিত হয়েছিল - কেন তা নিশ্চিত নয়)।

Vagrantfile

config.vm.network :bridged
config.vm.provision :shell, :path => "vagrant-setup.sh"

vagrant-setup.sh

#!/bin/bash

ip="188.120.244.5/24"
gateway=""
dns="8.8.8.8"


#####################
# NEW VM
#####################
if [ ! -f /etc/network/if-up.d/custom-network-config ]; then

cat >/etc/network/if-up.d/custom-network-config <<EOL
#!/bin/bash
if [ "\$IFACE" != "eth1" ]; then
exit 0
fi
ifconfig eth1 down
ifconfig eth1 ${ip} up
route del default
route add default gw ${gateway} dev eth1
service apache2 restart
EOL

cat >/etc/resolv.conf <<EOL
nameserver ${dns}
EOL

chmod +x /etc/network/if-up.d/custom-network-config
/etc/init.d/networking restart


#####################
# EXISTING VM
#####################
else

/etc/init.d/networking restart

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