App ku jirta magac-booqka VPN lama gaari karo LAN-ka
Magac-booqa shabakadu wuxuu hal barnaamij siiya tunnel u gaar ah iyo loopback u gaar ah. Daabac kaliya dekeddiisa iyadoo la isticmaalayo boodbood socat ama lammaane veth halkii martigeliyaha.
Adeeggaagu wuu ku shaqeeyaa mishiinka, tunnel-ku wuu sarreeyaa, haddana browser-ka miiskaaga wali jawaab buu sugayaa. Ma jiro wax jaban macnaha caadiga ah: barnaamijku wuxuu dhageysanayaa gudaha magac-booq shabakadeed, oo xidhmo taas LAN-ka lama arko. Loopback-kiisu wuxuu ka tirsan yahay magac-booqa, sidaas darteed macmiil ku jira mishiin kale ma laha cinwaan gaara dekedda. Hal boodbood oo ula kac ah, ama hal lammaane veth, ayaa taas hagaajiya isagoon dhaqaaqin inta kale ee martigeliyaha.
Sababta wax aan uga jawaabin cinwaanka LAN-ka
Magac-booqu waa xidhmo shabakadeed buuxda: interface-yo, waddooyin, xeerar dabdamis iyo loopback gaar ah. Habka loo bilaabay ip netns exec wuxuu arkaa oo kaliya xidhmadaas iyo wax kale ma arko, sidaas darteed cinwaanka uu ku xidhmo waxaa lagu xalliyaa oo kaliya gudaha magac-booqa. 127.0.0.1 ee martigeliyaha laftiisu waa loopback gabi ahaan ka duwan.
Taasi waa sababta curl-ka martigeliyaha uu ku guuldareysto halka amarka isla markaas gudaha magac-booqa uu ku guuleysto. Barnaamijku wuu caafimaad qabaa; cinwaanku si fudud kama jiro xidhmada martigeliyaha.
Hal deked ku daabac boodbood socat
socat wuxuu isku xidhaa labada xidhmo booska isticmaalaha, taas oo ku filan marka hal deked TCP ay tahay inay gudubto. Dhinaca martigeliyaha wuxuu dhageystaa LAN-ka oo xiriir kasta oo la aqbalay wuxuu gudaha magac-booqa ka bilaabaa socat labaad oo ku xidhma loopback-ka barnaamijka. Habka gudaha wuxuu gaaraa barnaamijka sida saxda ah sida macmiil maxalli ah u gaari lahaa. Waxba kama beddelmo waddada magac-booqa, sidaas darteed barnaamijku wuxuu sii wadaa isticmaalka tunnel-ka oo ah meeshiisa kaliya ee bixitaanka.
socat TCP-LISTEN:9100,reuseaddr,fork EXEC:'ip netns exec vpn socat STDIO tcp-connect:127.0.0.1:9100',nofork
Habka dibadda wuxuu u baahan yahay root ama awood uu ku galo magac-booqa. Haddii VPN-ku dhaco, barnaamijku wuu lumiyaa waddadiisa oo dekedda la daabacay way ku guuldareysataa iyadoo xiran, waana taas dhaqanka aad ka rabto xabsi.
Isticmaal lammaane veth marka ka badan hal deked ay gudubto
Lammaane veth waa jawaabta saxda ah marka dhowr deked ama borotokool ay tahay inay gudbaan, ama marka martigeliyeyaal kale ay tahay inay bilaabaan xiriiro. Hal daraf wuxuu ku sii socdaa martigeliyaha, kan kalena wuxuu u guuraa magac-booqa, oo /30 yar wuxuu labada dhinac siiyaa cinwaan deggan. Kadib waddada martigeliyaha waxay cinwaanka magac-booqa u dirtay lammaanaha.
ip link add veth0 type veth peer name veth1
ip link set veth1 netns vpn
ip addr add 10.77.0.1/30 dev veth0
ip link set veth0 up
ip netns exec vpn ip addr add 10.77.0.2/30 dev veth1
ip netns exec vpn ip link set veth1 up
Ha ku darin waddo caadi ah oo martigeliyaha maraysa haddii aanad dooneynin inaad jebiso xabsiga. Tunnel-ku waa inuu sii ahaadaa bixitaanka, sidaas darteed lammaanaha waxaa laga gaari karaa oo kaliya cinwaanka adeegga la daabacay. Magac-booqa sii faylkiisa xallinta, sababtoo ah ip netns exec wuxuu akhriyaa /etc/netns/vpn/resolv.conf oo la'aanteed xallinta magacyada gudaha xabsiga waa madhan.
Ka tijaabi mishiin kale, ma aha martigeliyaha
Tijaabada ka samee mishiin labaad, sababtoo ah martigeliyaha wuxuu gaari karaa dhageyste maxalli ah waddooyin aan wax ka sheegayn LAN-ka. Marka hore hubi waxa barnaamijku dhab ahaan ku xidhmay gudaha magac-booqa, kadib dibadda ka xidh cinwaanka la daabacay. Cinwaan kasta oo halkaas ku xidhmid xabsiga ma ballaadhiso, sababtoo ah wildcard-ku wali wuxuu ka tirsan yahay magac-booqa oo LAN-ku ma arki karo.
ip netns exec vpn ss -lntp
Haddii xiriirka martigeliyaha uu shaqeeyo oo kan LAN-ka uusan shaqeyn, qaybta maqan waa boodboodka ama waddada, ma aha cinwaanka xidhitaanka. Halkii aad qalabka tun ee nool gudaha u guurin lahayd, gudaha magac-booqa ku bilow OpenVPN, sababtoo ah guurinta interface-ka ayaa damiya oo waxay tirtiri kartaa waddooyin aadan kadib dibadda ka hagaajin karin. Amarka soo kabashada ku hay console-ka, ma aha gudaha xabsiga.