ip rule සමඟ ප්‍රතිපත්ති නියමයක් එකතු කරන්න, එය සබැඳිය යනතෙක් ක්‍රියා කරයි; එම මොහොතේ එය සරලව නැත. කිසිවක් ශබ්දයෙන් අසාර්ථක නොවීය: කර්නලයේ තත්ත්වය වෙනස් විය, සහ නියමය තිබිය යුතු බව කිසිදු වින්‍යාස හිමිකරුවෙකු දැන සිටියේ නැත. රැඳී පවතින සහ නොපවතින නියමය අතර සම්පූර්ණ වෙනස එයයි. systemd-networkd ඇති සත්කාරකයක, විසඳුම වන්නේ නියමයට හිමිකරුවෙකු දීමයි, සෑම නැවත සම්බන්ධතාවයකට පසුව විධානය නැවත ධාවනය කිරීම නොවේ.

නියමයක් පවතින්නේ යමෙකු එය හිමිකර ගත් විට පමණි

කර්නලයේ මාර්ගගත කිරීමේ ප්‍රතිපත්තිය තත්ත්වයක් මිස වින්‍යාසයක් නොවේ. එය ධාවනය වන පද්ධතිය තුළ ජීවත් වේ, එය රඳා පවතින අතුරුමුහුණත කඩා දමන ඕනෑම දෙයකට එය රැගෙන යා හැක. ෂෙල විධානය එම තත්ත්වය වෙනස් කරයි, අභිප්‍රාය පිළිබඳ කිසිදු වාර්තාවක් ඉතිරි නොකරයි.

ජාල කළමනාකරුවන් ප්‍රතිවිරුද්ධ ලෙස ක්‍රියා කරයි: ඔවුන් වින්‍යාසය කියවා යොදවා, සබැඳි සිදුවීමක් පෙර තත්ත්වය අවලංගු කළ විට නැවත යොදවයි. ඔවුන්ගේ වින්‍යාසයේ ප්‍රකාශිත නියමය නැවත නිර්මාණය වේ, ඔවුන් අසලින් එකතු කළ නියමය හිමිකරු නොමැති බාහිර වස්තුවකි.

එම වෙනසට networkd තුළ නමක් ඇත, කිසිවක් සක්‍රීය කිරීමට පෙර එය කියවීම වටී. නවතම අනුවාදවල බාහිර නියම පෙරනිමියෙන් ඉවත් කරනු ලැබේ, තම අතින් සටහන් කළ ඇතුළත් කිරීම් රැඳී පවතිනු ඇතැයි බලාපොරොත්තු වූ අයට එය පුදුමයක් වේ.

කිසිදු සැකසුමක් විශ්වාස කිරීමට පෙර අනුවාදය කියවන්න

හිමිකාරිත්ව හැසිරීම networkd.conf හි සැකසුමකින් පාලනය වේ, එම සැකසුම පැරණි systemd නිකුතුවල නොමැත. එය වටා සැලසුම් කිරීමට පෙර ස්ථාපිත අනුවාදය පරීක්ෂා කරන්න, මන්ද පැරණි සත්කාරකයක් ඔබ කියවන ලේඛනවලට වඩා වෙනස් ලෙස හැසිරේ.

අගයන් දෙකක් වැදගත් වේ. එකක් networkd වින්‍යාසයේ ප්‍රකාශ නොකළ නියම ඉවත් කරනවාද යන්න තීරණය කරයි, අනෙක මාර්ග සඳහා එයම කරයි. දෙකම ප්‍රතිපත්තියේ අන්තර්ගතය ගැන නොව හිමිකාරිත්වය ගැන ය, දෙකම වර්තමාන නිකුතුවල පෙරනිමියෙන් දැඩි හැසිරීම තෝරයි. ඒවා ගෝලීයව අක්‍රීය කිරීම සෑම බාහිර නියමයක්ම ජීවතුන් අතර තබයි, එය එක් අපේක්ෂිත VPN ප්‍රතිපත්තියක් ප්‍රකාශ කිරීමට වඩා බොහෝ පුළුල් තීරණයකි.

systemctl --version | head -1
networkctl --version | head -1
grep -R "ManageForeign" /etc/systemd/ /usr/lib/systemd/ 2>/dev/null

එම grep ඔබට කියන්නේ දේශීයව සකසා ඇති දේ සහ සැපයුම්කරුගේ පෙරනිමිය කුමක්ද යන්නයි. නොපැමිණීම ද තොරතුරකි, එහි අර්ථය සම්පාදිත පෙරනිමිය බලාත්මක වීමයි. පෙරනිමිය ඔබේ සටහන්වල ලියන්න, එවිට ඊළඟ පුද්ගලයාට එය නැවත සොයා ගැනීමට සිදු නොවේ.

නියමය සහ එය යොමු වන වගුව ප්‍රකාශ කරන්න

.network ගොනුවක ඇති නියමයක් වගුවක් නම් කරයි, නම කරන්නේ එපමණකි. එය එම වගුව තුළ මාර්ග නිර්මාණය නොකරයි, ඒවා අර්ථවත්ද යන්න පරීක්ෂා නොකරයි. මාර්ග රහිතව නියමය ප්‍රකාශ කිරීමෙන් ගමනාගමනය ගැලපී පසුව එය ඉවත දමන ප්‍රතිපත්තියක් ඇති වේ.

මාර්ග එකම ගොනුවේ ප්‍රකාශ කරන්න, ළඟා විය හැකි ඊළඟ පිම්ම සහ නිවැරදි වගුව සමඟ. ප්‍රකාශිත නියමයේ ප්‍රමුඛතාව තබා ගන්න, එවිට එය අනුපිළිවෙල ලැයිස්තුවේ ඔබ බලාපොරොත්තු වන තැනට වැටේ. වැරදි වගුවට නියමිත වේලාවට පෙර ළඟා වන නියමය ඔබ සකස් කිරීමට අදහස් කළ සේවාවට වඩා වැඩි ගමනාගමනයක් වෙනස් කරයි. පහත කොටස සම්පූර්ණ ගොනුවක් ලෙස නොව හැඩයක් ලෙස කියවන්න, මන්ද අතුරුමුහුණත් හිමිකාරිත්වය සහ සම්බන්ධතාවයේ ඉතිරි කොටස තවමත් තිබිය යුතුය.

[RoutingPolicyRule]
Family=ipv4
IPProtocol=tcp
SourcePort=443
Table=100
Priority=1000

[Route]
Destination=10.80.0.0/24
Gateway=10.80.0.1
Table=100

පසුව නැවත පූරණය කර ගොනුව වෙනුවට කර්නල තත්ත්වය කියවන්න. පිරිසිදුව විග්‍රහ කළ වින්‍යාසයක් වුවද ඔබ අදහස් නොකළ නියමයක් නිපදවිය හැක, ප්‍රකාශය සම්පූර්ණ වූ විට පමණක් දර්ශන දෙක එකඟ වේ.

අතුරුමුහුණත සඳහා එක් හිමිකරුවෙකු තෝරන්න

එකම උමඟක කළමනාකරුවන් දෙදෙනෙක් දෙකෙහිම දෝෂයක් ලෙස පෙනෙන ගැටුමක් නිපදවයි. පවතින wg-quick සැකසුමක් networkd වෙත ආයාත කිරීම එකතු කිරීමක් නොව සංක්‍රමණයකි, දෙකම ධාවනය කිරීම අතුරුමුහුණත සහ එහි නියම හිමිකරුවන් දෙදෙනෙකු යටතේ තබයි.

සංක්‍රමණය එක් වරකින් කරන්න: පැරණි ඒකකය නවත්වන්න, අක්‍රීය කරන්න, networkd තුළ අතුරුමුහුණත සහ එහි මාර්ග ප්‍රකාශ කරන්න, පසුව නැවත පූරණය කරන්න. පැරණි ඒකකය ඇරඹුමේදී ආපසු එළඹිය නොහැකි බව පරීක්ෂා කරන්න. නැවත ඇරඹීමකින් පසු නැවත සක්‍රීය වන ඉතිරි ඒකකයක් ඔබ දැන් ප්‍රකාශ කළ තත්ත්වය මත ලියයි. නව එක සබැඳි නැවත සම්බන්ධතාවයක් ජය ගන්නා තෙක් පැරණි වින්‍යාස ගොනුව තබා ගන්න, පසුව එය විශ්‍රාම ගන්වන්න.

සලකුණේ හිමිකාරිත්වයටද එම රැකවරණයම අවශ්‍යයි: නියමයක් ගිනිපවුරු සලකුණකට ගැලපේ නම්, යමෙකු එම සලකුණ සැකසිය යුතුය. කිසිවෙකු සකසන්නේ නැති සලකුණකට යොමු වන නියමය, හිතාමතා කළ බව පෙනෙන මළ වින්‍යාසයකි.

ජීවන චක්‍රයේ සිදුවීම් පුහුණු වන්න

වින්‍යාසය සිදුවීම් හරහා එහි හැසිරීම තරමට පමණක් හොඳය. සබැඳිය පහළට ගන්න, නැවත ඉහළට ගන්න, සේවාව නැවත අරඹන්න සහ ලිපිනය අලුත් කරන්න. එක් එක් දෙයකට පසුව නියම ලැයිස්තුව සහ වගුවේ අන්තර්ගතය කියවන්න.

sudo networkctl reload
ip rule show
ip route show table 100
sudo systemctl restart systemd-networkd

අපේක්ෂිත ප්‍රතිඵලය වන්නේ එම හිමිකාරිත්ව ප්‍රතිපත්තිය නැවත නිර්මාණය වීම සහ යල් පැන ගිය තත්ත්වය විශ්‍රාම යාමයි, එය සෑම නැවත සම්බන්ධතාවයකට පසුව ෂෙල් නියමයක් නැවත එකතු කිරීමට වඩා තිරසාරය. වෙනස්කම් වාර්තාවේ නියමය හිමි ගොනුව සහ එය අනුග්‍රහය දෙන අනුවාදය නම් කරන එක් පේළියක් තබන්න. එවිට ඊළඟ ඉංජිනේරුවාට ෂෙල් ඉතිහාසය හාරා නොබලා ප්‍රතිපත්තිය සොයා ගත හැක. කිසිවෙකුට හිමි නොවන නියමයක් නැවත අහිමි වන නියමයකි.

අදාළ ලිපි