โหลดโมดูล tun ใน linux ได้อย่างไร?


26

ฉันไม่สามารถจัดการโหลดtunโมดูลในกล่อง ArchLinux ของฉัน ฉันพยายามเชื่อมต่อกับ OpenVPN แต่บันทึกแจ้งว่า:

nm-openvpn[6662]: Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)

lsmod | grep tun

ไม่ส่งคืน:

ถ้าฉันวิ่ง:

sudo modprobe tun

ก็จะส่งกลับล้มเหลว แต่ข้อผิดพลาดไม่และ lsmod tunยังไม่เคยมีใคร โมดูลที่ดูเหมือนว่าจะมีชีวิตอยู่ในขณะที่มีความเป็นไปในtun.ko.gz/lib/modules/

ฉันไม่รู้จะลองอะไรอีก

คำตอบ:


27

คำตอบนี้อาจจะช้าไปหน่อย แต่ฉันพบปัญหาตามที่อธิบายไว้ด้วยตัวเอง

การเรียกใช้ OpenVPN จะสร้าง:

Note: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)

และวิ่งtunctlจะผลิต:

Failed to open '/dev/net/tun' : No such file or directory

และคำสั่งนี้ไม่มีเอาต์พุต:

lsmod | grep tun

เมื่อพยายามเพิ่มtunโมดูลผ่าน:

modprobe tun

modprobe จะออกด้วยรหัสข้อผิดพลาดความล้มเหลว (1) และไม่มีอะไรเปลี่ยนแปลง

insmodผมพบว่าวิธีการอื่นในการเปิดใช้งานโมดูลถังผ่าน ก่อนอื่นให้ค้นหาโมดูลด้วยคำสั่งนี้:

find /lib/modules/ -iname 'tun.ko.gz'

จากนั้นใช้ insmod กับพา ธ ที่ส่งคืน (ฉันมีเพียงหนึ่งคู่ที่ตรงกัน) ตัวอย่างเช่น:

insmod /lib/modules/3.6.9-1-ARCH/kernel/drivers/net/tun.ko.gz

สำหรับฉันแล้วการรันคำสั่งนั้นใช้งานได้tunctlและ OpenVPN ทำงานได้ในภายหลัง


มีนี้เกินไปในปี่ราสเบอร์รี่ของฉัน insmod แก้ไขได้ (หลังจากรีบูตฉันสามารถ modprobe ตามปกติ)
unhammer

Thamks! insmodคำสั่งทำงาน! มีสิ่งนี้สำหรับปัญหาการเชื่อมต่อ opencon: ไม่สามารถเปิดอุปกรณ์รับสัญญาณ: ไม่มีอุปกรณ์ดังกล่าว
Antonio Saco

จำเป็นต้องเข้าถึงรูตหรือไม่!
Dr.jacky

3
ไม่สามารถค้นหา / lib / modules / -iname 'tun.ko.gz' บน Ubuntu 14.04 vps ของฉัน (
user3479125

1
ไม่พบบน CentOS 7 เช่นกัน
ฉก

22

ฉันพบปัญหาคล้ายกันเมื่อพยายามเรียกใช้ openvpn บน OVH Cloud VPS openvpn บ่นว่าไม่สามารถหาส่วนต่อประสาน TUN ได้

modprobe จะส่งคืนโมดูลที่ไม่พบเสมอ:

$ sudo modprobe tun
FATAL: Module tun not found.

ในที่สุดฉันพบว่า tun ไม่ใช่โมดูล แต่สร้างขึ้นในเคอร์เนลดังนั้นสิ่งที่ฉันต้องทำเพื่อแก้ไขถูกสร้างขึ้นด้วย dir และ nod

$ sudo mkdir /dev/net
$ sudo mknod /dev/net/tun c 10 200

จากนั้น openvpn สามารถค้นหาและใช้อุปกรณ์รับสัญญาณ

จะสังเกตเห็นว่าหลังจากนั้น modprobe จะยังคงกลับข้อผิดพลาดเพราะ tun ไม่ใช่โมดูล

$ sudo modprobe tun
FATAL: Module tun not found.

ขอบคุณฉันมีปัญหากับ OpenVPN Access Server บน OVH Classic VPS หลังจากทำการอัพเกรดจาก Debian 7 เป็น Debian 8 คุณยังสามารถทำสิ่งที่sudo chmod 600 /dev/net/tunกล่าวในบทความนี้ได้: wiki.vpslink.com/TUN/TAP_device_with_OpenVPN_or_Hamachiหลังจากรีสตาร์ทopenvvpnด้วยsudo service openvpnas restartฉันสามารถเชื่อมต่อกับลูกค้า แต่เมื่อฉันรีสตาร์ทเซิร์ฟเวอร์ Linux / dev / net / tun จะไม่อยู่อีกต่อไป ฉันไม่รู้ว่ามันเป็นเรื่องปกติหรือไม่ แต่ฉันเพิ่มคำสั่งไปยัง /etc/rc.local ดังนั้นมันจะยังคงทำงานหลังจากรีบูต
baptx

ขอบคุณ วิธีการแก้ปัญหาของคุณทำงานสำหรับพอร์ต armbi ของฉันบีบเดเบียนที่ทำงานบนมือถือ Android ของฉัน ฉันได้รับข้อผิดพลาดเดียวกันในขณะที่เริ่ม OpenVPN
Sourav Ghosh

ใช่tunไม่ใช่โมดูล
MrRolling

ขอบคุณสำหรับฉันขอบคุณ
Pouya Samie


0

ฉันมีปัญหาที่ฉัน/lib/modules/.../modules.aliasไม่ได้มีสาย

alias char-major-10-200 tunode_tunnel

ดังนั้นแม้ว่าคุณจะทำเสร็จแล้วmknod /dev/net/tunและมีtun.koบางที่/lib/modules/...มันก็จะไม่โหลดจนกว่าจะmodules.aliasมีคาถาที่ถูกต้อง

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