Câu trả lời:
Nó phụ thuộc. Xin vui lòng đọc đến cuối.
Nếu bạn chưa cài đặt gói độ phân giải , thì thật dễ dàng: sau khi thay đổi nó theo cách bạn muốn, hãy đưa ra lệnh
sudo chattr +i /etc/resolv.conf
Lệnh thay đổi các thuộc tính tệp, làm cho nó immutable
(tùy chọn + i).
Tuy nhiên, nếu bạn đã cài đặt gói độ phân giải gói, tệp /etc/resolv.conf có thể được chuyển đổi thành một liên kết tượng trưng,
# file /etc/resolv.conf
/etc/resolv.conf: symbolic link to `../run/resolvconf/resolv.conf'
đó là một tập tin trên một hệ thống tập tin ảo, bản tóm tắt của một phiên bản không cố định. Điều buồn cười là bạn có thể không biết mình đã cài đặt độ phân giải, bởi vì các phiên bản gần đây của các hệ điều hành giống như Debian đi kèm với nó được cài đặt sẵn. Bạn có thể thiết lập xem distro của bạn đã cài đặt nó cho bạn hay chưa bằng cách ban hành lệnh:
#whereis resolvconf
resolvconf: /sbin/resolvconf /etc/resolvconf /lib/resolvconf /usr/share/man/man8/resolvconf.8.gz
Thậm chí quan trọng nhất, bạn có thể thiết lập xem liệu bạn /etc/resolv.conf
đã được chuyển đổi thành một liên kết bằng lệnh (file /etc/resolv.conf) ở trên chưa. Nếu câu trả lời là ASCII text
, hãy sử dụng chattr
, nếu không ...
Nếu bạn sử dụng IP tĩnh, điều đơn giản nhất là thêm dòng sau (hoặc một số thứ như vậy)
dns-nameservers 8.8.4.4 8.8.8.8
đến khổ thơ xác định các thuộc tính của giao diện tĩnh của bạn trong / etc / mạng / giao diện.
Thay vào đó, nếu bạn đang ở trên một máy tính xách tay kết nối mọi lúc với các mạng khác nhau, bạn có thể làm theo LawrenceC
gợi ý tuyệt vời của mình. Nhưng, nếu bạn có độ phân giải trên hệ thống của mình, cách chính xác (và đơn giản nhất) để cung cấp cho một bộ DNS cố định là sử dụng các tệp trong /etc/resolvconf/resolv.conf.d . Cụ thể, các tệp sau được sử dụng (xem trang của Stephane Graber ):
cơ sở : Được sử dụng khi không tìm thấy dữ liệu nào khác
head : Được sử dụng cho tiêu đề của decv.conf, có thể được sử dụng để đảm bảo máy chủ DNS luôn là máy chủ đầu tiên trong danh sách
đuôi : Bất kỳ mục nhập nào trong đuôi được nối vào cuối độ phân giải kết quả.
Vì vậy, đặt bạn yêu thích máy chủ tên trong đầu , như sau
nameserver 8.8.8.8
và bạn đã hoàn thành.
LawrenceC
, đó là tên dưới đây.
/etc/resolvconf/
không tồn tại theo mặc định trên Ubuntu 18.04.
Thêm một dòng tương tự để /etc/dhcp/dhclient.conf
sử dụng một thiết bị đầu cuối gốc:
supersede domain-name-servers 74.122.198.48, 50.116.23.211;
Điều này gây ra dhclient
, chương trình đưa ra yêu cầu DHCP và thực hiện thay đổi theo những gì phản hồi đã nói với nó, để thay thế thông tin nhận được từ máy chủ DHCP bằng cách trên trước khi thực hiện thay đổi.
Trên đây là hai máy chủ DNS OpenNIC. Thay thế khi cần thiết cho bất kỳ máy chủ nào bạn muốn sử dụng.
Vì điều này xảy ra bất cứ khi nào bạn nhận được thông tin cấu hình từ DHCP, vì vậy hãy sử dụng dhclient -v eth0
hoặc bất kỳ giao diện nào để làm mới nó và xem sự thay đổi.
prepend domain-name-servers 8.8.8.8
chẳng hạn. Điều này sẽ sử dụng DNS của ISP khi có sẵn.
Có vẻ như @Rik đã đề cập rằng lý do thay thế DNS khi khởi động lại là do trình quản lý / tiện ích mạng được đặt như vậy. Trong Linux Mint, theo ảnh chụp màn hình, tôi chỉ cài đặt phương thức IPv4 thành địa chỉ Tự động (DHCP). Sau đó, bạn có thể nhập các cài đặt chính xác trong /etc/resolv.conf hoặc tại phần máy chủ DNS. Tôi nhớ trong Ubuntu 13.04, các máy chủ tên của tôi đã thay đổi một vài lần trong một khoảng thời gian dài, nhưng sau khi tôi thực sự đi và chỉnh sửa chúng trong GUI, tất cả dường như ổn định từ đó trở đi.
Có cùng một vấn đề, nhưng tôi sử dụng địa chỉ IP tĩnh. Cách khắc phục chỉ là thêm dns trong / etc / network / interface
iface eth0 inet static
address [your ip>
netmask [your netmask]
network [your network]
broadcast [your broadcast]
gateway [your gateway]
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers [dns server1] [dns server2]
dns-search [your domain]
/etc/network/interfaces
. Nắm bắt tốt!
Nếu bạn đã sử dụng wicd, nhấp chuột phải vào biểu tượng và nhấp vào thông tin kết nối. Khi cửa sổ mở ra, nhấp vào thuộc tính của cái bạn được kết nối.
Kiểm tra sử dụng DNS tĩnh và trong dòng cho biết máy chủ DNS loại 1 trong IP cho Google DNS 8.8.8.8
và trong dòng cho máy chủ DNS loại 2, 8.8.4.4
sau đó nhấp vào "ok".
Nếu bạn nhận được lỗi từ mặc định, bạn có thể liên hệ với ISP của bạn và đề cập với họ. Họ thường chỉ định máy chủ DNS cho modem của bạn khi bạn kết nối với chúng.
Tấn công theo cách của bạn bằng chattr +i
hoặc tương tự là cách giải quyết nhanh nhất và nên tránh bất cứ khi nào có thể (ít nhất là về lâu dài - như đã nói, đó là một công việc ngắn hạn cho đến khi tìm thấy thời gian cho giải pháp thực sự) . Như đã chỉ ra, đây là một công việc cho NetworkManager, cung cấp CLI mà chúng ta có thể sử dụng cho điều đó:
# tìm giao diện nào để điều chỉnh thiết bị nmcli # đầu ra trông như: # KẾT NỐI THIẾT BỊ NHÀ NƯỚC # enp0s3 ethernet kết nối văn phòng của tôi # lo loopback không được quản lý - # Từ đó, chúng ta cần KẾT NỐI. # Bây giờ thêm "miền tìm kiếm" của chúng tôi: kết nối nmcli sửa đổi ipv4.dns-search example1.com của tôi nmcli con mod my-office + ipv4.dns-search example2.com # Và máy chủ tên của chúng tôi: nmcli con sửa đổi ipv4.dns văn phòng của tôi 213.73.91.35 nmcli con sửa đổi văn phòng của tôi + ipv4.dns 87.118.100.175 # lưu ý "+" trong dòng thứ hai: thêm một dòng khác, # trong khi dòng đầu tiên ghi đè lên mục hiện có. # chúng tôi có thể thực hiện điều đó với một cuộc gọi duy nhất: nmcli con sửa đổi ipv4.dns văn phòng của tôi "213.73.91.35 87.118.100.175" # OK, vì vậy bây giờ hãy bảo nó bỏ qua các bản cập nhật từ máy chủ DHCP: nmcli con sửa đổi ipv4.ignore-auto-dns của tôi # và áp dụng các sửa đổi cho cấu hình đang chạy của chúng tôi nmcli con lên văn phòng của tôi
Nếu bạn sử dụng một địa chỉ IP tĩnh, bạn cũng có thể sử dụng giải pháp từ câu trả lời của kanelbolle .
Thật đáng ngạc nhiên khi vấn đề nhỏ này có thể gây ra, khi các giải pháp được đưa ra cho nó không còn hoạt động trên Ubunutu 18.04.
Điều làm việc cho tôi là chỉ đơn giản ghi đè lên nameserver
giá trị trong /etc/resolv.conf
mỗi lần khởi động. sudo
chỉnh sửa /etc/rc.local
và thêm dòng này:
sed -i "s/nameserver 127.0.0.53/nameserver 8.8.8.8/" /etc/resolv.confsudo /etc/rc.local
NetworkManager
(giống như được nêu trên dòng đầu tiên). Tập tin này được tạo lại trên mỗi lần khởi động bởiNetworkManager
. Nó phụ thuộc vào bản phân phối linux của bạn (mà bạn không đề cập đến) làm thế nào để truy cập cái nàyNetworkManager
.