Làm cách nào để định cấu hình DNS tĩnh của tôi trong giao diện?


60

Tôi đang sử dụng Ubuntu 12.04.

/etc/network/interfacesTập tin của tôi bao gồm:

# The loopback network interface  
auto lo  
iface lo inet loopback  


# The primary network interface  
auto eth0 
iface eth0 inet static  
address 192.168.1.58  
gateway 192.168.1.1
network 192.168.1.0  
broadcast 192.168.1.255
dns-nameservers 66.212.63.228 66.212.48.10  

Tôi chạy lệnh: /etc/init.d/networking restart

Trả lời với:

*Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces  
*Reconfiguring network interfaces...  
RTNETLINK answers: File exists  
Failed to bring up eth0  
[ OK ]  

Tiếp theo tôi chạy ping google.com và nhận được:

ping: unknown host google.com

Tôi không chắc chắn nếu giao diện của tôi được làm mới. Làm cách nào để định cấu hình đúng mạng của tôi với các địa chỉ DNS tĩnh?


1
Khởi động lại máy tính của bạn. Không chạy /etc/init.d/networking restart. Lỗi là do tuyến đường mặc định đã tồn tại. Thiết lập này có vẻ đúng với tôi.
Matt H

2
Như Matt H nói, /etc/network/interfacesrất kén chọn những thứ đã tồn tại. Bạn có thể có một thiết lập hoàn hảo, nhưng đã có một cái gì đó ở đó, và nó sẽ phàn nàn. Nếu đó là con đường mặc định nó được phàn nàn về, bạn có thể loại bỏ nó bằng cách chạy ip route del defaultđể có được máy tính vào trạng thái nơi bạn có thể bàn giao công tác quản lý của công cụ này để/etc/network/interfaces
Azendale

Quản lý mạng đã tuyên bố một nạn nhân khác. Chỉ cần xóa rác đó.

Câu trả lời:


24

Khi người hỏi đưa ra nội dung của /etc/network/interfacestôi, tôi suy luận rằng anh ta đang sử dụng ifup để cấu hình các giao diện. Nhưng vì anh ấy thực sự có thể đang sử dụng NetworkManager, tôi cũng sẽ thảo luận về điều đó.

Nếu bạn đang sử dụng ifup thì cài đặt DNS đi vào /etc/network/interfaces. Đối với mỗi giao diện, bạn thêm dns-*các tùy chọn phù hợp cho (các) máy chủ tên có sẵn trên giao diện đó. Ví dụ: nếu một máy chủ tên tại địa chỉ 1.2.3.4 có sẵn trên giao diện eth0, thì hãy thêm dns-nameservers 1.2.3.4vào khổ iface eth0thơ.

Nếu bạn đang sử dụng Trình quản lý mạng thì cài đặt được nhập vào Trình chỉnh sửa kết nối (chỉ báo mạng | Chỉnh sửa kết nối ...) trong tab Cài đặt IPv4.

Làm /etc/init.d/networking restartđể cấu hình lại các giao diện bị phản đối. Nếu bạn đang sử dụng ifupthì trước tiên ifdownmỗi giao diện mạng hoạt động, sau đó ifupmỗi giao diện. Nếu bạn đang sử dụng NetworkManager thì trước tiên, hãy tắt kết nối mạng bằng chỉ báo (trên cùng của màn hình nền); sau đó mở một thiết bị đầu cuối và chạy

sudo /etc/init.d/network-manager restart

và sau đó kích hoạt kết nối mạng bằng cách sử dụng chỉ báo.

Hoặc bạn chỉ có thể khởi động lại.

Về thực tế /etc/init.d/networking restartdẫn đến

RTNETLINK answers: File exists
Failed to bring up eth0  

Điều này có nghĩa là ifupdown nghĩ rằng eth0đã lên. Sử dụng ifdown --force eth0để gây ra ifupdownviệc ngừng tin rằng nó đã được cấu hình giao diện.

Liên quan đến thông báo "không dùng nữa", thông báo này không còn được in trong Ubuntu 12.10 nhưng bạn vẫn nên lưu ý rằng các bản inits "đang trên đường ra". Để khởi động lại một dịch vụ foo, sử dụng service foo restarthoặc restart foo. Cũng lưu ý rằng nếu bạn muốn cấu hình lại các giao diện của mình, tốt hơn là nên tắt từng cái một hơn là dựa vào việc khởi động lại "mạng".


17

Nếu không có cách nào ở trên hoạt động, hãy lưu ý rằng Ubuntu sẽ thêm một tailtệp vào tệp decv.conf mà nó tạo ra.

Thử đi:

sudo nano /etc/resolvconf/resolv.conf.d/tail

Cái nào sẽ mở một tập tin giải quyết trống trong trình soạn thảo văn bản nano. Bạn sẽ cần đặt địa chỉ máy chủ DNS của mình trên dòng đầu tiên của tệp này và nhớ kết thúc dòng bằng trả về vận chuyển (nhấn enter) như được thấy dưới đây:

nameserver 10.20.1.2

Chỉnh sửa tệp đuôi thay vì tệp độ phân giải thực tế sẽ ngăn thay đổi của bạn bị mất khi khởi động lại hệ thống.

Bạn sẽ cần phải chạy sudo resolvconf -uđể kích hoạt thay đổi. Bạn sẽ có thể ping google.com sau này. Chúc may mắn!


Nghe có vẻ hay, nhưng hệ thống Ubuntu 14.04 của tôi đã không sử dụng tệp đuôi này. Vì vậy, đây không phải là một giải pháp trong trường hợp của tôi. Cảm ơn mặc dù.
James T Snell

11

Phiên bản dòng lệnh:

Bạn nên thêm (các) máy chủ tên của mình để /etc/resolvconf/resolv.conf.d/basenộp theo cách này:

nameserver 66.212.63.228 
nameserver 66.212.48.10

Tôi sẽ phải thử phương pháp này trong một vài giờ và lấy lại cho bạn. Bạn có biết tại sao tôi nhận được tin nhắn không dùng nữa và không gửi được tin nhắn eth0 không?
d dotquad

1
Bạn có thể sử dụng điều này: $ ifdown eth0 && ifup eth0Đọc thêm về vấn đề này ở đây .
pl1nk

1
@diatedquad bạn thay đổi tập tin / etc / network / giao diện nào thành cái này: auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.58 gateway 192.168.1.1 network 192.168.1.0 broadcast 192.168.1.255Hãy cẩn thận rằng đây auto eth0 iface eth0 inet staticlà : hai dòng
pl1nk

1
Tốt hơn là thêm thông tin máy chủ tên vào các kết nối NetworkManager (nếu bạn đang sử dụng NetworkManager) như được mô tả bởi bodhi.zazen hoặc định nghĩa giao diện trong / etc / network / giao diện (nếu bạn đang sử dụng ifup) hơn là thêm thông tin tĩnh và toàn cầu đến /etc/resolvconf/resolv.conf.d/base.
jdthood

1
@jdthood Dường như bạn đã thấy những bình luận của tôi và câu hỏi cũng như những câu trả lời khác! Một số bình luận lên [..] "Bạn có thể sử dụng điều này: $ ifdown eth0 && ifup eth0" [..]
pl1nk

11

Tất cả các câu trả lời liên quan đến / etc / mạng / giao diện trạng thái không chính xác dns-nameserversthay vì dns-nameserver- bên dưới sẽ hoạt động:

auto wlan0
iface wlan0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 8.8.8.8
dns-nameserver 8.8.4.4
dns-search something.network.com

(đã thử nghiệm trên Ubuntu 15.04)


8
Cẩn thận. Tôi chỉ xác nhận rằng dns-nameserver(số ít) không hoạt động trên RaspberryPi + Raspian Jesse. Tôi thấy rằng tôi phải sử dụng dns-nameservers(số nhiều). YMMV và tất cả những thứ đó, chỉ cố gắng giúp đỡ người tiếp theo ...
evadeflow

2
Kiểm tra trang man độ phân giải (8) của bạn để biết cách sử dụng và các tùy chọn. Trên Ubuntu 16.04.3 LTS, nó cho biết bạn sử dụng một hoặc nhiều dòng máy chủ tên dns với một địa chỉ IP trên mỗi dòng hoặc bạn có thể sử dụng máy chủ tên dns và danh sách địa chỉ IP được phân tách bằng dấu cách.
jla

dns-nameserverhay dns-nameservers? bởi vì wiki.ubfox.com/KvmWithBridge nói "máy chủ" ...
Thufir

Chắc chắn không làm việc cho tôi. Không thể bỏ phiếu xuống, chưa đủ điểm.

Yey, điều này là tốt đẹp và nhất quán sau đó! Xin lỗi vì sự nhầm lẫn, hãy kiểm tra cả hai và kiểm tra các nhận xét trên vì có vẻ như các biến thể Ubuntu / Debian / Raspian khác nhau.
babelmonk

6

Phương pháp dễ nhất để định cấu hình máy chủ DNS của bạn là sử dụng NetworkManager

Trong IPv4, điền vào (các) máy chủ dns của bạn

nhập mô tả hình ảnh ở đây


2
Tôi quên đề cập rằng tôi không có sự thống nhất hoặc gnome được cài đặt. Gnome installatio là dự án tiếp theo của tôi.
d dotquad

Nó sẽ không cho phép tôi lưu nó xuống. tại sao có thể như vậy
Josh

4

Tôi đã có thể giải quyết vấn đề này khi cài đặt máy chủ Ubuntu không đầu bằng cách thêm

nameserver 8.8.8.8

... sau các công cụ giao diện có liên quan trong / etc / mạng / giao diện:

auto wlan0
iface wlan0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
dns-nameservers 8.8.4.4

Hy vọng điều này sẽ giúp người dùng sau này!


cho dns-nameserversbạn có thể dấu phẩy tách 8.8.8.8, 8.8.4.4?
Thufir


4

Lưu ý: cẩn thận sử dụng mà không cần truy cập trực tiếp vào máy, điều này sẽ cắt kết nối ...

tôi sử dụng

sudo ifdown eth0

sau đó

sudo ifup eth0

Nó sẽ thiết lập lại và phát hành mọi thứ ...

Nếu nó gặp phải các lỗi liên quan đến cấu hình, bạn có thể sử dụng:

sudo ifdown eth0 --force

3

Điều này làm việc cho tôi

sudo vi /etc/resolvconf/resolv.conf.d/base

và thêm:

nameserver <add your router ip>

Chạy:

sudo resolvconf -u

Tôi sử dụng cài đặt lõi của máy chủ Ubuntu.


2

Bạn đang thiếu một đặc tả mạng con trong tệp giao diện.

Thêm netmask 255.255.255.0vào /etc/network/interfacesbên dưới dòng mạng.


1

Đối với một số lý do dns-nameserverstuyên bố không có gì trong trường hợp của tôi. Và các câu trả lời khác không phải bởi cuốn sách, vì chúng bỏ qua dnsmasqvì nó được sử dụng trong Ubuntu.

Để làm điều này đúng, chỉnh sửa /etc/dnsmasq.conf

Thêm máy chủ tên của bạn vào dưới cùng của tệp:

server=8.8.8.8
server=8.8.4.4

Khởi động lại dnsmasq để sử dụng các cài đặt mới: sudo service dnsmasq restart

Tín dụng: https://unix.stackexchange.com/a/163506/187949


1

Tôi đã có vấn đề này. Tôi nghĩ rằng tôi đang phát điên. Mỗi lần tôi chỉnh sửa /etc/resolv.conf, nó lại xóa cấu hình của tôi. Hóa ra một số người mất trí hoàn toàn đã phân phối debian với trình quản lý mạng, ghi đè tất cả các cài đặt mạng của tôi.

Đây là cách tôi sửa nó:

1) sudo apt-get purge network-manager

Điều này được loại bỏ công cụ mới khủng khiếp này ngăn tất cả các cấu hình hoạt động đúng.

2) Chỉnh sửa /etc/network/interfacestập tin:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto enp0s25
iface enp0s25 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        gateway 192.168.1.1

3) Chỉnh sửa /etc/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4

4) Khởi động lại.

Xin chúc mừng, bây giờ bạn có cấu hình sane hoạt động trở lại.


0

Bạn cũng có thể định cấu hình giao diện đó trong một tệp khác, vì bạn có nhiều cổng hơn.

Chi tiết tại đây .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.