Image default
Máy Tính

Tên miền cục bộ cho dịch vụ tự host: Giải pháp với Pi-hole và Nginx Proxy Manager

Bạn có mệt mỏi với việc phải ghi nhớ địa chỉ IP và số cổng của các dịch vụ tự host (self-hosted services) trong mạng nội bộ của mình không? Nhiều người dùng công nghệ gặp phải tình trạng này, và một giải pháp hữu hiệu đã được tìm ra: sử dụng kết hợp Pi-hole và Nginx Proxy Manager để gán tên miền cục bộ cho các dịch vụ này, giúp việc truy cập trở nên dễ dàng và thuận tiện hơn mà không cần phải mở chúng ra internet. Phương pháp này không chỉ tối ưu trải nghiệm người dùng mà còn tăng cường bảo mật cho hệ thống homelab của bạn.

Độ phân giải tên miền cục bộ và bên ngoài: Khác biệt và tầm quan trọng

Khi bạn nhập một tên miền vào trình duyệt, ví dụ như https://howtogeek.com, trình duyệt sẽ cố gắng phân giải tên miền đó để biết nơi cần kết nối. Đây là quá trình cốt lõi của Hệ thống tên miền (DNS).

Độ phân giải bên ngoài (External resolution) xảy ra khi một trang web có thể được truy cập từ bên ngoài mạng cục bộ của nó. Khi bạn truy cập tinnhanhcongnghe.com, bạn đang truy cập một máy chủ trong trung tâm dữ liệu nào đó, nằm trên một mạng bên ngoài so với mạng nội bộ tại nhà bạn.

Tuy nhiên, nếu bạn tự host một dịch vụ tại nhà, chẳng hạn như Audiobookshelf, và truy cập nó qua địa chỉ IP nội bộ, thì bạn đang truy cập một trang web cục bộ. Bạn cũng có thể thiết lập một dịch vụ cho phép bạn truy cập các trang web được host cục bộ đó bằng một tên miền, mà không cần phải rời khỏi mạng nội bộ của bạn.

Giao diện trình đọc sách điện tử Calibre được tự host, hiển thị trên iPhone, minh họa truy cập dịch vụ cục bộ qua tên miền.Giao diện trình đọc sách điện tử Calibre được tự host, hiển thị trên iPhone, minh họa truy cập dịch vụ cục bộ qua tên miền.

Nói tóm lại: tên miền cục bộ chỉ được phân giải trong mạng nội bộ của bạn, trong khi tên miền bên ngoài có thể được truy cập bởi bất kỳ ai có kết nối internet.

Đây là điều quan trọng cần biết khi tự host dịch vụ. Nếu bạn mở một dịch vụ (như Audiobookshelf) ra internet bằng tên miền bên ngoài, thì bất kỳ ai trên thế giới có địa chỉ tên miền đó đều có thể truy cập dịch vụ của bạn.

Tuy nhiên, bạn có thể cấu hình để các yêu cầu tên miền đó chỉ được phân giải khi bạn đang ở trong mạng gia đình của mình để tăng cường bảo mật. Một số dịch vụ, như trình quản lý máy ảo Proxmox hoặc các phiên bản Pi-hole, không nên được truy cập từ bên ngoài mạng cục bộ vì lý do bảo mật.

Đối với những trường hợp này, việc sử dụng Pi-hole kết hợp với Nginx Proxy Manager là giải pháp lý tưởng để gán tên miền cho các dịch vụ cục bộ, giúp bạn không phải ghi nhớ các địa chỉ IP phức tạp.

Bạn không cần mua tên miền, nhưng nên cân nhắc

Bạn có thể nghĩ rằng mình cần phải mua một tên miền để thực hiện điều này. Thực tế, điều đó không hoàn toàn cần thiết. Mặc dù vậy, tôi vẫn khuyến nghị nên mua một tên miền cho mục đích này.

Quả cầu xanh với các đuôi tên miền phổ biến như .com, .net, .fun, .cloud, tượng trưng cho việc mua tên miền để sử dụng cục bộ hoặc toàn cầu.Quả cầu xanh với các đuôi tên miền phổ biến như .com, .net, .fun, .cloud, tượng trưng cho việc mua tên miền để sử dụng cục bộ hoặc toàn cầu.

Cách hoạt động của độ phân giải tên miền cục bộ là sử dụng một máy chủ DNS cục bộ (trong trường hợp này là Pi-hole), và để máy chủ DNS đó phân giải các tên miền cụ thể thành một địa chỉ IP cục bộ.

Trên lý thuyết, bạn thậm chí có thể xây dựng công cụ tìm kiếm của riêng mình và sau đó để máy chủ DNS cục bộ của bạn phân giải https://google.com đến công cụ tìm kiếm tự host đó. Mặc dù điều này là khả thi, nhưng nó không được khuyến khích, vì việc định tuyến lại các dịch vụ công cộng có thể làm gián đoạn phần lớn trải nghiệm duyệt internet của bạn.

Bạn có thể làm tương tự bằng cách để máy chủ DNS cục bộ của bạn phân giải bất kỳ tên miền nào bạn muốn đến các dịch vụ của bạn. Tương tự như tình huống Google ở trên, đó không phải lúc nào cũng là một ý tưởng hay. Lấy ví dụ The Verge. Cuối năm 2011, https://theverge.com trở thành The Verge như chúng ta biết ngày nay. Đầu năm 2011, https://theverge.com thực chất là The Verge Internet Services, một loại trang web rất khác.

Vì vậy, nếu bạn chọn một tên miền hiện không được đăng ký, hoặc một tên miền mà bạn nghĩ rằng bạn sẽ không bao giờ sử dụng dịch vụ của nó, rất có thể tên miền đó có thể trở nên hữu ích trong tương lai—hoặc thậm chí cần thiết. Hãy tưởng tượng một người nào đó vào năm 2011 xây dựng toàn bộ homelab của họ sử dụng https://theverge.com làm tên miền, chỉ để sau này muốn xem các bài viết của Verge. Họ sẽ phải di chuyển tất cả các dịch vụ của mình sang một tên miền mới, đây không phải là một việc nhỏ hay một nhiệm vụ dễ dàng.

Tốt nhất bạn nên mua một tên miền để phân giải tên miền cục bộ, ngay cả khi bạn không có kế hoạch truy cập các dịch vụ từ bên ngoài mạng của mình, mặc dù điều đó không bắt buộc.

Pi-hole: Trung tâm xử lý yêu cầu DNS cục bộ

Để xử lý các yêu cầu DNS cục bộ một cách khả thi, bạn sẽ cần một máy chủ DNS được host cục bộ. Đối với mục đích này, Pi-hole là lựa chọn phổ biến, mặc dù bạn có thể sử dụng bất kỳ máy chủ DNS nào khác tùy thích.

Trong khuôn khổ bài viết này, chúng tôi sẽ không đi sâu vào cách cài đặt Pi-hole vì đã có tài liệu hướng dẫn rất chi tiết.

Tuy nhiên, một khi bạn đã thiết lập Pi-hole trên mạng của mình và đặt nó làm máy chủ DNS chính, bạn sẽ có thể điều hướng đến phần Settings > Local DNS Records và bắt đầu nhập các bản ghi DNS của mình.

Giao diện quản trị Pi-hole, một công cụ quản lý DNS và chặn quảng cáo hiệu quả cho mạng cục bộ.Giao diện quản trị Pi-hole, một công cụ quản lý DNS và chặn quảng cáo hiệu quả cho mạng cục bộ.

Các bản ghi này có thể là tên miền gốc (ví dụ: testing.com) hoặc tên miền phụ (ví dụ: pi-hole.testing.com) tùy thuộc vào mục đích sử dụng của bạn. Thông thường, việc sử dụng tên miền phụ được khuyến nghị để bạn có thể có các địa chỉ dễ nhớ như dichvu.tenmien.com.

Màn hình cấu hình các mục nhập DNS cục bộ (Local DNS records) trong Pi-hole, hiển thị danh sách các tên miền nội bộ được ánh xạ tới địa chỉ IP.Màn hình cấu hình các mục nhập DNS cục bộ (Local DNS records) trong Pi-hole, hiển thị danh sách các tên miền nội bộ được ánh xạ tới địa chỉ IP.

Điều quan trọng nhất cần nhớ là phải trỏ địa chỉ IP đến địa chỉ IP của máy mà bạn đang chạy Nginx Proxy Manager. Đó là tất cả những gì cần làm với Pi-hole.

Nginx Proxy Manager: Định tuyến tên miền và quản lý SSL

Khi bạn đã có Nginx Proxy Manager hoạt động trên hệ thống của mình (sử dụng cổng 80 và 443), đã đến lúc thiết lập phần còn lại của tên miền cục bộ.

Nếu bạn không có ý định sử dụng HTTPS hoặc SSL, thì bước tiếp theo rất đơn giản. Bạn chỉ cần thêm tên miền bạn muốn sử dụng (đã nhập vào Pi-hole) làm một proxy host.

Tuy nhiên, nếu bạn muốn sử dụng HTTPS hoặc SSL, có thêm một vài bước cần thực hiện.

Đầu tiên, bạn sẽ cần tạo một chứng chỉ SSL tự ký (self-signed SSL certificate) cho tên miền bạn định sử dụng. Ví dụ, chúng ta sẽ sử dụng testing123.me cho mục đích của bài viết này.

Sau đây là ba lệnh cần chạy:

openssl genrsa -out testing123.me.key 2048
openssl req -new -key testing123.me.key -out testing123.me.csr -subj "/CN=.testing123.me"
openssl x509 -req -in testing123.me.csr -signkey testing123.me.key -out testing123.me.crt -days 825 -extensions v3_req -extfile 

Ba lệnh này sẽ tạo ra ba tệp trên hệ thống của bạn: một tệp CRT (chính là chứng chỉ), một tệp CSR (không sử dụng cho mục đích của chúng ta), và một tệp KEY (khóa chứng chỉ). Các lệnh trên được thiết kế để sử dụng với tên miền testing123.me, vì vậy nếu bạn muốn sử dụng một tên miền khác, hãy thay thế nó vào.

Ngoài ra, các lệnh này được thiết kế để cung cấp một chứng chỉ wildcard. Đây không phải là chứng chỉ cho chính tên miền đó, mà cho bất kỳ tên miền phụ nào (vì nó được thiết lập là *.testing123.me).

Trong Nginx Proxy Manager, hãy chuyển đến tab SSL Certificates và sau đó nhấp vào Add SSL Certificate, rồi chọn Custom. Đặt tên cho chứng chỉ, sau đó tải tệp KEY vào khu vực Certificate Key và tệp CRT vào khu vực Certificate.

Bây giờ, quay lại tab Proxy Hosts, bạn có thể chuyển đến khu vực SSL và chọn chứng chỉ wildcard của bạn. Thao tác này sẽ cung cấp cho bạn một chứng chỉ tự ký cho các dịch vụ được bật SSL của bạn.

Vì đây là chứng chỉ tự ký, bạn vẫn sẽ nhận được cảnh báo chứng chỉ khi truy cập trang web, nhưng nó vẫn sẽ hoạt động đối với các dịch vụ cần HTTPS để hoạt động.

Ngoài ra, bạn thậm chí có thể thêm chứng chỉ vào CA cục bộ trên máy tính của mình để tránh cảnh báo, mặc dù điều này chắc chắn phức tạp hơn và khác nhau giữa các hệ điều hành.

Khi bạn đã thiết lập tất cả những điều đó, bạn đã sẵn sàng truy cập các tên miền cục bộ mà không cần rời khỏi mạng của mình! Nhiều người dùng đã áp dụng cách này cho các phiên bản Pi-hole của họ (để truy cập mà không cần IP) và các phiên bản Proxmox, vì không muốn mở bất kỳ dịch vụ nào trong số đó ra thế giới bên ngoài.

Tuy nhiên, nếu bạn muốn tạo trang web của riêng mình và cho phép mọi người từ khắp nơi truy cập, điều đó thực sự khá dễ dàng! Bạn hoàn toàn có thể có một trang web hoạt động đầy đủ chỉ trong một cuối tuần bằng cách sử dụng Raspberry Pi và Nginx Proxy Manager.

Related posts

Hướng Dẫn Chi Tiết Các Định Dạng Số Trong Excel: Từ Cơ Bản Đến Nâng Cao

Administrator

Microsoft Word Di Động Cập Nhật: Tạo Bảng Tùy Chỉnh Dễ Dàng Hơn Bao Giờ Hết

Administrator

Nâng Cao Kỹ Năng CSS Với 10 Trò Chơi Trực Quan và Hấp Dẫn

Administrator

Leave a Comment