Máy Tính

Tối Ưu Homelab: Hướng Dẫn Thiết Lập Tên Miền Tùy Chỉnh, Nginx Proxy Manager và Tailscale

Laptop hiển thị giao diện Immich và Nextcloud trên trình duyệt web, minh họa các dịch vụ tự host tiện lợi

Thiết lập một hệ thống homelab tại nhà là một trong những dự án công nghệ tuyệt vời nhất mà tôi từng thực hiện. Tôi thực sự hài lòng khi có một máy chủ riêng để lưu trữ tất cả tài liệu, hình ảnh và thậm chí là các tệp đa phương tiện của mình. Điều này cho phép tôi truy cập mọi lúc, mọi nơi mà không cần phụ thuộc vào internet hoặc các dịch vụ đám mây tốn kém. Tuy nhiên, khi số lượng dịch vụ tự host ngày càng tăng, tôi nhận ra việc ghi nhớ tất cả các số cổng (port number) để truy cập từng dịch vụ trở nên khá bất tiện. Hơn nữa, một số dịch vụ còn đòi hỏi kết nối được mã hóa với chứng chỉ tin cậy để đảm bảo an ninh, điển hình như Bitwarden. Dù có thể sử dụng HTTPS trong mạng nội bộ, nhưng các dịch vụ này sẽ không nhận diện chứng chỉ là đáng tin cậy, khiến chúng không thể hoạt động đúng cách. Giải pháp cho cả hai vấn đề này đã đến với sự kết hợp của một tên miền tùy chỉnh (custom domain), Nginx Proxy ManagerTailscale.

Laptop hiển thị giao diện Immich và Nextcloud trên trình duyệt web, minh họa các dịch vụ tự host tiện lợiLaptop hiển thị giao diện Immich và Nextcloud trên trình duyệt web, minh họa các dịch vụ tự host tiện lợi

Tại Sao Cần Tên Miền Tùy Chỉnh Cho Homelab?

Bảo Mật Là Ưu Tiên Hàng Đầu

Mặc dù sự tiện lợi của một tên miền tùy chỉnh là rất đáng giá, tôi hoàn toàn có thể sử dụng địa chỉ IP cho mỗi dịch vụ tự host của mình. Việc ghi nhớ các số cổng có thể mất một chút thời gian, nhưng với lịch sử trình duyệt, tôi cuối cùng cũng sẽ tìm được cách truy cập từng dịch vụ tương đối nhanh chóng. Hơn nữa, Tailscale cũng có thể giúp tôi thiết lập kết nối từ xa ngay cả khi không có tên miền tùy chỉnh.

Tuy nhiên, yếu tố thúc đẩy lớn nhất khiến tôi thực hiện bước này chính là bảo mật. Tôi bắt đầu nhận ra sự cần thiết của một tên miền tùy chỉnh khi lần đầu tiên sử dụng Nextcloud. Dù cuối cùng tôi đã chuyển sang Bitwarden, nhưng ban đầu tôi muốn thiết lập Nextcloud Passwords, và dịch vụ này gần như không thể sử dụng được trừ khi tôi có một kết nối an toàn có thể kiểm chứng. Theo thời gian, tôi phát hiện ra nhiều dịch vụ khác cũng cần được tăng cường bảo mật. Ví dụ, ConvertX yêu cầu HTTPS để hoạt động với một số loại tệp nhất định, tương tự như các trình chuyển đổi tệp khác như Vert.

Ảnh chụp màn hình trang đăng nhập Vaultwarden, nhấn mạnh tính bảo mật của dịch vụ quản lý mật khẩu tự hostẢnh chụp màn hình trang đăng nhập Vaultwarden, nhấn mạnh tính bảo mật của dịch vụ quản lý mật khẩu tự host

Có nhiều cách khác để thiết lập các chứng chỉ tự ký (self-signed certificates) để chúng được các dịch vụ này tin cậy. Thế nhưng, khi kết hợp với sự tiện lợi của việc sử dụng các URL tùy chỉnh, việc có một tên miền riêng biệt lại trở nên hợp lý nhất. Đặc biệt là khi tôi muốn máy chủ của mình cũng có thể truy cập được bởi vợ tôi – người có lẽ sẽ không sẵn lòng ghi nhớ hàng loạt chuỗi số phức tạp.

Mua Và Thiết Lập Tên Miền Tùy Chỉnh

Chi Phí Bất Ngờ Hợp Lý

Lúc đầu, tôi nghĩ việc sở hữu một tên miền tùy chỉnh sẽ rất đắt đỏ. Nhưng may mắn thay, hiện có nhiều định dạng tên miền hơn tôi nhớ lần cuối tìm hiểu. Tôi đã có thể mua một tên miền dựa trên tên của mình từ Namecheap, với chi phí chỉ hơn 1 đô la một chút cho năm đầu tiên. Tôi biết chi phí sẽ tăng lên khi gia hạn trong tương lai, nhưng ngay cả khi đó, nó vẫn khá rẻ.

Sau đó, tôi phải chuyển các máy chủ tên miền (name servers) sang Cloudflare. Bạn có thể đăng ký tài khoản Cloudflare miễn phí, và việc di chuyển tên miền không tốn phí. Điều này cho phép tôi dựa vào Cloudflare để xử lý các yêu cầu DNS và định tuyến lưu lượng truy cập từ tên miền đến địa chỉ IP thích hợp.

Triển khai Vaultwarden LXC trong Proxmox, thể hiện quá trình thiết lập các dịch vụ tự host trên homelabTriển khai Vaultwarden LXC trong Proxmox, thể hiện quá trình thiết lập các dịch vụ tự host trên homelab

Tại thời điểm này, Tailscale cũng bắt đầu phát huy tác dụng. Đối với mỗi subdomain tôi muốn sử dụng, tôi phải tạo thủ công và đảm bảo rằng bản ghi A (A record) trỏ đến một IP của Tailscale và chức năng Cloudflare DNS proxy đã được tắt. Điều này là do các IP của Tailscale chỉ có thể truy cập được bởi những người đã đăng nhập vào Tailnet, điều mà Cloudflare không thể làm được. Tôi chỉ muốn Cloudflare phân giải DNS và định tuyến nó đến Tailscale. Dĩ nhiên, điều đó có nghĩa là tôi đã cài đặt Tailscale trên NAS của mình từ trước để nó trở thành một phần của Tailnet. Sau đó, việc xử lý lưu lượng truy cập trong mạng gia đình của tôi trở nên dễ dàng hơn.

Giao diện web của Tailscale, minh họa việc quản lý mạng riêng ảo và các thiết bị trong TailnetGiao diện web của Tailscale, minh họa việc quản lý mạng riêng ảo và các thiết bị trong Tailnet

Định Tuyến Lưu Lượng Truy Cập Đến Từng Dịch Vụ Với Nginx Proxy Manager

Cấu Hình Đơn Giản, Vượt Qua Thử Thách Ban Đầu

Tại thời điểm này, tất cả những gì tôi cần làm là thiết lập Nginx Proxy Manager để lưu lượng truy cập từ mỗi subdomain đã tạo được định tuyến đến địa chỉ IP và cổng thích hợp cho dịch vụ mà tôi muốn sử dụng. Phần này tương đối dễ dàng; tất cả những gì tôi phải làm là tạo các mục khớp từng subdomain với địa chỉ IP và cổng thích hợp, cũng như bật Websockets.

Nginx cũng là nơi tôi phải bật mã hóa. Khi thiết lập từng tuyến đường, tôi phải vào tab SSL và chọn tùy chọn để tạo chứng chỉ SSL mới. Sau đó, tôi sẽ bật tùy chọn Use DNS Challenge, chọn Cloudflare làm nhà cung cấp DNS và nhập API key do Cloudflare cung cấp để mọi thứ hoạt động.

Ảnh chụp màn hình Nginx Proxy Manager đang tạo một host proxy mới, minh họa quá trình cấu hình định tuyến cho dịch vụ tự hostẢnh chụp màn hình Nginx Proxy Manager đang tạo một host proxy mới, minh họa quá trình cấu hình định tuyến cho dịch vụ tự host

Lấy Cloudflare API Key

Bạn có thể lấy API key này trong bảng điều khiển Cloudflare của mình bằng cách đi tới cài đặt hồ sơ (ở phía trên bên phải) và vào phần API Tokens. Đơn giản chỉ cần tạo một token với template Edit zone DNS và lưu token được tạo. Bạn sẽ không thể xem lại nó, vì vậy hãy đảm bảo lưu lại trong trường hợp bạn muốn thiết lập thêm tên miền tùy chỉnh sau này.

Ảnh chụp màn hình trang API Tokens của Cloudflare, hướng dẫn cách tạo và quản lý mã API cho các dịch vụ tích hợpẢnh chụp màn hình trang API Tokens của Cloudflare, hướng dẫn cách tạo và quản lý mã API cho các dịch vụ tích hợp

Tất cả những điều này khá dễ dàng một khi bạn đã quen với nó, mặc dù có vẻ đáng sợ nếu bạn làm lần đầu. Dù sao, điều này đã đảm bảo các kết nối từ xa của tôi sẽ an toàn, vì vậy tôi có thể sử dụng bất kỳ dịch vụ nào yêu cầu kết nối được mã hóa.

Với tất cả những thiết lập đó, tôi đáng lẽ đã sẵn sàng, nhưng vẫn còn một vấn đề nữa. Cloudflare định tuyến lưu lượng truy cập đến địa chỉ IP của NAS của tôi, và phiên bản TrueNAS của tôi đang chiếm các cổng 80 và 443, đây là những cổng đầu tiên mà Tailscale kiểm tra khi thực hiện kết nối. Điều này khiến mỗi URL chỉ tải giao diện người dùng TrueNAS, bởi vì khi kết nối với máy, nó sẽ ngay lập tức tìm thấy một trang để tải, và Nginx thậm chí không tham gia vào quá trình. Những gì tôi phải làm là thay đổi các cổng TrueNAS lên một số cao hơn, để khi Tailscale kết nối với máy, nó có cơ hội được định tuyến qua Nginx đến cổng tương ứng.

Việc này cũng không khó thực hiện, nhưng mất một chút thời gian để tìm ra điều gì đang xảy ra, và đồng nghiệp Adam Conway của tôi đã giúp đỡ rất nhiều trong vấn đề này.

Thiết bị Ugreen NAS, gợi ý về giải pháp lưu trữ mạng cá nhân và trung tâm dữ liệu tại nhàThiết bị Ugreen NAS, gợi ý về giải pháp lưu trữ mạng cá nhân và trung tâm dữ liệu tại nhà

Đầu Tư Nhỏ, Giá Trị Lớn Cho Homelab Của Bạn

Một tên miền tùy chỉnh đi kèm với một khoản chi phí, nhưng may mắn thay, các tên miền đã trở nên khá rẻ trừ khi bạn muốn một cái gì đó phổ biến hơn như tên miền .com hoặc .net. Tôi đã chọn một tên miền .link, và vì tên của tôi không quá phổ biến, nên dễ dàng tìm được một tên miền giá rẻ. Bạn thậm chí có thể chọn những tên miền như .store nếu bạn chỉ có ý định sử dụng tên miền đó riêng tư.

Với chi phí thấp này, việc tăng cường bảo mật (và thực tế là mã hóa được các dịch vụ tự host của tôi tin cậy) cùng với sự dễ sử dụng khiến đây trở thành một khoản đầu tư đáng giá. Nếu bạn muốn tự mình làm mọi việc dễ dàng hơn, tôi khuyên bạn nên thiết lập một tên miền tùy chỉnh cho homelab của mình.

Laptop Windows 11 hiển thị giao diện web Immich và tài liệu Word trên Nextcloud Office, minh họa giải pháp tự host tài liệu và hình ảnhLaptop Windows 11 hiển thị giao diện web Immich và tài liệu Word trên Nextcloud Office, minh họa giải pháp tự host tài liệu và hình ảnh

Kết luận: Việc tích hợp tên miền tùy chỉnh, Nginx Proxy Manager và Tailscale đã biến homelab của tôi từ một hệ thống phức tạp, khó quản lý thành một trung tâm dữ liệu tại gia hoạt động trơn tru và an toàn. Đây là một bộ ba giải pháp mạnh mẽ, không chỉ giúp đơn giản hóa việc truy cập các dịch vụ tự host mà còn nâng cao đáng kể mức độ bảo mật thông qua việc sử dụng chứng chỉ SSL đáng tin cậy. Dù có một vài thử thách nhỏ trong quá trình thiết lập ban đầu, nhưng những lợi ích về sự tiện lợi và an toàn mà nó mang lại vượt xa chi phí và công sức bỏ ra. Nếu bạn đang vận hành một homelab và muốn tối ưu hóa trải nghiệm, đừng ngần ngại áp dụng các phương pháp này.

Hãy chia sẻ kinh nghiệm của bạn về việc quản lý homelab hoặc các giải pháp tương tự trong phần bình luận bên dưới, hoặc khám phá thêm các bài viết hữu ích khác trên blogcongnghe.net để nâng cấp hệ thống của bạn!

Related posts

Những Hạn Chế Của Notion: Lý Do Tôi Quyết Định Tìm Kiếm Nền Tảng Khác

Administrator

Hướng Dẫn Tích Hợp và Điều Khiển Proxmox VE Từ Home Assistant Toàn Diện

Administrator

HDD Còn Đáng Dùng Không Vào Năm 2025? 4 Lý Do Chứng Minh Ổ Cứng Cơ Học Vẫn Có Giá Trị

Administrator