Metoda 1: Përdorni cilësimet statike të ndërfaqes
Metoda 2: Bëni resolv.conf të pandryshueshme
Metoda 3: Thuaji me mirësjellje FreeBSD që të lërë të qetë cilësimet e tua
Nëse po përdorni zgjidhësin tuaj ose dëshironi të përdorni një nga një ofrues i palës së tretë, mund të zbuloni se /etc/resolv.confskedari juaj është duke u mbishkruar nga DHCP. Ka një sërë mënyrash për të zgjidhur këtë problem. Meqenëse ka të ngjarë të dëshironi të rindizni për t'u siguruar që ndryshimet tuaja do të qëndrojnë dhe duke qenë se në radhë të parë do të ngurroni me cilësimet e rrjetit, unë sugjeroj fuqimisht ta bëni këtë në një shembull testimi dhe/ose jashtë pikut orë.
Tani, atëherë, këtu janë tre metoda, nga më e keqja tek më e mira. Vini re se të gjitha metodat në këtë udhëzues janë shkruar për FreeBSD 10. Përdoruesit e Linux mund t'i referohen këtij udhëzuesi .
Metoda 1: Përdorni cilësimet statike të ndërfaqes
Në testimin tim të kufizuar, kjo rezulton në kohë të nisjes pak më të shpejta pasi nuk duhet të prisni që DHCP të caktojë cilësimet e rrjetit tuaj. Sidoqoftë, kam parë të përmendet në disa dokumente të Vultr se përdorimi i cilësimeve të ndërfaqes statike është i neveritshëm dhe se duhet t'i përmbaheni DHCP. Unë supozoj se ata kanë një arsye të mirë për këtë dhe kështu kam vazhduar të përdor vetë DHCP. Sidoqoftë, nëse vendosni të shkoni në këtë rrugë, ndiqni hapat e mëposhtëm.
- Përcaktoni IP-në e serverit tuaj, maskën e rrjetit dhe IP-në e portës.
- Modifiko
/etc/rc.confpër të përdorur këto vlera në vend të DHCP.
- Rinisni për të testuar cilësimet.
Përcaktoni IP / maskë rrjeti / portë
Duke supozuar se ndërfaqja juaj është vtnet0, kryeni sa vijon:
ifconfig vtnet0 | grep inet
Kjo duhet t'ju marrë adresën IP dhe maskën e rrjetit për serverin tuaj:
inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255
FreeBSD pëlqen të përdorë hex për maskën e rrjetit. E mësipërme konvertohet në 255.255.255.0nëse jeni kurioz. Ju mund të gjeni një tabelë dobishëm këtu , por mos kini frikë: ju vetëm mund të kopjoni adresën magji në dosjet tuaja config (apo kthyer atë në decimal, nëse ju preferoni).
Ju mund ta gjeni portën në disa mënyra. Këtu është një:
route get default | grep gateway do të kthejë diçka në vijat e:
gateway: 10.10.10.1
Modifiko /etc/rc.confme vlera të reja
Të armatosur me IP, maskë rrjeti dhe portë, tani është koha për t'i shtuar ato në konfigurimin e sistemit. Unë rekomandoj fuqimisht të bëni kopje rezervë të këtij skedari përpara se të bëni ndonjë ndryshim, pasi do ta bëjë shumë më të lehtë zhbërjen e tij nëse ngatërroni. Tani hapuni /etc/rc.confnë redaktorin tuaj të zgjedhur dhe bëni ndryshimet e mëposhtme:
# Comment out this line:
# ifconfig_vtnet0="dhcp"
# Add these lines:
defaultrouter="10.10.10.1"
ifconfig_vtnet0="inet 10.10.10.10 netmask 0xffffff00"
Natyrisht, duhet të jeni të sigurt që të zëvendësoni IP-në, maskën e rrjetit dhe portën tuaj aktuale për falsifikimet e mia të dukshme.
Rinisni dhe provoni
Rinisni serverin tuaj duke përdorur shutdown -r nowdhe sigurohuni që ai të rikthehet siç duhet. Kryeni çfarëdo testi që ju i gjykoni të nevojshme për t'u siguruar që gjithçka po funksionon siç duhet. Nëse rrjeti është i paarritshëm, identifikohuni përmes konsolës dhe ktheni ndryshimet tuaja. Nëse gjithçka është në rregull, në këtë pikë mund të vendosni gjithçka që dëshironi resolv.confpa frikë se do të fshihet.
Nëse për çfarëdo arsye nuk mund të rindizni, kjo duhet të funksionojë, por unë me të vërtetë do të bëja një rindezje të duhur nëse do të isha në vendin tuaj:
service netif restart && service routing restart
Metoda 2: Bëni të resolv.confpandryshueshme
Kjo është pak hak, por është lehtësisht zgjidhja më e shpejtë. Nuk e rekomandoj sepse nuk mund të garantoj se kjo nuk do të shkaktojë ndonjë çuditshmëri në të ardhmen kur të përmirësoni në një version të ri të sistemit operativ dhe dhclient ka të ngjarë të ankohet shumë. Thënë kjo, një gjë e thjeshtë chflags schg /etc/resolv.confështë gjithçka që nevojitet. Skedari tani është plotësisht i mbrojtur nga shkrimi, madje edhe nga root. Ju mund të verifikoni kështu:
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.
Zhbëj me: chflags noschg /etc/resolv.conf
Metoda 3: Thuaji me mirësjellje FreeBSD që të lërë të qetë cilësimet e tua
Kjo është deri tani mënyra më e pastër, më e përshtatshme për ta bërë këtë. Ka dy qasje që mund të merrni:
Konfiguro dhclient
Le të marrim shembullin nga lart, dhe të themi se gjithçka që dëshironi të bëni është të vendosni serverin tuaj të personalizuar të emrave resolv.confdhe të mos dëshironi ta humbni sa herë që DHCP bën gjënë e tij. Në rastin tim, unë dua të përdor zgjidhësin e memorizimit që kam instaluar që dëgjon në localhost, kështu që e modifikoj /etc/dhclient.conf(i cili ka të ngjarë të jetë bosh përveç komenteve) dhe shtoj sa vijon:
interface "vtnet0" {
supersede domain-name-servers 127.0.0.1;
}
Kjo do t'i lejojë dhclient të bëjë gjithçka tjetër që ju nevojitet për të bërë, por kur serveri DHCP i dërgon atij një listë të serverëve të emrave për t'u përdorur, i juaji do të zëvendësojë (si në, zëvendëson plotësisht) ata që ofron. Nëse preferoni të plotësoni (në vend që të zëvendësoni) ato që ofrohen, mund të "shtoni" ose "prependoni" në vend të "zëvendësoni", sipas rastit.
Rastësisht, nëse keni nevojë për më shumë se një server me porosi, specifikoni ato si kjo:
supersede domain-name-servers 127.0.0.1, 127.0.0.2;
Pasi të keni bërë ndryshimet tuaja, rinisni dhclientqë ato të hyjnë në fuqi menjëherë:
service dhclient restart vtnet0
Ekzaminoni tuajin /etc/resolv.confdhe do të gjeni se tani ka server(ët) e personalizuar të emrave në të.
Që nga momenti i shkrimit të këtij shkrimi, serverët e emrave janë e vetmja gjë që serveri DHCP i Vultr ka vendosur ndonjëherë në timin tim resolv.conf, dhe e vetmja gjë që jam kujdesur të personalizoj. Megjithatë, nëse ndonjëherë duhet të anashkaloni ndonjë cilësim tjetër, konsultohuni me manualin e shkëlqyer për një listë gjithëpërfshirëse:
man 5 dhclient.conf
Ka shembuj të shkëlqyer në fund që duhet t'ju japin një ide se çfarë mund të bëni. Nga maja e kokës sime, mund të imagjinoj se mund të dëshironi të shtoni diçka të tillë supersede domain-name "example.com";nëse normalisht keni një linjë të tillë në tuajin tuaj resolv.conf. Përsëri, konsultohuni me dokumentet.
Konfiguro resolvconf
Kjo është zgjidhja më e thjeshtë nëse dëshironi resolv.confqë të mbeteni vetëm. Sipas manualit:
resolvconf manages resolv.conf(5) files from multiple sources, such as DHCP and VPN clients
Konfigurimi i tij ndodhet në /etc/resolvconf.conf, i cili ka të ngjarë të mos ekzistojë në sistemin tuaj, kështu që mos ngurroni ta krijoni atë. Për ta bërë të resolv.confpandryshueshme, shtoni këtë:
# prevent all updates to resolv.conf:
resolv_conf="/dev/null"
Nëse e përdorni unboundsi zgjidhësin tuaj lokal të memories, kjo është linja që shton (së bashku me disa për vete). Kjo është në thelb mashtrimi resolvconfpër të menduar se /etc/resolv.confndodhet në /dev/null. Diçka pak më pak e keqe, por po aq efektive, do të ishte:
# disable resolvconf from running any subscribers:
resolvconf="NO"
Nëse doni të bëni diçka më të sofistikuar sesa thjesht ta çaktivizoni atë, njeriu kërkon resolvconfdhe resolvconf.confka shumë informacione.