ฉันจะตั้งค่าผู้เข้าร่วม LXC เพื่อให้ได้รับที่อยู่ dhcp เพื่อให้สามารถเข้าถึงได้บนเครือข่ายของฉันได้อย่างไร


15

ฉันติดตั้ง LXC โดยใช้:

lxc-create -t ubuntu -n lxcguest1

แต่ฉันไม่สามารถเข้าถึงบริการใด ๆ ที่ทำงานจาก LAN ของฉันดูเหมือนว่าจะเป็น NATed ฉันจะตั้งค่าเพื่อให้สามารถเข้าถึงได้ (อาจต้องได้รับที่อยู่ dhcp จากเราเตอร์ Linksys ของฉัน)

ขอบคุณ


อาจเป็นไปได้ซ้ำกับaskubuntu.com/questions/256304/…
bekce

คำตอบ:


5

ฉันเพิ่งจัดการกับปัญหานี้ด้วยตัวเอง โดยทั่วไปคุณต้องตั้งค่าบริดจ์และผูกการ์ดเครือข่ายและคอนเทนเนอร์ของคุณ นี่คือบทความที่ฉันติดตาม:

http://bj0z.wordpress.com/2011/08/19/howto-build-a-base-lxc-container-in-ubuntu-11-04/

ฟังราวกับว่าฉันต้องการคุณต้องการโซลูชัน 'bridge' มากกว่าโซลูชัน NAT ฉันยังปิดการตั้งค่าเริ่มต้นสะพาน LXC (ซึ่งเป็น NAT'ed) ในการทำเช่นนี้เพียงแค่แก้ไขไฟล์: /etc/default/lxcและเปลี่ยนUSE_LXC_BRIDGE="TRUE"เป็นUSE_LXC_BRIDGE="FALSE"และรีบูต


1
ฉันสับสนเล็กน้อยโดยวิธีนี้: เขาบอกว่าเขาต้องตั้งค่าบริดจ์แล้วบอกว่าวิธีแก้ปัญหาคือการปิดการตั้งค่าบริดจ์เริ่มต้น แน่นอนว่าเขาต้องเปิดการตั้งค่าบริดจ์ สิ่งที่สองที่ฉันต้องการความช่วยเหลือคือผู้ใช้บอกว่าการตั้งค่าบริดจ์นั้นเป็น NATed แน่นอนว่ามันเป็นบริดจ์ (ดังนั้นคอนเทนเนอร์อยู่บนเครือข่ายเดียวกับโฮสต์) หรือเป็น NATed (บนเครือข่ายอื่นและต้องมีการกำหนดเส้นทาง) ความเข้าใจของฉันคือว่าสิ่งเหล่านี้เป็นพิเศษร่วมกัน?
John Little

1
สิ่งนี้ไม่ถูกต้องทั้งหมดในขณะนี้ด้วยเวอร์ชันปัจจุบัน / etc / default / lx * หายไปโดยสมบูรณ์
spyderdyne

5

การตั้งค่าของฉันบนโฮสต์ Ubuntu 14.04.1 LTS (Trusty Tahr)

เพิ่ม/etc/network/interfacesในโฮสต์

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 0.0.0.0

auto br0
iface br0 inet dhcp
    bridge_ports eth0

(รีบูตหลังการเปลี่ยนแปลง)

และในไฟล์ config container ( /var/lib/lxc/containername/config) ฉันตั้งค่าlxc.network.link = br0

ด้วยคอนเทนเนอร์นี้จะได้รับที่อยู่ IP สาธารณะจากเซิร์ฟเวอร์ dhcp เช่นเดียวกับโฮสต์


@JonathanY br0 ควรปรากฏขึ้นหลังจากเพิ่มไปยัง / etc / network / interfaces ตามที่ระบุไว้ในคำตอบ คุณอาจต้องรีบูต
Epeli

3
ขอบคุณ สิ่งที่ผมหายไปถูกต้องที่จะเพิ่ม<username> veth br0 2 การ/etc/lxc/lxc-usernetในการที่จะใช้br0กับภาชนะบรรจุที่ด้อยโอกาส
Jonathan Y

2

ฉันใช้การตั้งค่าเริ่มต้นของ Ubuntu LXC และกำหนดค่าเราเตอร์ให้ส่งปริมาณการเข้าชมทั้งหมดใน 10.0.3.xxx ไปยังเครื่อง Ubuntu บนเราเตอร์ที่เปิดใช้งาน DD-WRT การตั้งค่าจะมีลักษณะคล้ายกับภาพหน้าจอด้านล่าง แทนที่192.168.1.137ด้วย IP ของเครื่องที่รัน LXC เราเตอร์อื่น ๆ ควรมีตัวเลือกที่คล้ายกันเพื่อตั้งค่าเส้นทางแบบคงที่ (นี่คือคำแนะนำเส้นทางแบบคงที่สำหรับ Linksysเป็นต้น)

การตั้งค่า DD-WRT สำหรับการจัดเส้นทางสแตติกไปยัง LXC

นี่ไม่เกี่ยวข้อง แต่ฉันยังใช้บริการ DNSMasq เพื่อชี้ชื่อโฮสต์ไปยังที่อยู่ IP ของคอนเทนเนอร์ LXC วิธีนี้ฉันสามารถเข้าถึงคอนเทนเนอร์http://gitlab/ได้ทุกที่บนเครือข่าย ในความคิดของฉันมันง่ายมากที่จะใช้ชื่อโฮสต์เพื่อเข้าถึงคอนเทนเนอร์กว่าจดจำที่อยู่ IP

DD-WRT การตั้งค่า DNSMasq


1
วิธีการที่ดี - ลอง ยกนิ้ว! การเพิ่มเส้นทางสแตติกทำงาน - และเราเตอร์เองสามารถ ping เครื่อง containerized! แต่ด้วยการส่งต่อพอร์ต ISP ของเราเตอร์จำนวนมากจะไม่ทำงานเนื่องจาก: Error code: 4937 The IP address is not in the same subnet with LAN IP address. Please input another one. (เราเตอร์ถือซับเน็ต 192.168.xx ในขณะที่ LXD / LXC อยู่บน 10.0.xx ซับเน็ตย่อย)
stamster

1
ใช่เราเตอร์ของคุณจะต้องยอมรับซับเน็ตมาสก์เพื่อให้โซลูชันของฉันทำงาน ฉันชอบที่จะซื้อเราเตอร์และเพิ่มเฟิร์มแวร์ after-marketเพื่อให้การกำหนดค่าบ้าเป็นไปได้ :-p
สาม

1
ฉันใช้ MikroTik ทั้งที่บ้านและที่ทำงาน แต่นี่เป็นหนึ่งการตั้งค่าที่พวกเขามีเราเตอร์ธรรมดาจาก ISP ดังนั้นความคิดของคุณนั้นเรียบง่าย แต่มีประสิทธิภาพมาก - หลักการจูบ :) ฉันชอบมันและจะใช้อย่างแน่นอนเพราะฉันไม่สามารถเข้าใจได้ว่าภาชนะบรรจุเหล่านั้นยังไม่มีวิธีแก้ปัญหาที่จะเปิดเผยพวกเขาสู่โลกภายนอก
เริ่ม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.