Image default
Máy Tính

Tối ưu truy cập dịch vụ tự host: Tên miền tùy chỉnh, Nginx Proxy Manager & Tailscale

Việc thiết lập một homelab cá nhân là một trong những dự án công nghệ thú vị và hữu ích nhất. Có một hệ thống máy tính tại nhà có thể lưu trữ mọi tài liệu, ảnh và cả nội dung giải trí giúp tôi truy cập bất cứ lúc nào mà không phụ thuộc vào internet hay các dịch vụ đám mây đắt đỏ. 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) để truy cập mỗi dịch vụ trở nên khá bất tiện. Hơn nữa, một số dịch vụ này yêu cầu kết nối được mã hóa bằng chứng chỉ đáng tin cậy để tăng cường bảo mật, điển hình như Bitwarden. Mặc dù có thể sử dụng HTTPS trong mạng nội bộ, nhưng các dịch vụ này thường không công nhận chứng chỉ là đáng tin cậy, dẫn đến chúng không hoạt động đúng cách. Giải pháp cho cả hai vấn đề này đã đến dưới dạng một tên miền tùy chỉnh, kết hợp với Nginx Proxy Manager và Tailscale.

Giao diện Immich và Nextcloud trên trình duyệt laptop cho dịch vụ tự hostGiao diện Immich và Nextcloud trên trình duyệt laptop cho dịch vụ tự host

Tại sao tên miền tùy chỉnh lại cần thiết cho homelab của bạn?

Mặc dù sự tiện lợi của một tên miền tùy chỉnh là điều tuyệt vời, nhưng ban đầu tôi có thể chấp nhận việc sử dụng địa chỉ IP cho mỗi dịch vụ tự host. Việc ghi nhớ các số cổng sẽ mất thời gian, nhưng với lịch sử trình duyệt, tôi vẫn có thể 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 mà không cần tên miền tùy chỉnh.

Bảo mật là ưu tiên hàng đầu

Tuy nhiên, yếu tố thúc đẩy tôi thực hiện thay đổi này chính là bảo mật. Tôi bắt đầu nhận ra rằng tên miền tùy chỉnh là cần thiết khi lần đầu sử dụng Nextcloud. Ban đầu, tôi muốn thiết lập Nextcloud Passwords, nhưng dịch vụ này gần như không thể sử dụng được trừ khi có một kết nối an toàn có thể kiểm chứng. Về sau, tôi phát hiện ra nhiều dịch vụ khác cũng cần bảo mật bổ sung. 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 công cụ chuyển đổi tệp khác như Vert.

Trang đăng nhập Vaultwarden yêu cầu kết nối an toàn HTTPSTrang đăng nhập Vaultwarden yêu cầu kết nối an toàn HTTPS

Có nhiều cách khác để thiết lập chứng chỉ tự ký được các dịch vụ này tin cậy, 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 là giải pháp hợp lý nhất. Đặc biệt là khi tôi muốn máy chủ cũng có thể truy cập được bởi vợ tôi, người có lẽ sẽ không mấy sẵn lòng ghi nhớ hàng loạt chuỗi số phức tạp.

Triển khai Vaultwarden LXC trong Proxmox để bảo vệ dữ liệu mật khẩuTriển khai Vaultwarden LXC trong Proxmox để bảo vệ dữ liệu mật khẩu

Mua và thiết lập tên miền tùy chỉnh: Từ ý tưởng đến hiện thực

Chi phí không hề đắt đỏ

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

Sau đó, tôi cần chuyển đổi các máy chủ tên miền (name server) 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 cũng 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.

Cấu hình DNS với Cloudflare và tích hợp Tailscale

Tại thời điểm này, Tailscale cũng phát huy vai trò của mình. 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 địa chỉ IP của Tailscale và tùy chọn DNS proxy của Cloudflare đã được tắt. Điều này là do các địa chỉ 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. Tôi chỉ muốn Cloudflare giải quyết DNS và định tuyến nó đến Tailscale. Tất 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 còn lại là xử lý lưu lượng truy cập trong mạng gia đình.

Giao diện quản lý web của Tailscale cho phép truy cập homelab từ xaGiao diện quản lý web của Tailscale cho phép truy cập homelab từ xa

Định tuyến lưu lượng truy cập tới từng dịch vụ với Nginx Proxy Manager

Thiết lập cơ bản và kích hoạt Websockets

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ôi đã 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 nhập khớp với từng subdomain với địa chỉ IP và cổng phù hợp, cũng như bật Websockets.

Ảnh chụp màn hình Nginx Proxy Manager đang tạo một proxy host mớiẢnh chụp màn hình Nginx Proxy Manager đang tạo một proxy host mới

Thiết lập chứng chỉ SSL đáng tin cậy (Let’s Encrypt qua DNS Challenge)

Nginx cũng là nơi tôi phải bật mã hóa. Khi thiết lập mỗi 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 khóa API do Cloudflare cung cấp để mọi thứ hoạt động.

Trang quản lý API tokens của Cloudflare hiển thị các mã thông báoTrang quản lý API tokens của Cloudflare hiển thị các mã thông báo

Bạn có thể lấy khóa này trong bảng điều khiển Cloudflare bằng cách vào cài đặt hồ sơ của bạn (ở góc 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 mẫu Edit zone DNS và lưu token được tạo ra. 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.

Tất cả những điều này khá dễ dàng một khi bạn đã quen, mặc dù nó có thể trông đáng sợ nếu bạn làm lần đầu tiên. Dù sao đi nữa, việc 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.

Xử lý xung đột cổng (TrueNAS và Nginx Proxy Manager)

Với tất cả các thiết lập đó, tôi đáng lẽ đã sẵn sàng, nhưng lại có thêm 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 sử dụng 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 cho mọi URL chỉ tải giao diện người dùng của 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 này. Những gì tôi phải làm là thay đổi cổng của 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 của dịch vụ.

Thiết bị lưu trữ NAS Ugreen cho hệ thống homelab cá nhânThiết bị lưu trữ NAS Ugreen cho hệ thống homelab cá nhân

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

Một khoản đầu tư nhỏ mang lại giá trị lớn

Một tên miền tùy chỉnh đi kèm với chi phí liên quan, 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 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 cái với giá rẻ. Bạn thậm chí có thể chọn một tên miền như .store nếu bạn chỉ có ý định sử dụng tên miền đó một cách 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 làm mọi thứ dễ dàng hơn cho mình, tôi khuyên bạn nên tự 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à Nextcloud OfficeLaptop Windows 11 hiển thị giao diện web Immich và Nextcloud Office

Việc tích hợp tên miền tùy chỉnh, Nginx Proxy Manager và Tailscale không chỉ giải quyết các vấn đề về việc ghi nhớ cổng và chứng chỉ bảo mật mà còn nâng tầm trải nghiệm sử dụng dịch vụ tự host. Từ việc duyệt ảnh trên Immich đến quản lý tài liệu với Nextcloud Office, mọi thứ trở nên mượt mà, tiện lợi và an toàn hơn đáng kể. Đây thực sự là một bước tiến quan trọng giúp homelab của bạn hoạt động hiệu quả và chuyên nghiệp như một hệ thống đám mây thu nhỏ. Đừng ngần ngại khám phá và áp dụng giải pháp này để tận hưởng trọn vẹn giá trị mà các dịch vụ tự host mang lại.

Related posts

Dấu Hiệu Nào Cho Thấy Card Đồ Họa Của Bạn Đang Quá Nhiệt?

Administrator

Samsung Odyssey OLED G6 và G8: Màn Hình Gaming Đột Phá Tại CES 2025

Administrator

Notion: Đa Năng Liệu Có Thực Sự Tốt Nhất Mọi Lĩnh Vực?

Administrator