1. módszer: Statikus interfész-beállítások használata
2. módszer: Tegye megváltoztathatatlanná a resolv.conf fájlt
3. módszer: Udvariasan mondd meg a FreeBSD-nek, hogy hagyja békén a beállításokat
Ha saját feloldóját futtatja, vagy egy harmadik féltől származó szolgáltatót szeretne használni, előfordulhat, hogy a /etc/resolv.conffájlt felülírja a DHCP. Számos módszer létezik a probléma megoldására. Mivel valószínűleg újra kell indítania a rendszert, hogy megbizonyosodjon arról, hogy a változtatások megmaradnak, és mivel elsősorban a hálózati beállításokkal fog majmolni, erősen javaslom ezt tesztpéldányon és/vagy csúcsidőn kívül. órák.
Nos, itt van három módszer, a legrosszabbtól a legjobbig. Vegye figyelembe, hogy ebben az útmutatóban minden metódus a FreeBSD 10-hez készült. A Linux felhasználók ezt az útmutatót tekinthetik meg .
1. módszer: Statikus interfész-beállítások használata
Korlátozott tesztelésem során ez valamivel gyorsabb rendszerindítási időt eredményez, mivel nem kell megvárnia, amíg a DHCP hozzárendeli a hálózati beállításokat. Azonban több Vultr-dokumentumban is említést láttam arról, hogy a statikus interfész-beállítások használata rosszindulatú, és ragaszkodnia kell a DHCP-hez. Feltételezem, hogy jó okuk van erre, ezért magam továbbra is a DHCP-t használom. Ennek ellenére, ha úgy dönt, hogy ezt az utat választja, kövesse az alábbi lépéseket.
- Határozza meg a szerver IP-címét, a hálózati maszkot és az átjáró IP-címét.
- Módosítsa
/etc/rc.confezeket az értékeket a DHCP helyett.
- A beállítások teszteléséhez indítsa újra.
Határozza meg az IP/hálózati maszkot/átjárót
Feltételezve, hogy a felület vtnet0, hajtsa végre a következőket:
ifconfig vtnet0 | grep inet
Ezzel megkapja a szerver IP-címét és hálózati maszkját:
inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255
A FreeBSD szeret hex-et használni a hálózati maszkként. A fenti átváltja a következőt, 255.255.255.0ha kíváncsi. Megtalálható egy praktikus asztal itt , de ne félj: akkor csak másolja a hex-címét a konfigurációs fájlok (vagy átalakítani, hogy tizedes, ha úgy tetszik).
Az átjárót többféleképpen is megtalálhatja. Íme egy:
route get default | grep gateway visszaad valamit a következőképpen:
gateway: 10.10.10.1
Módosítsa /etc/rc.confúj értékekkel
Az IP-címmel, hálózati maszkkal és átjáróval felvértezve itt az ideje, hogy hozzáadja őket a rendszer konfigurációjához. Azt javasoljuk, biztonsági mentését a fájl, mielőtt bármilyen változtatást, mivel ez teszi, hogy sokkal könnyebb visszavonás kéne elrontani. Ezután nyissa meg /etc/rc.confa kívánt szerkesztőt, és hajtsa végre a következő módosításokat:
# Comment out this line:
# ifconfig_vtnet0="dhcp"
# Add these lines:
defaultrouter="10.10.10.1"
ifconfig_vtnet0="inet 10.10.10.10 netmask 0xffffff00"
Nyilvánvaló, hogy a nyilvánvaló hamisítványaimat a tényleges IP-címével, hálózati maszkjával és átjárójával kell helyettesítenie .
Indítsa újra és tesztelje
Indítsa újra a kiszolgálót a használatával, shutdown -r nowés győződjön meg arról, hogy megfelelően működik. Végezze el a szükségesnek ítélt teszteket, hogy megbizonyosodjon arról, hogy minden megfelelően működik. Ha a hálózat nem érhető el, jelentkezzen be a konzolon keresztül, és vonja vissza a változtatásokat. Ha minden rendben van, ezen a ponton bármit beletehetsz, amit csak akarsz, resolv.confanélkül , hogy attól félne, hogy az eltörölődik.
Ha bármilyen okból nem tudja újraindítani, akkor ennek működnie kell , de én a helyedben rendesen újraindítanám:
service netif restart && service routing restart
2. módszer: Tedd resolv.confmegváltoztathatatlanná
Ez egy kicsit hack, de könnyen ez a leggyorsabb megoldás. Nem ajánlom, mert nem garantálhatom, hogy ez nem okoz furcsaságokat a jövőben, amikor az operációs rendszer új kiadására frissít, és a dhclient valószínűleg egy csomó panaszt fog tenni. Ez azt jelenti, hogy egy egyszerű dologra chflags schg /etc/resolv.confvan szükség. A fájl most már teljesen írásvédett, még a root-tól is. Így ellenőrizheti:
vultr [~]# chflags schg /etc/resolv.conf
vultr [~]# ls -ol /etc/resolv.conf
-rw-r--r-- 1 root wheel schg 50 Nov 29 06:28 /etc/resolv.conf
vultr [~]# echo "so very untouchable" >> /etc/resolv.conf
/etc/resolv.conf: Operation not permitted.
Visszavonás ezzel: chflags noschg /etc/resolv.conf
3. módszer: Udvariasan mondd meg a FreeBSD-nek, hogy hagyja békén a beállításokat
Ez messze a legtisztább és legmegfelelőbb módja ennek elvégzésére. Két megközelítés közül választhat:
Beállítás dhclient
Vegyük a példát felülről, és mondjuk, csak helyezze be az egyéni névszerverét, resolv.confés ne akarja elveszíteni minden alkalommal, amikor a DHCP megteszi a dolgát. Az én esetemben az általam telepített gyorsítótár-feloldót szeretném használni, amely figyel a localhostra, ezért szerkesztem /etc/dhclient.conf(amely valószínűleg üres lesz, kivéve a megjegyzéseket), és hozzáadom a következőket:
interface "vtnet0" {
supersede domain-name-servers 127.0.0.1;
}
Ez lehetővé teszi a dhclient számára, hogy minden mást megtegyen, amire szüksége van, de amikor a DHCP-kiszolgáló elküldi neki a használandó névszerverek listáját, a tiéd felülírja (ahogyan, teljesen lecseréli) az általa kínáltakat. Ha inkább kiegészíti (nem pedig lecseréli) a felajánlottakat, a „felváltva” helyett „hozzáfűz” vagy „elöl” is teheti.
Mellesleg, ha egynél több egyéni szerverre van szüksége, adja meg őket a következőképpen:
supersede domain-name-servers 127.0.0.1, 127.0.0.2;
A módosítások elvégzése után indítsa újra dhclient, hogy azok azonnal életbe lépjenek:
service dhclient restart vtnet0
Vizsgálja meg a sajátját, /etc/resolv.confés meg kell találnia, hogy most már benne van az egyéni névszerver(ek).
Jelen pillanatban a névszerverek jelentik az egyetlen dolgot, amit a Vultr DHCP-kiszolgálója valaha is behelyezett a -be resolv.conf, és az egyetlen dolog, amit testre szabtam . Ha azonban bármikor felül kell írnia bármely más beállítást, tekintse át a kiváló kézikönyvet egy átfogó listaért:
man 5 dhclient.conf
Az alján nagyszerű példák találhatók, amelyek ötletet adnak arról, hogy mit tehet. A fejem tetején el tudom képzelni, hogy érdemes valami olyasmit hozzáadni, mint supersede domain-name "example.com";ha általában van egy ilyen sor a resolv.conf. Ismét konzultáljon a dokikkal.
Beállítás resolvconf
Ez a legegyszerűbb megoldás, ha resolv.confegyedül akarod hagyni. A kézikönyv szerint:
resolvconf manages resolv.conf(5) files from multiple sources, such as DHCP and VPN clients
A konfigurációja itt található /etc/resolvconf.conf, ami valószínűleg nem létezik az Ön rendszerén, ezért nyugodtan hozza létre. Ha resolv.confmegváltoztathatatlanná szeretné tenni , adja hozzá ezt:
# prevent all updates to resolv.conf:
resolv_conf="/dev/null"
Ha unboundhelyi gyorsítótárazási feloldóként használja, akkor ezt a sort ad hozzá (és néhány saját magának). Ez alapvetően becsapás resolvconfazt gondolni, hogy /etc/resolv.confa címen található /dev/null. Valami valamivel kevésbé aljas, de ugyanolyan hatékony lenne:
# disable resolvconf from running any subscribers:
resolvconf="NO"
Ha azt szeretnénk, hogy tegyen valamit kifinomultabb, mint a kikapcsolás a man oldalakat az resolvconfés resolvconf.confmég rengeteg információ.