Įgalinamas IP persiuntimas IPv4 sistemoje „Debian GNU/Linux“

Enabling Ip Forwarding



Kartais kompiuterių tinklo nustatymas gali būti sudėtingas. Laimei, įjungti „IPv4“ persiuntimą „Linux“ kompiuteryje yra gana paprasta užduotis.

Sąvoka IP persiuntimas apibūdina tinklo paketo siuntimą iš vienos tinklo sąsajos į kitą tame pačiame įrenginyje. Jis turėtų būti įjungtas, kai norite, kad jūsų sistema veiktų kaip maršrutizatorius, perduodantis IP paketus iš vieno tinklo į kitą.







„Linux“ sistemoje „Linux“ branduolys turi kintamąjį pavadinimu „ip_forward“, kuris išsaugo šią vertę. Jis pasiekiamas naudojant failą „/proc/sys/net/ipv4/ip_forward“. Numatytoji reikšmė yra 0, o tai reiškia, kad nėra IP persiuntimo, nes paprastam vartotojui, valdančiam vieną kompiuterį be papildomų komponentų, paprastai to nereikia. Priešingai, maršrutizatoriams, šliuzams ir VPN serveriams tai yra esminė savybė.



Toliau paaiškinsime, kaip laikinai ir visam laikui įjungti IP persiuntimą.



IP persiuntimas kaip laikinas sprendimas

Norėdami įjungti šį branduolio parametrą, turite dvi parinktis. 1 parinktis tiesiog išsaugo 1 reikšmę kintamajame iš viršaus taip:





#išmetė 1 > /proc/sys/tinklas/ipv4/ip_forward

2 parinktis naudoja komandą `sysctl`, kuri leidžia pakoreguoti ir skirtingus branduolio parametrus vykdymo metu [2]. Kaip administratorius, paleiskite šią komandą:

#sysctlnet.ipv4.ip_forward =1

Atminkite, kad šis nustatymas iš karto keičiamas. Be to, rezultatas nebus išsaugotas iš naujo paleidus sistemą.



Galite užklausti išsaugotos vertės taip:

#katė /proc/sys/tinklas/ipv4/ip_forward

Ši komanda grąžina 0 reikšmę, jei nėra IP persiuntimo, ir 1, jei įgalintas IP persiuntimas. Kaip alternatyva, naudojant „sysctl“ taip pat rodoma dabartinė būsena:

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward =0
#

Nuolatinis IP persiuntimo įgalinimas

Norint tai pasiekti, reikia atlikti keletą kitų veiksmų. Pirmiausia redaguokite failą „/etc/sysctl.conf“. Ieškokite eilutės, kurioje yra įrašas # net.ipv4.ip_forward = 1, ir pašalinkite # eilutės pradžioje.

Tada išsaugokite failą ir paleiskite komandą „sysctl“, kad įgalintumėte koreguotus nustatymus:

#sysctl-p /ir kt/sysctl.conf

Parinktis „-p“ sutrumpina „–load“ ir reikalauja, kad būtų laikomasi konfigūracijos failo.

Tada paleiskite iš naujo „proc“ failų sistemą, kurioje pateikiama informacija apie „Linux“ branduolio būseną, naudodami šią komandą:

#/ir kt/init.d/procps paleisti iš naujo

Maždaug 2015 m. Failo pavadinimas buvo sutrumpintas nuo „procps.sh“ iki „procps“. Taigi, senesnėse „Debian“ sistemose scenarijus, kurį turite iškviesti, yra pavadintas „procps.sh“.

Darbas su Systemd

Kita kliūtis buvo išleista „Systemd“ 221. versija. IP persiuntimas pagal nutylėjimą yra išjungtas, todėl norint jį įjungti reikia papildomo failo. Jei jo dar nėra, tiesiog pridėkite. Failo pavadinimą sudaro tinklo sąsajos pavadinimas, po kurio eina priesaga „.network“, pvz., „Eth0.network“ tinklo sąsajai `/dev/eth0`. Kaip nurodyta dokumentuose [4], kiti plėtiniai ignoruojami.

Šis kodo fragmentas rodo tinklo sąsajos sąranką `/dev/tun0`. Jį sudaro du skyriai - „Rungtynės“ ir „Tinklas“. Skiltyje „Atitikti“ apibrėžkite tinklo sąsajos pavadinimą, o tinklo skiltyje įgalinkite IP persiuntimą.

# cat /etc/systemd/network/tun0.network
[Rungtynės]
vardas= tun0
[Tinklas]
IPPersiųsti= ipv4

Išvada

IP persiuntimo aktyvinimas „IPv4“ nėra paslaptis. Vos keli žingsniai, ir jūs esate ten. Laimingas įsilaužimas!

Nuorodos ir nuorodos

* [1] „Systemd-Networkd“, „Debian Wiki“ sąranka
* [2] Juergenas Haasas: išmokite komandą „Linux sysctl“
* [3] „Systemd News“ 221 versijai
* [4] „Systemd“ dokumentacija