ฉันจะอนุญาต / dev / net / Tun ในคอนเทนเนอร์ LXC ที่จัดการ LXD ได้อย่างไร


9

ฉันกำลังพยายามให้ Openvpn ทำงานในคอนเทนเนอร์ LXD / LXC และเปลี่ยนเส้นทางทราฟฟิกที่เข้าสู่คอนเทนเนอร์ไปยัง VPN

จุดประสงค์คือการแทนที่ VM ที่มีคุณสมบัติครบถ้วน (และเล่นด้วย LXD :-)

ฉันจัดการเพื่อรับ IP จากเซิร์ฟเวอร์ DHCP หลักของฉันตั้งค่ากฎ iptables สำหรับการปลอมแปลง / ส่งต่อปริมาณการใช้งาน แต่เมื่อฉันพยายามเปิด openvpn มันถูกบล็อคโดยอุปกรณ์ (การเข้าถึง) / dev / net / tun .

ฉันมาเจอโพสต์นี้บน ServerFault /server/429461/no-tun-device-in-lxc-guest-for-openvpnแต่ดูเหมือนจะไม่ทำงานกับ LXC รุ่นปัจจุบันและ / หรือ LXD จัดการการกำหนดค่า ...

แก้ไข: ฉันพยายามใช้คาถานี้ แต่ก็ไม่ประสบความสำเร็จ:

lxc config set mycontainer raw.lxc 'lxc.cgroup.devices.allow = c 10:200 rwm'

แก้ไข 2: พยายามlxc config device add mycontainer tun unix-char path=/dev/net/tun major=10 minor=200แต่เมื่อหยุด / เริ่มถัดไปฉันได้รับ

ข้อผิดพลาด: การกำหนดค่าอุปกรณ์รับสัญญาณล้มเหลว: ไม่ได้ใช้งาน

ตอนนี้ฉันทำไม่ได้แม้lxc config device remove mycontainer tunจะเกิดข้อผิดพลาดไม่ได้ใช้งานเหมือนเดิม ดูเหมือนว่าคอนเทนเนอร์จะหายไป ...

คำตอบ:


14

คุณต้องการ:

lxc config device add CONTAINER tun unix-char path=/dev/net/tun

1
สิ่งนี้แก้ไขERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)ข้อผิดพลาดที่ฉันพยายามเริ่มต้นการเชื่อมต่อ OpenVPN จากคอนเทนเนอร์ กล่าวถึงที่นี่โดยหวังว่าจะเพิ่มคำตอบนี้ให้กับการค้นหาของ Google ในข้อผิดพลาดนั้น หากสิ่งนี้ได้แก้ไขคำถามของ @alci คำตอบนี้ควรได้รับการยอมรับ
Jonathan Y.

ตอนนี้ผมได้รับERROR: Cannot open TUN/TAP dev /dev/net/tun: Operation not permitted (errno=1)แทนERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
เจ _silly_evarlast_ นกกระจิบ

3

ฉันกำลังดิ้นรนเพื่อทำสิ่งนี้เช่นกันในภาชนะที่ไม่มีสิทธิพิเศษ สิ่งที่ฉันทำคือ

mknod /path/to/your/container/root/tun c 10 200
chown 100000:100000 /path/to/your/container/root/tun

จากนั้นภายในภาชนะ

mkdir /dev/net
ln -s /root/tun /dev/net/tun

นี่หมายความว่าฉันไม่ต้องทำการเปลี่ยนแปลงใด ๆ กับ lxc conf


0

คุณต้องทำให้อุปกรณ์รับสัญญาณบนโฮสต์ก่อนที่คุณจะเริ่มคอนเทนเนอร์: sudo mknod /path/to/your/container/dev/net/tun c 10 200


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