Trên OS X có thể ghi đè các máy chủ DNS được gán DHCP nhưng vẫn giữ chúng để dự phòng không?


9

Theo mặc định, tôi muốn sử dụng các máy chủ DNS công cộng của google và dự phòng cho các máy chủ mạng nội bộ khi chúng không thành công.

Điều này có thể không? ... Tôi đang tìm kiếm một thiết lập sẽ không bị hỏng khi tôi di chuyển máy tính xách tay của mình không có mạng nào khác.

Có thể chấp nhận được nếu tôi tìm thấy giải pháp cụ thể cho kết nối mạng wifi này (chỉ thực hiện thủ thuật trong trường hợp này và sử dụng mặc định cho người khác).


"Khi các máy chủ DNS công cộng của Google bị lỗi" nghĩa là gì? Có rất nhiều cách để kịch bản thay đổi vị trí mạng và / hoặc đơn giản là kịch bản nhập vào DNS khác nhau, nhưng không rõ bạn sẽ kiểm tra lỗi của DNS DNS như thế nào. Tồi tệ hơn, bình luận bên dưới về VPN sẽ làm phức tạp thêm mọi thứ nếu bạn thêm nó vào hỗn hợp yêu cầu của bạn.
bmike

Tôi ngạc nhiên điều này là không thể. Đôi khi tôi có các máy chủ DNS được cung cấp cho tôi qua DHCP không thành công nên tôi sử dụng các máy chủ Google. Tuy nhiên, hiện tại tôi không thể sử dụng bất kỳ mạng nào sử dụng DNS để triển khai cổng bị khóa. Nếu tôi có thể có các máy chủ được cung cấp DHCP làm bản sao lưu thì nó sẽ giải quyết điều này. Bạn đã tìm thấy một giải pháp?
Jake

Câu trả lời:


4

Bạn có thể sử dụng ipconfig getpacketđể tìm máy chủ DNS mà DHCP khuyên dùng:

$ ipconfig getpacket en0 
...
domain_name_server (ip_mult): {192.168.3.2, 192.168.42.1}
...

Vì vậy, giả sử bạn đang sử dụng Wi-Fibộ chuyển đổi và thiết bị của nó en0, bạn có thể:

#!/bin/bash

default_servers=$( ipconfig getpacket en0 | \
   perl -ne'/domain_name_server.*: \{(.*)}/ && print join " ", split /,\s*/, $1' )
networksetup -setdnsservers Wi-Fi 127.0.0.1 $default_servers

2

Có, bạn có thể thêm các máy chủ DNS của Google ở ​​đầu danh sách và theo dõi các máy chủ đó bằng máy chủ của riêng bạn (máy chủ mạng nội bộ).

  • Chuyển đến Tùy chọn hệ thống> Mạng
  • Chọn giao diện mạng của bạn từ danh sách bên trái
  • Nhấp vào nút Nâng cao ở bên phải
  • Trong tab DNS của hộp thoại, nhấp vào "+" để thêm hoặc "-" để xóa các mục nhập (bạn cũng có thể chỉnh sửa các mục bằng cách nhấp đúp hoặc chọn và nhấp vào địa chỉ)
  • Thêm địa chỉ DNS của Google làm hai mục nhập đầu tiên
  • Thêm máy chủ DNS mạng nội bộ của bạn bên dưới những máy chủ DNS
  • Nhấn vào OK
  • Nhấp vào Áp dụng
  • Đóng tùy chọn hệ thống

1
Tôi biết điều này, nhưng vấn đề là điều này khiến tôi không thể sử dụng cùng một VPN từ một vị trí khác. Nó phải là một giải pháp khác, có thể là thứ gì đó để cấu hình trong máy chủ VPN (PPTP) hoặc định cấu hình DNS với địa chỉ 127.0.0.1 và định cấu hình DNS cục bộ vẫn sử dụng máy chủ DNS do DHCP cung cấp.
sorin

1

Cũng có một cách để làm điều này từ dòng lệnh nếu bạn là quản trị viên mạng đang tìm cách thực hiện việc này trong một đợt:

networksetup listallnetworkservices
# look for the correct network device here, probably "Wi-Fi"
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

Thay thế "Wi-Fi" bằng thiết bị mạng chính xác. Thay vào đó, bạn có thể muốn sử dụng:

device=`networksetup listallnetworkservices | grep Wi-Fi`
sudo networksetup -setdnsservers "$device" 8.8.8.8 8.8.4.4

1

Tôi đang cố gắng làm điều tương tự. Tôi sẽ tự chạy một máy chủ bộ nhớ đệm cục bộ và để nó học mạng nội bộ khi tôi tham gia.

Tôi rất vui vì máy chủ dns thậm chí có thể phân biệt giữa tên máy chủ mạng nội bộ và tên máy chủ internet trước khi thực hiện cuộc gọi đệ quy.

Tôi lo lắng rằng tôi sẽ cần các TTL ngắn hoặc cần phải viết các hook để mỗi khi thay đổi giao diện, tôi xem xét việc xóa bộ đệm dns hoặc tương tự.

Tôi sẽ báo cáo lại nếu thành công ...

50% đầu tiên

Sau khi xem so sánh Wikipedia về các máy chủ DNS , Dnsmasq đứng đầu danh sách của tôi.

Hóa ra brewcó một forumla cho dnsmasq, và nó thậm chí còn có một số servicesgiao diện phụ được viết cho brew... tuyệt vời, ít phải suy nghĩ, chỉ cần làm việc với cấu hình.

$ brew install dnsmasq  # [libidn] internation domain names
$ cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
# To have launchd start dnsmasq now and restart at startup:
$ sudo brew services start dnsmasq 

( brewcũng có bind, nhưng trạng thái tối thiểu cũng hấp dẫn tôi - không phải xóa nó khi thực hiện cấu hình mạng).

Làm

  • Tìm hiểu cấu hình Tùy chọn mạng để sử dụng dns mới của tôi và
  • Cấu hình dnsmasqđể đảm bảo nó có thể sử dụng cài đặt mạng nội bộ. (thử thách thực sự)
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.