VPS પર OpenVPN: ખોલવા માટે કોઈ /dev/net/tun ઉપકરણ નથી
રૂપરેખાંકન સામાન્ય રીતે ઠીક હોય છે: અતિથિ tun ઉપકરણ જોઈ શકતું નથી. VM ને શેર કરેલા કર્નલવાળા કન્ટેનરથી અલગ કરો, પછી કર્નલનો માલિક એ સ્તર સુધારો.
પ્રથમ શરૂઆત /dev/net/tun અથવા ખોલી ન શકાય તેવા TUN/TAP ઉપકરણ વિશેના સંદેશ સાથે નિષ્ફળ જાય છે. પ્રમાણપત્રો હજી વાંચ્યા નથી, તેથી પ્રોફાઇલમાં કંઈપણ શંકાસ્પદ નથી. ડીમન કર્નલને એવી વસ્તુ માટે પૂછે છે જે આ અતિથિ પાસે નથી.
તે વસ્તુ tun મોડ્યુલ દ્વારા ટેકો મેળવતું અક્ષર ઉપકરણ છે. તમે તેને બનાવી શકો કે નહીં તે કર્નલનો માલિક કોણ છે તેના પર આધાર રાખે છે.
ડીમન કર્નલને શું માગે છે
OpenVPN /dev/net/tun ખોલે છે અને ડ્રાઇવરને ઇન્ટરફેસ માટે પૂછે છે. ડ્રાઇવર tun મોડ્યુલ છે, અને ઉપકરણ નોડ એ હેન્ડલ છે જે વપરાશકર્તા જગ્યા તેને પહોંચવા માટે વાપરે છે. જો મોડ્યુલ લોડ ન હોય, તો નોડ ગેરહાજર હોઈ શકે અથવા ખોલવું નિષ્ફળ જઈ શકે. બંનેમાંથી કોઈ સ્થિતિ server.conf સંપાદિત કરીને ઠીક થતી નથી.
ભૂલને પહેલા પ્લેટફોર્મ પ્રશ્ન તરીકે વાંચો. રૂપરેખાંકન ભૂલ ઉપકરણ ખૂલ્યા પછી દેખાય છે, પહેલા નહીં.
VM અથવા શેર કરેલા કર્નલવાળો અતિથિ
KVM, Xen અથવા અન્ય સંપૂર્ણ વર્ચ્યુઅલ મશીન પર કર્નલ તમે નિયંત્રિત કરો છો. તમે મોડ્યુલ લોડ કરી શકો છો અને નોડ બનાવી શકો છો. OpenVZ, Virtuozzo અથવા LXC શૈલીના કન્ટેનર પર અતિથિ હોસ્ટ કર્નલ શેર કરે છે, તેથી અંદરનો root હોસ્ટે લોડ ન કરેલ મોડ્યુલ લોડ કરી શકતો નથી.
તેથી એક જ નિષ્ફળતાના બે ખૂબ જ અલગ માલિકો છે. પ્રથમ કિસ્સામાં તમે તેને ઇન્સ્ટન્સની અંદરથી ઠીક કરી શકો છો. બીજામાં તમે હોસ્ટ અથવા પ્રદાતાને કંઈક ખુલ્લું કરવા માટે પૂછી રહ્યા છો.
તમે કયા કિસ્સામાં છો તે નક્કી કરતા પહેલા ls -l /dev/net/tun, lsmod | grep tun અને ip -brief link show ચલાવો.
VM પર, બૂટ વખતે મોડ્યુલ લોડ કરો
વર્ચ્યુઅલ મશીન પર modprobe tun સામાન્ય રીતે ઉપકરણ નોડ બનાવે છે. તે દેખાય છે કે નહીં તે તપાસો, પછી એક વાર ટાઇપ કરેલી આદેશ પર આધાર રાખવાને બદલે ડિસ્ટ્રિબ્યુશનના મોડ્યુલ રૂપરેખાંકન દ્વારા લોડને કાયમી બનાવો. રીબૂટ પછી અદૃશ્ય થતો નોડ આવતા મહિને એ જ ટિકિટ બની જાય છે.
તમે બૂટ કરેલા કર્નલમાં મોડ્યુલ બિલકુલ છે કે નહીં તે પણ તપાસો. પાતળું કરેલું વેન્ડર કર્નલ તેને ધરાવતું ન હોઈ શકે.
જો નોડ હાજર છે પણ ખોલવું હજી પણ નિષ્ફળ જાય, તો પરવાનગીઓ અને ઉપકરણના major/minor નંબરો આગળના શંકાસ્પદ છે. તે સ્થાનિક સુધારા છે, પ્રદાતાને વિનંતીઓ નથી.
કન્ટેનરમાં, ઉપકરણનો માલિક હોસ્ટ છે
કન્ટેનરમાં, ઉપકરણ અને ક્ષમતા બે અલગ જરૂરિયાતો છે. રનટાઇમે /dev/net/tun પસાર કરવું પડે છે, અને કન્ટેનરને ઇન્ટરફેસ બનાવવા માટે નેટવર્ક ક્ષમતા જોઈએ છે. કોઈપણ ન આપતું રૂટલેસ રનટાઇમ પ્રોફાઇલ કેવી રીતે લખાયું હોય તે પ્રમાણે એ જ ખોલવાની ભૂલ ઉત્પન્ન કરતું રહેશે. ઘણા OpenVZ હોસ્ટ ગ્રાહક પેનલમાં TUN/TAP ટોગલ આપે છે, અને તેને ચાલુ કરવું વત્તા રીસ્ટાર્ટ ઘણી વાર આખો ઉકેલ હોય છે.
પ્રદાતાને બે ચોક્કસ પ્રશ્નો પૂછો: શું tun મોડ્યુલ હોસ્ટ પર લોડ છે, અને શું ઉપકરણ આ ઇન્સ્ટન્સની અંદર ઉપલબ્ધ છે? અસ્પષ્ટ ટિકિટ અસ્પષ્ટ જવાબ મેળવે છે.
મોડ્યુલ ફરી બનાવવું ભાગ્યે જ કેમ મદદ કરે છે
અતિથિની અંદર મોડ્યુલ બનાવવું ભાગ્યે જ મદદ કરે છે. કમ્પાઇલ કરવા માટે બરાબર ચાલતા કર્નલનું રૂપરેખાંકન જોઈએ છે, અને /proc/config.gz વૈકલ્પિક છે અને ન્યૂનતમ ઇમેજમાં ઘણી વાર ગેરહાજર હોય છે. કામ કરતું મોડ્યુલ પણ એવા કર્નલમાં નાખી શકાતું નથી જેનો માલિક કન્ટેનર નથી.
ઉપકરણ દેખાયા પછી, સેવા રીસ્ટાર્ટ કરો અને ટ્રાફિક ચકાસતા પહેલા ઇન્ટરફેસની પુષ્ટિ કરો. tun0 જોવાનો અર્થ છે કે ડીમને ઉપકરણ ખોલ્યું છે. તે ફોરવર્ડિંગ, firewall નિયમો અથવા ગ્રાહકોને મળતા રૂટ વિશે હજી કંઈ કહેતું નથી.
તે અલગ પુરાવાવાળા અલગ પ્રશ્નો છે. ગેરહાજર ઉપકરણ પૂર્વશરત નિષ્ફળતા છે; અસ્તિત્વમાં હોય પણ કંઈ ન વહન કરતું ટનલ નીતિ નિષ્ફળતા છે.