योनि बॉक्स के लिए सार्वजनिक स्थिर आईपी


13

मेरे पास 1 ईथरनेट कार्ड और 2 सार्वजनिक स्थिर आईपी (188.120.245.4 और 188.120.244.5) के साथ सर्वर (डेबियन निचोड़) है।

मुझे क्या चाहिए: स्थैतिक आईपी (188.120.244.5) के माध्यम से एक्सेस के साथ सेटअप वर्चुअल बॉक्स (उबंटू)।

मैं क्या कोशिश कर रहा था:

  • config.vm.forward_port - अच्छा विचार: सेटअप इंटरफ़ेस "eth1: 1" होस्ट-मशीन पर 188.120.244.5 के साथ, और वैग्रंट फ़ाइल में जोड़ें "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

मैं नेटवर्क से सार्वजनिक स्थिर आईपी के माध्यम से वर्चुअल बॉक्स तक कैसे पहुंच सकता हूं?

मैं Oracle VM VirtualBox प्रबंधक 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]

आपको बस इस कॉन्फ़िगरेशन को अपने Vagrantfile (प्रलेखन) में रखना होगा :

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

यह वज्र बात वाकई बड़ी है :-)


तो मैं नोटिस कि मेरे DHCP सर्वर को लगता है कि मेरी आवारा बॉक्स कि आईपी पर वास्तव में है नहीं लगता है: \
ThorSummoner

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" सेटअप (जैसे VPS पर) के बिना सार्वजनिक स्थिर आईपी पर कनेक्ट कर सकता हूं।


0

क्या आप वास्तव में जरूरत है एक स्थिर आईपी के साथ एक बेहतर इंटरफ़ेस है। दुर्भाग्य से, योनि अभी तक इसका समर्थन नहीं करता है ( यहां चर्चा देखें )।

सबसे पहले, box_config.vm.network सेट करें: ब्रिजिंग इंटरफ़ेस बनाने के लिए आपको virtualbox की आवश्यकता होती है, और आप box_config.vm.network: hostonly निकाल सकते हैं।

आप अपने आईपी के साथ नेटवर्क को फिर से कॉन्फ़िगर करने के लिए शेल प्रोविज़निंग का उपयोग कर सकते हैं , लेकिन आप / etc / नेटवर्क / इंटरफेस फ़ाइल को संशोधित नहीं कर सकते हैं या यदि आप एक वीथली हॉल्ट करते हैं तो वीएम वापस नहीं आ पाएगा (योनि को ऊपर करने की कोशिश करेगा) और नेटवर्क इंटरफेस को फिर से कॉन्फ़िगर करें, और यदि आपने उस फ़ाइल को संशोधित किया है तो यह मर जाता है)।
इसलिए, विकल्प /etc/network/if-up.d/ में एक स्क्रिप्ट बना रहा है जो इंटरफ़ेस के लिए आईपी को फिर से सेट करता है। आदर्श नहीं है, लेकिन मैं अभी तक एक बेहतर समाधान के साथ नहीं आया हूँ!


नीचे कॉन्फ़िगर के संबंधित अनुभाग देखें। बैश स्क्रिप्ट पर आपको आईपी / नेटमास्क, गेटवे और डीएनएस (और इंटरफ़ेस नंबर सेट करना चाहिए, यदि आपका अलग है, तो यह eth1 होना चाहिए, हालांकि अगर आपने अभी-अभी वैग्रांटफाइल में सेट किया है)।
तो, पहली बार जब आप योनि करते हैं और यह VM बनाता है तो यह स्क्रिप्ट /etc/network/if-up.d/custom-network-config बनाता है जो IP कॉन्फिगरेशन, रूटिंग और रीस्टार्ट अपाचे सेट करता है (आपको इसकी आवश्यकता होगी) इसे संशोधित करें यदि आप अन्य सेवाओं का उपयोग कर रहे हैं जो नेटवर्किंग कॉन्फ़िगरेशन पर निर्भर हैं), और यह डीएनएस सेट करता है।
यदि आप वीएम के पहले से मौजूद होने पर फिर से वैजाइना करते हैं (जैसे कि वैज हॉल्ट करने के बाद) तो यह सब होता है नेटवर्क इंटरफेस को रिस्टार्ट करना ताकि स्क्रिप्ट रन हो जाए और इंटरफेस कॉन्फ़िगर हो जाए (किसी कारण से, मुझे पता चला कि स्क्रिप्ट को किक नहीं किया गया था जब वीएम चालू किया गया था और इंटरफेस शुरू में आया था - निश्चित नहीं कि क्यों)।

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.