Hai công việc khác nhau cùng mang tên VPN trong macOS, và bảng cài đặt chỉ xử lý một trong hai. Nếu bạn muốn lưu lượng của Mac này đi ra qua nhà cung cấp hoặc một cổng từ xa, một mục máy khách là đủ. Nếu bạn muốn từ phòng khách sạn chạm tới máy in, NAS hay một trang quản trị trên mạng nhà, thì thứ gì đó trên mạng ấy phải nhận kết nối từ bên ngoài, và một chiếc Mac hiện nay không phải thứ đó ngay từ đầu. Ba câu hỏi xác định bạn thuộc trường hợp nào, và đáng để trả lời chúng trước khi gõ một địa chỉ vào ô.

Mục máy khách nêu đích đến, không nêu trình lắng nghe

Trong Cài đặt Hệ thống > Mạng > VPN trên macOS Ventura và mới hơn, các trường mà phiên bản cũ giữ trong Tùy chọn Mạng mô tả cách chạm tới điểm cuối của người khác: địa chỉ máy chủ, ID từ xa, tài khoản hoặc chứng chỉ, và các quy tắc kết nối theo yêu cầu tùy chọn. Lưu mục đó ghi lại một kết nối trong cấu hình mạng của Mac bạn. Không có gì trong tiến trình ràng buộc một cổng, mở trình lắng nghe hay đăng ký người dùng từ xa.

Bạn có thể kiểm tra điều này từ shell. Trên chiếc Mac bạn nghi đang phục vụ, chạy sudo lsof -nP -iUDP và tìm các cổng mà giao thức của bạn dùng: 500 và 4500 cho IKEv2, 1194 cho mặc định của OpenVPN, 51820 cho WireGuard. Máy chỉ là máy khách hiển thị các socket ghép với địa chỉ và cổng từ xa, không phải một ràng buộc đại diện mà bất cứ thứ gì trên internet cũng chạm tới được. Các đường hầm chạy trong Network Extension có thể ẩn khỏi lsof, nên hãy kiểm tra cả bảng trạng thái của ứng dụng; thứ bạn sẽ không tìm thấy là một tùy chọn Apple biến chiếc Mac này thành cổng.

Ba câu hỏi tách hai vai trò

Hãy xử lý theo thứ tự. Câu đầu thường quyết định phần còn lại, và câu thứ ba là nơi phần lớn việc lập kế hoạch riêng cho Mac sai hướng.

1. Ai bắt đầu cuộc trò chuyện? Nếu Mac của bạn gọi ra ngoài và bên kia trả lời, bạn cần một máy khách. Nếu các thiết bị trên internet phải gọi vào trong để chạm tới mạng của bạn, bạn cần một cổng có điểm vào công khai, và Mac có thể vẫn là máy khách của cổng đó.

2. Điều gì phải tiếp cận được khi đường hầm đang mở? Một dịch vụ trên một máy chủ là quyết định chuyển tiếp cổng. Cả một mạng con, gồm cả phân giải tên, là quyết định định tuyến và DNS, và nó thay đổi điều cổng phải chuyển tiếp, không phải điều mục máy khách nói.

3. Bản hệ điều hành nào chạy đầu nhận? Với Mac, câu hỏi đó có câu trả lời cứng. Apple liệt kê VPN là đã bị loại khỏi macOS Server 5.7.1, và bản thân ứng dụng macOS Server đã ngừng vào ngày 21 tháng Tư năm 2022; thông báo lịch sử dịch vụ là trang cần đọc khi một hướng dẫn cũ dẫn bạn qua ô chọn dịch vụ VPN không còn tồn tại.

Khi câu trả lời đầu là “ai đó bên ngoài khởi xướng”, hãy ngừng tìm công tắc trong bảng máy khách của Mac và đi chọn máy chủ sẽ kết thúc đường hầm.

Cổng có thể nằm ở đâu thay vào đó

Bốn cách bố trí bao phủ phần lớn trường hợp gia đình và văn phòng nhỏ. Một router có chế độ máy chủ thật sự, khác với chế độ máy khách gắn nhãn khác, kết thúc đường hầm ở rìa và giữ số máy chủ thấp, với cái giá là bị ràng vào hỗ trợ giao thức của firmware đó. Một NAS hay một mini PC luôn bật chạy gói máy chủ của nhà sản xuất và để lại nhật ký bạn đọc được. Một VM đám mây nhỏ cho bạn địa chỉ công khai do bạn kiểm soát và chạm tới nhà qua đường hầm thứ hai. Một lớp phủ mesh dựng trên WireGuard, hoặc một dịch vụ được quản lý chuyển tiếp giữa các peer, né việc chuyển tiếp cổng vào bằng cách cho cả hai đầu gọi ra ngoài.

Ranh giới giữa các lựa chọn đó thường là kết nối internet của bạn, không phải phần mềm. Nếu ISP đặt bạn sau NAT cấp nhà mạng, không lượng chuyển tiếp cổng nào trên router tạo ra điểm vào tiếp cận được, và một cách bố trí relay hay mesh là câu trả lời trung thực. Hãy so địa chỉ WAN mà router báo cáo với địa chỉ mà thế giới bên ngoài thấy; nếu chúng khác nhau và giá trị của router nằm trong dải riêng hoặc chia sẻ, hãy lên kế hoạch cho trường hợp relay.

Dù chọn máy chủ nào, hãy chuyển tiếp một giao thức trên một cổng thay vì một dải, và giữ Mac ra ngoài đường vào trừ khi sản phẩm cụ thể đó ghi nhận vai trò máy chủ cho bản macOS bạn đang chạy.

Xác nhận vai trò trước khi phát hồ sơ

Trên cổng ứng viên, hãy chứng minh có một trình lắng nghe thay vì tin rằng trình cài đặt đã tạo một cái. Trên macOS điều đó nghĩa là sudo lsof -nP -iUDP được lọc tới các cổng trên, cộng sudo pfctl -s nat nếu các quy tắc lọc gói là một phần của thiết kế. Trên Linux, ss -lunp cho thấy cùng các sự thật mà không mơ hồ.

Sau đó hãy kiểm tra từ bên ngoài mạng, dùng chính giao thức. Ping chứng minh được ít: ICMP thường bị lọc và không nói gì về UDP 51820. Một cú bắt tay máy khách với ghi nhật ký chi tiết, chạy từ điện thoại trên dữ liệu di động, là bài kiểm tra thật rẻ nhất vì nó đi qua đúng đường mà một đồng nghiệp từ xa sẽ đi.

Chỉ sau đó bạn mới chạm vào hồ sơ máy khách. Trên Mac, scutil --nc list in ra các dịch vụ VPN mà hệ thống biết; nếu cổng bạn vừa dựng không nằm trong đó, bạn đang cấu hình một máy khác với máy bạn đã kiểm tra. Nếu cú bắt tay thành công trên LAN nhưng thất bại từ bên ngoài, lỗi nằm ở đường vào: quy tắc NAT, CGNAT của nhà cung cấp, hay tường lửa trên cổng, theo thứ tự đó.

Trước khi dựng bất cứ thứ gì, hãy chốt bốn điểm:

  • Bên nào khởi xướng kết nối, Mac của bạn hay một thiết bị từ xa.
  • Bản hệ điều hành và sản phẩm của máy chủ nhận có thật sự hỗ trợ vai trò máy chủ không.
  • ISP của bạn có cho bạn một địa chỉ công khai tiếp cận được hay không.
  • Cổng sẽ nhận cổng và giao thức duy nhất nào, và dịch vụ nào phía sau trả lời.

Bước tiếp theo là cụ thể: chọn máy chủ cổng, xác nhận trình lắng nghe của nó từ bên ngoài, và chỉ khi đó tạo trên Mac mục máy khách trỏ tới nó.

Bài viết liên quan