Tôi quyết định ngừng sử dụng Twitter, nhưng vì nội dung của riêng tôi và hỗ trợ Ukraine chống lại những kẻ xâm lược man rợ của nó, tôi hiểu rằng cảnh quan truyền thông đương đại khá bị phân mảnh. Tôi đặt cược vào Mastodon, Bluesky và LinkedIn. Dòng chảy của tôi là như sau: khi tôi đọc một mảnh tôi thấy thú vị, tôi lên lịch cho xuất bản. Vấn đề là mỗi nền tảng truyền thông xã hội có một lập lịch khác nhau: Mastodon có , LinkedIn có một tính năng tích hợp sẵn, và Bluesky có ... không có gì. Lịch Mastodon Vì vậy, tôi bắt đầu xây dựng một ứng dụng để lên lịch các bài đăng trên nhiều nền tảng truyền thông xã hội. Chi tiết không liên quan đến bài đăng này.Đủ để nói, các mô-đun đang chạy trong một container Docker trên NAS Synology của tôi ở nhà. để truy cập khi tôi ở nhà. Tuy nhiên, tôi sẽ sớm Trong vài tuần, và tôi muốn tiếp tục xuất bản nội dung. câu hỏi sau đó nảy sinh: làm thế nào để tôi truy cập nó một cách an toàn từ đó mà không phơi bày mạng gia đình của tôi và ? A. Tên địa phương Du lịch Australia Thỏa hiệp với sự riêng tư của tôi Vấn đề Tôi đã viết một bài viết đầy đủ về Dưới đây là một tóm tắt: Vấn đề về quyền riêng tư do subdomains gây ra Port forwarding tiết lộ địa chỉ IP nhà của bạn Dynamic DNS yêu cầu cập nhật liên tục Mở cổng là rủi ro an ninh Chứng chỉ SSL là một rắc rối để quản lý Tôi muốn một giải pháp sẽ: Giữ mạng gia đình an toàn Cài đặt HTTPS tự động Thêm Authentication Hãy đơn giản để duy trì Thông tin về Cloudflare Tunnel Cloudflare Tunnel tạo ra một từ mạng của bạn đến cơ sở hạ tầng của Cloudflare. Yêu cầu đến tên miền của bạn được chuyển qua đường hầm này đến ứng dụng của bạn. Không cần cổng vào! secure outbound connection Dòng chảy là trực tiếp: → → → → Internet Cấu hình Cloudflare Edge đường hầm Mình Ứng dụng Tất cả các kết nối đều đi ra khỏi NAS của bạn, vì vậy tường lửa của bạn vẫn còn nguyên vẹn. Xây dựng đường hầm Tài liệu khá tốt, nhưng đây là các bước. Điều kiện I already had: Một miền được quản lý bởi Cloudflare Dịch vụ Docker chạy trên NAS của tôi Ứng dụng của tôi chạy như một container Docker Tạo một đường hầm có tên Trong bảng điều khiển Cloudflare Zero Trust: Navigate to Access > Đường hầm Click tạo một đường hầm Chọn Cloudflared Hãy đặt tên cho nó bất cứ khi nào bạn muốn, ví dụ: nas Sao chép token đường hầm - bạn sẽ cần nó sớm Token này xác thực đường hầm của bạn đến Cloudflare. Run cloudflared trên mũi Tải hình ảnh Docker chính thức: docker pull cloudflare/cloudflared:2025.9.1 Sau đó, tạo một container thông qua Synology Docker UI với các cài đặt sau: Tên sản phẩm: Cloudflared Lệnh: tunnel --no-autoupdate run Biến thể môi trường: TUNNEL_TOKEN=<your-token-here> Mạng: cùng một mạng mà ứng dụng của bạn được kết nối, ví dụ như cầu Phần quan trọng ở đây là mạng lưới. container và ứng dụng phải nằm trên cùng một mạng. cloudflared Tạo liên kết từ the Tải ứng dụng container: cloudflared Link container: tên của container mà bạn muốn liên kết đến, ví dụ: myapp Alias: tên mà dưới đó bạn sẽ truy cập nó từ cloudflared. Làm cho bản thân một ân huệ, sử dụng cùng một tên. Nó cho phép Để truy cập ứng dụng tại Không cần phải lộ bất kỳ cảng nào. cloudflared http://myapp:<PORT> Thiết lập Hostname công cộng Trở lại trong bảng điều khiển Cloudflare, trong cấu hình đường hầm: Truy cập vào Public Hostname tab Click vào Add a Public Hostname Cấu hình tên miền con, tên miền và đường dẫn dịch vụ, ví dụ, http://myapp:<PORT> Lưu ý rằng tên máy chủ ở đây phải khớp chính xác với những gì bạn đã cấu hình trong liên kết Docker.Nếu bạn đã cấu hình sai (tôi đã làm), hãy xem nhật ký: dial tcp: lookup wrongname on 192.168.1.254:53: no such host Thêm Authentication Tại thời điểm này, bất cứ ai có URL có thể truy cập ứng dụng. nó có thể là một tùy chọn, nhưng nó không nằm trong bối cảnh của tôi. Tôi đã xem xét việc tạo cơ chế xác thực của riêng mình, nhưng cuối cùng đã quyết định chống lại nó. Cloudflare cung cấp mọi thứ cần thiết chỉ với cấu hình - không cần thay đổi mã. Hỗ trợ Multiple : Cloudflare truy cập Nhà cung cấp Identity Một lần PIN qua email GitHub google Thông tin Azure AD ôtô vv Để thêm vào Phương pháp : 1 lần PIN login Navigate to Access > Ứng dụng Click vào Add an Application > Self-hosted Cấu hình ứng dụng với tên ứng dụng, tên miền và tên miền con Click tiếp theo Create a policy: Policy name: "Allow myself" Action: Allow Configure rules: Click + Add include Selector: Emails Value: john@doe.it Click Next, sau đó thêm ứng dụng Thì Tôi ban đầu đã không liên kết nó đúng cách, và tự hỏi tại sao Cloudflare không gửi cho tôi một email. Cloudflare chính sách là cực kỳ mạnh mẽ. có một cái nhìn. Kết quả Bây giờ, khi tôi truy cập ứng dụng của tôi từ bên ngoài: Cloudflare hiển thị một trang xác thực Tôi điền vào email của tôi Cloudflare gửi mã một lần Authenticized Cloudflare proxy yêu cầu thông qua đường hầm Ứng dụng nhận được yêu cầu. I can schedule posts from anywhere! Kết luận Cloudflare Tunnel là một giải pháp thanh lịch cho tự lưu trữ. Cài đặt mất khoảng 30 phút, hầu hết trong số đó tôi đã dành để khắc phục lỗi của riêng tôi với tên container và phân bổ chính sách. Đối với các dự án cá nhân chạy từ nhà, rất khó để đánh bại: không có chi phí, HTTPS tự động, xác thực tích hợp và không tiếp xúc mạng. Để đi xa hơn: Cloudflare Tunnel cho trợ lý tại nhà Kiểm soát truy cập Cloudflare Chính sách Cloudflare Cuối cùng tôi hiểu Cloudflare Zero Trust Tunnels