Hầu hết mọi người chỉ hiểu NAT nghĩa là gì khoảng mười phút sau khi mua. Nginx khởi động, curl localhost trả về trang, còn trình duyệt trên laptop cứ quay mãi. Không có gì hỏng cả. Chỉ là máy chủ không có địa chỉ IPv4 công khai của riêng nó, và cửa vào duy nhất là một cổng được chuyển tiếp cho SSH.
Một cửa đó đủ cho một lượng công việc đáng ngạc nhiên, và hoàn toàn không đủ cho vài việc rất phổ biến. Nếu bạn vẫn đang chọn giữa hai loại gói, bài viết cũ của chúng tôi IP riêng hay VPS NAT đặt ra một câu hỏi quyết định tất cả. Bài này nói về chuyện sống chung với câu trả lời: máy chủ NAT làm được gì trên thực tế, chỗ nào nó đụng tường, và thoát ra thế nào khi bạn đã vượt quá nó.
Thực tế bạn nhận được gì
Máy chủ NAT có một địa chỉ riêng tư phía sau gateway của chúng tôi. Bảng điều khiển hiển thị host và một cổng riêng, và bạn kết nối như sau:
ssh -p 20123 root@host
Cổng đó dẫn tới cổng 22 bên trong máy chủ của bạn. Mọi cổng vào khác trên IPv4 đều đóng từ bên ngoài, và không có tùy chọn chuyển tiếp thêm. Chiều đi ra thì khác: máy chủ kết nối tới bất cứ đâu trên internet, trừ các cổng SMTP 25 và 465, vốn đóng trên mọi gói, dù NAT hay không. Quy tắc đầy đủ nằm ở Mạng và cổng.
Thêm một chi tiết quan trọng với một số người: địa chỉ đi ra không phải của riêng bạn. Lưu lượng đi ra qua một địa chỉ bạn không kiểm soát, nên bạn không thể đặt reverse DNS cho nó và không thể xây dựng uy tín người gửi trên nó.
Những gì chạy tốt sau một cổng
Mọi thứ tự bắt đầu cuộc trò chuyện. Nhóm này rộng hơn bạn tưởng:
- Bot hỏi vòng (polling). Bot Telegram dùng long polling, bot Discord trên kết nối gateway, bot giao dịch nói chuyện với API của sàn. Tất cả đều là kết nối đi ra.
- Agent AI. Một agent gọi API mô hình, duyệt web, ghi file và chạy mã không cần ai gọi tới nó. Nó cần CPU, bộ nhớ và một đường ra ngoài.
- Worker và scraper. Mọi thứ lấy việc từ hàng đợi, thu thập trang hoặc đồng bộ dữ liệu theo lịch.
- Máy build và runner. Runner CI thường tự đăng ký với máy chủ và tự kéo việc về, nên chạy thoải mái trên NAT.
Với loại tải này, gói rẻ nhất thật lòng là đủ. Nano giá $3 mỗi tháng cho 2 vCPU, 1 GB RAM và 15 GB ổ đĩa; Small giá $8 cho 4 vCPU, 4 GB và 35 GB. Danh sách đầy đủ có ở trang riêng về các gói NAT.
Khi một cổng là không đủ
Bức tường là mọi thứ mà người khác phải là bên mở kết nối.
Website là ví dụ rõ nhất. Trình duyệt kết nối tới cổng 443 (và 80 để chuyển hướng), còn trên gói NAT các cổng đó không tồn tại khi nhìn từ ngoài vào. Dùng cổng không chuẩn cũng không được, ít nhất là theo cách mà khách truy cập chấp nhận.
Tên miền riêng có HTTPS đụng cùng bức tường hai lần. Bạn có thể trỏ bản ghi DNS tới địa chỉ của gateway, nhưng không có gì tới đó được chuyển tiếp vào máy chủ của bạn, ngoại trừ cổng SSH. Và cách thông thường để lấy chứng chỉ miễn phí sẽ kiểm tra máy chủ của bạn ở cổng 80 hoặc 443.
Webhook hỏng một cách lặng lẽ. Thông báo thanh toán, nền tảng bot gửi cập nhật, máy chủ Git báo có commit mới: tất cả đều phải kết nối được tới bạn. Con bot chạy hoàn hảo với long polling sẽ ngừng hoạt động đúng lúc bạn chuyển nó sang webhook.
Điểm cuối VPN, máy chủ game và máy chủ thư đương nhiên cần cổng vào. Cũng như bất cứ thứ gì bạn muốn mở cho đồng nghiệp xem trên trình duyệt.
Các cách đi vòng, nói thật
IPv6. Máy chủ Linux mới nhận một địa chỉ IPv6 công khai, và trên gói NAT địa chỉ này tới thẳng máy chủ, ở bất kỳ cổng nào. Nếu mọi client của dịch vụ đều là của bạn (laptop, các máy chủ khác, một đầu dò giám sát có IPv6), cách này chạy tốt. Với website công khai thì không: một phần khách truy cập vẫn ở trên mạng không có IPv6 và sẽ không bao giờ tải được trang. Gói Windows hiện chỉ có IPv4.
Đường hầm. Bạn có thể chạy một agent nhỏ giữ kết nối đi ra tới một relay ở nơi khác, relay này chuyển lưu lượng công khai ngược lại qua đường hầm. Cách này chạy được, và với bản demo hay bảng điều khiển nội bộ thì hợp lý. Nhưng với thứ gì quan trọng, bạn đã đặt một bên thứ ba vào giữa mọi yêu cầu, thêm một thứ nữa có thể hỏng lúc ba giờ sáng.
Đường hầm SSH cho riêng bạn. Nếu chỉ mình bạn cần trang quản trị, đừng mở nó ra ngoài chút nào. Chuyển tiếp nó qua cổng SSH bạn đã có:
ssh -p 20123 -L 8080:localhost:8080 root@host
Sau đó mở http://localhost:8080 trên máy của bạn. Đây là mẹo bị đánh giá thấp nhất trên máy chủ NAT, và dù sao nó cũng an toàn hơn việc đưa trang quản trị lên internet.
Ý kiến thật của tôi: IPv6 và đường hầm SSH là công cụ tốt. Một dịch vụ công khai lâu dài phải chạy qua đường hầm chỉ vì máy chủ không có IPv4 thường là dấu hiệu bạn đã vượt quá NAT.
Chuyển sang IPv4 riêng mà không cài lại
Bạn không cần dựng lại gì cả. Mở máy chủ trong bảng điều khiển, chọn «Đổi gói» và một gói IP riêng cùng cỡ hoặc lớn hơn. Máy chủ khởi động lại một lần và trở lại với IPv4 công khai riêng, ổ đĩa của nó và mọi thứ bạn đã cài. Cổng 80, 443 và bất cứ cổng nào bạn mở trong tường lửa đều truy cập được, còn SSH chuyển về cổng 22 thông thường. Chi tiết có ở Đổi gói.
Vài điều nên biết trước khi bấm:
- Bạn trả phần chênh lệch tính theo tỷ lệ cho thời gian còn lại của kỳ hiện tại, trừ vào số dư. Nano-IP giá $8 mỗi tháng so với $3 của Nano; Small-IP giá $16 so với $8.
- Cần có một địa chỉ trống ở vị trí đặt máy chủ của bạn. Nếu lúc này không có, bảng điều khiển sẽ báo trước khi trừ bất kỳ khoản nào.
- Nếu bạn đã tự tay sửa cấu hình mạng bên trong máy chủ, hãy kiểm tra lại sau khi khởi động lại. Trên image chuẩn, cấu hình được áp dụng tự động.
- Sao lưu trước. Chỉ là một lần khởi động lại, nhưng đó vẫn là dữ liệu của bạn.
Khi NAT không phù hợp, và khi IPv4 cũng không
NAT là lựa chọn sai cho mọi thứ công khai, mọi thứ nhận webhook, và mọi thứ cần một địa chỉ cố định để ai đó đưa vào danh sách cho phép. Đừng tốn nhiều ngày để lách quanh chuyện đó. Chênh lệch giá giữa Nano và Nano-IP là $5 mỗi tháng.
Nhưng một IPv4 riêng cũng không phải phép màu. Nó không khiến một website chặn địa chỉ trung tâm dữ liệu cho bạn vào, và không cứu được scraper khỏi giới hạn tốc độ, vì những quyết định đó dựa trên mạng bạn đang ở, chứ không dựa trên việc ai khác dùng địa chỉ đó. Và nếu cả dự án của bạn chỉ là vài con bot và một agent, mua một IPv4 mà không ai bao giờ kết nối tới là phí tiền.
Nếu đằng nào bạn cũng định chuyển sang cấu hình lớn hơn, bài chuyển VPS mà không gián đoạn trình bày thứ tự các bước, còn cách đọc thông số VPS giúp bạn so sánh các gói.
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.