Chuyển tiếp cổng từ terminal
Một máy chủ bạn khởi chạy trong terminal của một cuộc hội thoại chỉ được công bố cho space đó. Bảng cổng nhận ra những cổng đang lắng nghe mà ứng dụng này đã khởi chạy ở đó, ánh xạ chúng, và cho bạn một địa chỉ cho mọi nơi bạn có thể muốn truy cập tới. Hai space có thể cùng lắng nghe trên 5173; các ánh xạ của chúng không bao giờ trộn lẫn.
Không có gì ở đây mở toang cỗ máy: mọi đường đi đều do máy chủ tạo ra, theo yêu cầu, và biến mất cùng terminal hoặc rig.
Xem những gì đang lắng nghe
Phần tiêu đề “Xem những gì đang lắng nghe”- Mở Terminal (VM) hoặc shell host của cuộc hội thoại (trong một space hoặc trên trang PR).
- Khởi chạy máy chủ của bạn —
pnpm dev,python -m http.server 8000, bất cứ thứ gì. - Trong vài giây, biểu tượng phích cắm ở góc trên bên phải của terminal sẽ có thêm một chấm. Hãy nhấp vào đó.
Bảng này liệt kê mọi cổng đang lắng nghe cùng tiến trình sở hữu nó, dưới dạng
3000 → 3000: bên trái là cổng mà tiến trình đã bind, bên phải là cổng nó trả lời
cục bộ (cùng con số khi cổng đó còn trống trên máy của bạn). Mỗi dòng cũng cho biết
localhost trên máy tính, Browser (VM) và Android có thể truy cập được nó hay không.
Việc dò tìm được giới hạn: một Terminal (VM) được thăm dò từ bên trong hệ thống khách đó; một shell host được thăm dò từ cây tiến trình PTY của phiên đó. Những space khác, và những tiến trình khác trên máy Mac của bạn, không được liệt kê.
Các cổng mới trong terminal này được chuyển tiếp tự động. Hãy tắt Tự chuyển tiếp cổng trong cùng bảng đó nếu bạn chỉ muốn những cổng do chính bạn thêm vào.
Truy cập nó từ máy tính này
Phần tiêu đề “Truy cập nó từ máy tính này”Dùng Sao chép URL cục bộ trên dòng đó — http://localhost:3000. Bản chuyển tiếp
chỉ lắng nghe trên loopback, nên không gì khác trên mạng của bạn nhìn thấy được nó.
Nếu hai space cùng để lộ cổng guest 5173 và máy của bạn đã giữ
127.0.0.1:5173, thì space thứ hai vẫn giữ cổng guest 5173 và nhận một cổng cục
bộ tạm thời. Sao chép URL dùng con số bên phải.
Trên một shell host, tiến trình vốn đã nằm trên máy của bạn. Ánh xạ cùng một cổng cục bộ không thay đổi gì; chọn một cổng cục bộ khác sẽ bind một proxy loopback vào cổng bạn đã chọn.
--host (hay bind vào 0.0.0.0) không khiến một Browser (VM) khép kín
truy cập được một máy chủ trên máy Mac. Hệ thống khách có loopback riêng; máy chủ
cắm một tunnel vào hệ thống khách đó khi tab Browser nằm trong cùng space.
Truy cập nó từ Browser (VM)
Phần tiêu đề “Truy cập nó từ Browser (VM)”Mở trình duyệt khép kín trong cùng cuộc hội thoại. Gõ
localhost:<left-hand port> — con số mà tiến trình đã bind. Một ánh xạ lại
(5173 → 3000) cũng trả lời ở con số bên phải trong trình duyệt đó, nên
Sao chép URL cũng hoạt động ở đó. browser_use của một agent có thể điều hướng tới
cả hai. Một máy chủ trong Space A không bao giờ xuất hiện dưới dạng localhost:5173
trong trình duyệt của Space B.
Dùng localhost, không phải một IP LAN và cũng không phải --host. Hệ thống khách
có loopback riêng; tunnel lắng nghe ở đó trên cả IPv4 lẫn IPv6.
Những trang mở nhiều kết nối cùng lúc (hàng chục tài nguyên, một socket tải lại trực tiếp) chia sẻ chính tunnel đó. Browser (VM) ghép kênh chúng lên một exec thường trú duy nhất, nên một loạt yêu cầu tải không phải là một tiến trình được sinh ra cho mỗi kết nối và không bị quá thời gian chờ thành một trang trắng.
Trong cùng một space, một bản chuyển tiếp từ Terminal (VM) thắng một shell host trên cùng con số. Giữa các space thì không có thứ tự ưu tiên — chúng là những ánh xạ riêng biệt.
Truy cập nó từ Android
Phần tiêu đề “Truy cập nó từ Android”Mở tab Android của space đó. localhost:<port> của trình giả lập sau đó được
đảo ngược về cổng đã công bố của space này (adb reverse). Một trình giả lập là
toàn cục theo thiết bị: gắn Space B sẽ nhắm lại :5173 về B và bỏ của A. Đóng tab
và những đảo ngược mà rig này cắm vào sẽ bị gỡ bỏ.
Trình mô phỏng iOS vốn đã là máy Mac — không cần đảo ngược. Một chiếc iPhone thật vẫn cần một chia sẻ qua mạng LAN.
Chia sẻ nó trên mạng của bạn
Phần tiêu đề “Chia sẻ nó trên mạng của bạn”⋯ → Chia sẻ trên mạng cục bộ công bố cổng tại
<server-ip>:<random port> — hữu ích để mở trang trên điện thoại của bạn, hoặc
khi máy chủ chạy trên một máy khác.
- Cổng LAN luôn do hệ điều hành cấp, không bao giờ là con số của guest, nên việc để lộ là một địa chỉ có chủ đích, hiển nhiên thay vì một địa chỉ có thể đoán ra.
- Nó vẫn riêng tư (chỉ loopback) cho tới khi bạn bật, và ⋯ → Chỉ cục bộ sẽ gỡ nó ra khỏi mạng.
Đặt tên cho nó — với HTTPS
Phần tiêu đề “Đặt tên cho nó — với HTTPS”⋯ → Đặt tên miền Browser (.test) gán cho cổng một tên miền dev như
myapp.test. Bên trong Browser (VM), https://myapp.test sau đó tải máy chủ của
bạn với một ổ khóa hợp lệ — hữu ích cho bất cứ thứ gì hành xử khác đi trên một
origin có tên hoặc trong một ngữ cảnh bảo mật (cookie, service worker, callback
OAuth).
- Tên miền phải kết thúc bằng
.testhoặc.localhost— hai TLD dành riêng cho phát triển, nên một tên dev không bao giờ có thể che khuất một trang thật. - Tên miền là duy nhất trên máy chủ; số cổng thì không. Hai
space có thể cùng dùng
5173, nhưng chúng không thể cùng đòimyapp.test. - Chứng chỉ đến từ một CA cục bộ được tạo trên máy chủ của bạn trong lần đầu nó được cần tới. Khóa của nó nằm dưới thư mục dữ liệu của máy chủ và không bao giờ lọt vào bất kỳ hệ thống khách nào; trình duyệt khép kín chỉ tin đúng một khóa đó, nên TLS tới internet thật vẫn xác thực bình thường.
- Tên miền chỉ phân giải bên trong Browser (VM). Trình duyệt của chính bạn
trên host thì dùng
localhost:<port>thay vào đó. http://myapp.testtrần cũng hoạt động.
Chuyển tiếp một cổng bằng tay
Phần tiêu đề “Chuyển tiếp một cổng bằng tay”Thêm cổng ở cuối bảng sẽ ánh xạ một cổng trước khi (hoặc dù) có bất cứ thứ gì đang lắng nghe trên nó. Một bản chuyển tiếp thủ công giữ nguyên địa chỉ của nó trong khi máy chủ của bạn khởi động lại — dòng đó hiển thị không lắng nghe cho tới khi nó trở lại — còn các bản chuyển tiếp tự động biến mất khi cổng của chúng biến mất. Trên một shell host, bạn cũng có thể đặt một cổng cục bộ khác.
Cách nó vẫn được giới hạn
Phần tiêu đề “Cách nó vẫn được giới hạn”Các cổng được lập chỉ mục theo không gian làm việc và space. Bản đồ cổng của chính hypervisor là cố định khi một cỗ máy khởi động, nên một Terminal (VM) đi qua hai kênh hẹp do máy chủ kiểm soát: một làn vào được tạo sẵn dẫn tới hệ thống khách, vốn từ chối kết nối tới bất kỳ cổng nào mà hệ thống khách không thực sự đang lắng nghe, và những tunnel ngược mà máy chủ giữ mở cho Browser (VM) và Android. Một shell host không bao giờ quét toàn bộ cỗ máy. Không cổng lắng nghe nào từng được tạo bên trong một hệ thống khách mà máy chủ không đặt ở đó, và mọi thứ đều bị tháo dỡ cùng terminal hoặc rig. Thiết kế được giải thích trong Rigs và môi trường cách ly; còn các cổng dành riêng chính xác và quy tắc tên miền nằm trong tham chiếu rigs.
Liên quan
Phần tiêu đề “Liên quan”- Cho agent một máy để kiểm thử — mở, theo dõi và tiếp quản rig
- Tham chiếu rigs — cổng dành riêng, TLD dev, giá trị mặc định