Metoda 1: Koristite statičke postavke sučelja
Metoda 2: Učinite resolv.conf nepromjenjivim
Metoda 3: Ljubazno recite FreeBSD-u da ostavi vaše postavke na miru
Ako koristite vlastiti razrješavač ili ga želite koristiti od dobavljača treće strane, možda ćete otkriti da /etc/resolv.confDHCP prepisuje vašu datoteku. Postoji nekoliko načina za rješavanje ovog problema. Budući da ćete se vjerojatno htjeti ponovno pokrenuti kako biste bili sigurni da će se vaše promjene zadržati, i budući da ćete se na prvom mjestu zavaravati mrežnim postavkama, snažno predlažem da to učinite na probnoj instanci i/ili izvan vršne vrijednosti sati.
Dakle, evo tri metode, od najgore do najbolje. Imajte na umu da su sve metode u ovom vodiču napisane za FreeBSD 10. Korisnici Linuxa mogu pogledati ovaj vodič .
Metoda 1: Koristite statičke postavke sučelja
U mom ograničenom testiranju, ovo rezultira nešto bržim vremenom pokretanja jer ne morate čekati da DHCP dodijeli vaše mrežne postavke. Međutim, vidio sam da se u nekoliko Vultr dokumenata spominje da je korištenje statičkih postavki sučelja zabranjeno i da biste se trebali držati DHCP-a. Pretpostavljam da imaju dobar razlog za to i stoga sam i sam nastavio koristiti DHCP. Ipak, ako se odlučite krenuti ovim putem, slijedite dolje navedene korake.
- Odredite IP vašeg poslužitelja, mrežnu masku i IP pristupnika.
- Izmijenite
/etc/rc.confda koristite ove vrijednosti umjesto DHCP.
- Ponovno pokrenite za testiranje postavki.
Odredite IP/mrežnu masku/gateway
Pod pretpostavkom da je vaše sučelje vtnet0, izvršite sljedeće:
ifconfig vtnet0 | grep inet
Ovo bi vam trebalo dati IP adresu i mrežnu masku za vaš poslužitelj:
inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255
FreeBSD voli koristiti hex za mrežnu masku. Gore se pretvara u 255.255.255.0ako ste znatiželjni. Možete naći pri ruci tablicu ovdje , ali ne bojte se: možete jednostavno kopirati hex adresu u vaše konfiguracijske datoteke (ili ga pretvoriti u decimale, ako vam je draže).
Gateway možete pronaći na više načina. evo jednog:
route get default | grep gateway vratit će nešto na sljedeći način:
gateway: 10.10.10.1
Izmijenite /etc/rc.confs novim vrijednostima
Naoružani IP-om, mrežnom maskom i pristupnikom, sada je vrijeme da ih dodate u konfiguraciju sustava. Ja čvrsto preporučujem backup datoteku prije donošenja bilo kakve promjene, jer će ga puno lakše poništiti bi ti zabrljati. Sada otvorite /etc/rc.confu uređivaču po izboru i napravite sljedeće promjene:
# Comment out this line:
# ifconfig_vtnet0="dhcp"
# Add these lines:
defaultrouter="10.10.10.1"
ifconfig_vtnet0="inet 10.10.10.10 netmask 0xffffff00"
Očito, trebali biste biti sigurni da ste moj stvarni IP, mrežnu masku i pristupnik zamijenili mojim očitim lažnjacima.
Ponovno pokrenite i testirajte
Ponovo pokrenite poslužitelj koristeći shutdown -r nowi provjerite je li se ispravno vratio. Izvršite sve testove koje smatrate potrebnima kako biste bili sigurni da sve radi ispravno. Ako je mreža nedostupna, prijavite se putem konzole i poništite svoje promjene. Ako je sve u redu, u ovom trenutku možete staviti što god želite resolv.confbez straha da će biti izbrisano.
Ako iz bilo kojeg razloga ne možete ponovno pokrenuti, ovo bi trebalo funkcionirati, ali ja bih na vašem mjestu stvarno napravio ispravno ponovno pokretanje:
service netif restart && service routing restart
Metoda 2: Učinite resolv.confnepromjenjivim
Ovo je malo hak, ali je lako najbrže rješenje. Ne preporučam ga jer ne mogu jamčiti da to neće uzrokovati neke čudnosti u budućnosti kada nadogradite na novo izdanje operativnog sustava, a dhclient će se vjerojatno mnogo žaliti. Ipak, jednostavno chflags schg /etc/resolv.confje sve što je potrebno. Datoteka je sada potpuno zaštićena od pisanja, čak i od root-a. Možete provjeriti ovako:
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.
Poništi sa: chflags noschg /etc/resolv.conf
Metoda 3: Ljubazno recite FreeBSD-u da ostavi vaše postavke na miru
Ovo je daleko najčišći i najispravniji način da se to učini. Postoje dva pristupa koja možete poduzeti:
Konfigurirati dhclient
Uzmimo primjer od vrha i recimo da sve što želite učiniti je staviti svoj prilagođeni poslužitelj imena resolv.confi ne želite ga izgubiti svaki put kada DHCP učini svoje. U mom slučaju, želim koristiti razrješavač predmemorije koji sam instalirao i koji sluša na lokalnom hostu, pa ću urediti /etc/dhclient.conf(koji će vjerojatno biti prazan osim komentara) i dodati sljedeće:
interface "vtnet0" {
supersede domain-name-servers 127.0.0.1;
}
To će omogućiti dhclientu da učini sve ostalo što trebate, ali kada mu DHCP poslužitelj pošalje popis poslužitelja imena koje će koristiti, vaš će zamijeniti (kao, potpuno zamijeniti) one koje nudi. Ako biste radije nadopunili (umjesto zamijenili) ponuđene, možete "dodati" ili "predodati" umjesto "zamijeniti", prema potrebi.
Usput, ako trebate više od jednog prilagođenog poslužitelja, navedite ih ovako:
supersede domain-name-servers 127.0.0.1, 127.0.0.2;
Nakon što izvršite izmjene, ponovno pokrenite dhclientkako bi odmah stupile na snagu:
service dhclient restart vtnet0
Pregledajte svoj /etc/resolv.confi trebali biste otkriti da sada ima vaše prilagođene poslužitelje imena u sebi.
Od ovog trenutka pisanja, poslužitelji imena jedina su stvar koju je Vultrov DHCP poslužitelj ikada stavio u moj resolv.conf, i jedina stvar koju sam želio prilagoditi. Međutim, ako ikada trebate nadjačati bilo koje druge postavke, pogledajte odličan priručnik za opsežan popis:
man 5 dhclient.conf
Na dnu su sjajni primjeri koji bi vam trebali dati ideju o tome što možete učiniti. Nepametno, mogu zamisliti da biste možda htjeli dodati nešto poput supersede domain-name "example.com";ako inače imate takvu crtu u svom resolv.conf. Opet, konzultirajte dokumente.
Konfigurirati resolvconf
Ovo je najjednostavnije rješenje ako samo želite resolv.confda vas ostave na miru. Prema priručniku:
resolvconf manages resolv.conf(5) files from multiple sources, such as DHCP and VPN clients
Njegova se konfiguracija nalazi u /etc/resolvconf.conf, što vjerojatno ne postoji na vašem sustavu, stoga ga slobodno kreirajte. Da bi vaš bio resolv.confnepromjenjiv, dodajte ovo:
# prevent all updates to resolv.conf:
resolv_conf="/dev/null"
Ako koristite unboundkao svoj lokalni razrješavač predmemorije, to je redak koji dodaje (zajedno s nekoliko za sebe). To je u osnovi zavaravanje resolvconfda mislite da /etc/resolv.confse nalazite na /dev/null. Nešto malo manje zločesto, ali jednako učinkovito, bilo bi:
# disable resolvconf from running any subscribers:
resolvconf="NO"
Ako želite učiniti nešto sofisticiranije od jednostavnog isključivanja, man stranice za resolvconfi resolvconf.confimaju puno informacija.