Có cách nào để sử dụng DNS cụ thể cho một tên miền cụ thể không?


29

Trong công việc, chúng tôi sử dụng OpenDNS và nó đã chặn sai irc.freenode.net cho phần mềm độc hại. Làm cách nào tôi có thể đảm bảo rằng mọi yêu cầu cho * .freenode.net sẽ chuyển đến 8.8.8.8 và 8.8.4.4 (DNS của Google).

Tôi đã thử làm điều này bằng cách thay đổi độ phân giải trên Ubuntu, nhưng tôi không thể đi quá xa. Ngoài ra, có một cách dễ dàng để làm điều này cho các hệ thống Mac và Windows (Tôi có một vài đồng nghiệp sử dụng các HĐH đó và họ cũng muốn sử dụng IRC).


4
Hãy cẩn thận - cố gắng vượt qua các kiểm soát an ninh có thể khiến một người bị hộ tống ra khỏi một số công ty. Ngoài ra, có thể các máy chủ DNS khác bị chặn.
uSlackr

Câu trả lời:


15

Linux không hỗ trợ việc sử dụng các máy chủ DNS dành riêng cho tên miền thông qua resolv.conf. Bạn có khả năng có thể giải quyết vấn đề này bằng cách chạy một máy chủ tên bộ đệm (chẳng hạn như BINDhoặc dnsmasq) cục bộ và sau đó định cấu hình chuyển tiếp rõ ràng cho mỗi tên miền.

Trong OS X, loại cài đặt này tương đối dễ sử dụng scutillệnh. Trường hợp sử dụng phổ biến cho cấu hình này là chuyển tiếp các yêu cầu DNS cho kết nối VPN đến các máy chủ DNS dành riêng cho VPN, vì vậy bạn sẽ thấy điều này được thảo luận thường xuyên trong buổi hòa nhạc với, ví dụ, OpenVPN. Tài liệu này nói về scutillệnh cũng như điều này và tìm kiếm Google openvpnscutilsẽ mang lại nhiều kết quả hơn.

Tôi không chắc chắn về Windows. Bạn có thể sử dụng giải pháp máy chủ DNS cục bộ cho cả ba nền tảng nếu bạn cần.


1
Điều này vẫn còn đúng systemd-resolvedtrên thế giới? (Có, tôi nhận ra câu trả lời của bạn là 7 tuổi)
Pointy

35

Điều này không thể được thực hiện với độ phân giải DNS tiêu chuẩn được cung cấp bởi * nix (và Windows AFAIK), bạn cần máy chủ DNS của riêng bạn để thực hiện việc này. Trên * nix dnsmasq là lựa chọn tốt nhất cho việc này và bạn có thể chạy nó trên mọi máy trạm hoặc chạy trên máy chủ và định cấu hình tất cả các máy trạm để sử dụng.

/etc/resolv.conf:

nameserver 127.0.0.1
nameserver 208.67.222.222
nameserver 208.67.220.220

/etc/dnsmasq.conf:

server=/freenode.net/8.8.8.8
server=/freenode.net/8.8.4.4

2
Điều này hoàn toàn có thể được thực hiện bằng cách sử dụng độ phân giải DNS tiêu chuẩn được cung cấp bởi một số hệ điều hành. Không phải bởi Linux.
larsks

Để kiểm soát giao diện nào sẽ sử dụng, tôi đã thêm @vpn0 vào cuối máy chủ DNS. Điều này có thể hữu ích để chỉ sử dụng khi VPN hoạt động.
Alex


5

Tôi đã làm điều này trên Fedora bằng cách cài đặt một máy chủ DNS cục bộ.

liên kết cài đặt đầu tiên:

sudo dnf install bind

bước 1: nối một dòng vào /etc/named.conf(với quyền root):

include "/etc/named/freenode.net.conf";

Bước 2: tạo tệp vùng /etc/named/freenode.net.conf(dưới dạng root):

zone "freenode.net" {
    type forward;
    forwarders { 8.8.8.8; };
};

bây giờ khởi động lại có tên:

sudo service named restart

bây giờ cấu hình lại các cài đặt lan của bạn để sử dụng 127.0.0.1 làm máy chủ DNS, thay vì các máy chủ được phân bổ DCHP.


3

Có thể sử dụng firejail tùy chọn --dns cho việc này. Ví dụ:

firejail --dns=8.8.8.8 firefox

Cách này có thể đặt máy chủ dns cho mỗi ứng dụng thay vì mỗi tên miền. Vì vậy, nó có thể là một giải pháp tốt hơn trong một số trường hợp.


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.