Vì một số lý do, tôi không thể làm cho điều này hoạt động một cách đáng tin cậy theo cách tôi muốn, trên cả Linux và Windows và thậm chí trên các máy khác nhau chạy cùng một hệ điều hành.
Giả sử tôi có một máy cục bộ đang chạy trên 192.168.1.66
và IP công khai của tôi về 107.214.228.39
chỉ đơn giản là chuyển tiếp tất cả các cổng đến máy cục bộ đó thông qua bộ định tuyến.
Lý tưởng nhất là tôi muốn có thể giải quyết FQDN một cách đơn giản bất kể tôi ở địa phương hay từ xa. Ví dụ, cố gắng tải nha.trwnh.com
nên thực hiện tra cứu DNS và thấy rằng địa chỉ là 192.168.1.66
khi tôi đang ở trên mạng cục bộ của mình với DNSMasq đang chạy và 107.214.228.39
khi tôi ở xa và sử dụng ví dụ: DNS của Google hoặc Cloudflare.
Điều này có lúc hiệu quả và có lúc thất bại mà tôi không hiểu vì lý do gì. Nói chung, điều sẽ xảy ra là DNSMasq dường như đang hoạt động trong việc phân giải FQDN thành IP cục bộ của 192.168.1.66
, nhưng sau đó quá trình tải thực sự của trang web dường như đã hết thời gian chờ. Firefox cho tôi biết "Kết nối đã hết thời gian: Máy chủ tại home.trwnh.com mất quá nhiều thời gian để phản hồi." Tương tự như vậy với việc cố gắng tải trang web bằng FQDN trên máy chủ thực tế, nó sẽ phân giải thành localhost nhưng vẫn không tải được trang web.
Tôi đang làm gì sai?
Cấu hình ở đây: https://gist.github.com/trwnh/c61e1b0988c0ae7e68ef19a2426a9cd2
CHỈNH SỬA: Càng tò mò càng tò mò! Tôi vừa phát hiện ra rằng Chrome vẫn hoạt động tốt và sự cố này chỉ xảy ra trong Firefox...
CHỈNH SỬA 2: Đã tắt DNS qua HTTPS và Firefox hiện hoạt động.
CHỈNH SỬA 3: Bản thân tôi chưa xác nhận điều này, nhưng https://support.mozilla.org/en-US/kb/canary-domain-use-application-dnsnet cho biết tôi nên thêm cục bộ=/use-application-dns.net/
vào /etc/dnsmasq.conf của tôi