Code Remote

Cấu hình

Không có gì phải cấu hình để bắt đầu. Trang này dành cho lúc bạn muốn biết chuyện gì đang diễn ra.

Ai vào được

Theo mặc định một request phải qua hai bước kiểm tra:

  1. Tài khoản của bạn. Tunnel là riêng tư: relay Dev Tunnels chỉ cho qua tài khoản GitHub hoặc Microsoft đã chạy coderemote up.
  2. Điện thoại của bạn. Token trong mã QR cho phép một điện thoại đăng ký. Từ đó nó đăng nhập bằng khoá riêng, tạo trong Secure Enclave và không bao giờ rời khỏi đó, còn token một mình không mở được gì khác. coderemote devices liệt kê các điện thoại; coderemote devices revoke gỡ một chiếc.

Mọi thứ giữa điện thoại và agent được mã hoá đầu cuối bằng khoá của máy tính, mà mã QR mang theo: relay ở giữa chỉ chuyển tiếp dữ liệu đã mã hoá. Mở terminal, gõ vào hoặc khởi động một coding agent và khởi động build cũng hỏi Face ID. coderemote devices policy đặt mức chặt chẽ (không bao giờ, các lệnh, hoặc các lệnh và thay đổi) và một lần xác thực kéo dài bao lâu (5 phút, 30 phút hoặc một giờ).

Với coderemote up --allow-anonymous bước kiểm tra đầu tiên bị bỏ qua. Dù thế nào, file và git vẫn ở trong thư mục chia sẻ; terminal là shell thật với quyền của người dùng của bạn.

Liên kết công khai tới một bản xem trước là ngoại lệ duy nhất: cho đến khi nó hết hạn, ai có nó cũng mở được dev server đó, không qua kiểm tra nào. Nó không bao giờ chạm tới agent, tệp hay terminal của bạn.

Tệp trên máy tính của bạn

Mọi thứ nằm trong ~/.coderemote (%USERPROFILE%\.coderemote trên Windows), chỉ mình bạn đọc được:

Đường dẫnNó chứa gì
config.jsonAccess token, id tunnel của máy tính này và của preview tunnel của nó. Giữ nó là giữ mọi ghép đôi.
e2e/, lan/Khoá mã hoá đầu cuối của máy tính này và chứng chỉ mà điện thoại trong mạng của bạn kiểm tra. Được thay bởi rotate-token.
devices/Các điện thoại đã đăng ký với từng thư mục chia sẻ, và thiết lập Face ID của nó. Bị xoá bởi rotate-token.
bin/Dev Tunnels CLI được tải ở lần chạy đầu tiên.
agents/Một mục cho mỗi agent đang chạy, để status, kill và stop tìm được nó.
update.jsonPhiên bản mới nhất trên npm và lần gần nhất up đã hỏi, tối đa một lần mỗi ngày.
runtime/Chỉ sau khi script cài đặt đã tải Node.js: Node.js đó cùng coderemote được cài vào trong nó, và trong runtime/bin là các lệnh coderemote và node mà nó đã đưa vào PATH của bạn.

Xóa thư mục này (giữ lại runtime/ nếu script cài đặt đã tạo nó) sẽ đặt lại Code Remote: lần up tiếp theo tạo token và tunnel mới, và mọi thiết bị phải ghép đôi lại.

Biến môi trường

BiếnNó làm gì
CODEREMOTE_DEVTUNNELĐường dẫn đến một tệp nhị phân devtunnel để dùng. Nếu không, dùng cái có trong PATH, rồi đến bản đã tải về.
CODEREMOTE_CODEĐường dẫn đến lệnh code của VS Code, cho up --web. Nếu không, dùng code trong PATH của bạn.
CODEREMOTE_NO_UPDATE_CHECKĐặt thành 1 và up sẽ không hỏi npm xem có bản mới hơn không nữa.

Các script cài đặt đọc thêm một vài biến riêng:

BiếnNó làm gì
CODEREMOTE_VERSIONPhiên bản hoặc npm dist-tag cần cài, như 0.3.7 hoặc next. Mặc định latest.
CODEREMOTE_PRIVATE_NODEĐặt thành 1 để tải Node.js cho coderemote ngay cả khi bản của bạn đã đủ mới.
CODEREMOTE_NO_MODIFY_PATHĐặt thành 1 để không động đến PATH và các tệp khởi động shell của bạn; script cho biết cần thêm thư mục nào.

Tunnel

Mỗi máy tính có một tunnel. URL của nó giữ nguyên giữa các lần chạy, và up gia hạn nó mỗi lần để nó không hết hạn. Chia sẻ một thư mục mỗi lần; để truy cập nhiều dự án, hãy chia sẻ thư mục cha và tab Git sẽ tìm mọi repository bên trong.

Tunnel mang nhãn coderemote, nhờ đó app tìm thấy các máy khác của bạn. Phần xem trước dùng tunnel thứ hai, nhãn coderemote-preview, được tạo ở lần xem trước đầu tiên và xóa khi agent dừng (cách hoạt động). coderemote tunnels liệt kê cả hai, cùng tunnel của các máy tính khác của bạn.

Một tài khoản Dev Tunnels được giữ 10 tunnel. Các máy tính bạn không còn dùng vẫn giữ tunnel của chúng cho đến khi bạn xóa bằng coderemote tunnels delete.

Trong app

  • Machine Info (menu của một máy) hiện tunnel của nó: địa chỉ, tài khoản, ai vào được, khi nào hết hạn (được lùi lại mỗi lần coderemote up khởi động), các client đang kết nối, lưu lượng đến giờ, và bao nhiêu cổng đang được xem trước.
  • Settings › Connections liệt kê các tài khoản mà các máy tính đã ghép đôi của bạn kết nối qua. Mỗi tài khoản hiện mọi máy tính chạy coderemote trên tài khoản đó, online hay không, iPhone này đã ghép đôi với nó chưa, và đã dùng bao nhiêu trong 10 tunnel của tài khoản. Để thêm một máy tính, chạy coderemote up ở đó và quét mã QR của nó.

App chỉ hiển thị chúng: tunnel thuộc về chủ sở hữu các máy tính, nên bạn liệt kê và xóa chúng trên một máy tính đã đăng nhập vào tài khoản, bằng coderemote tunnels. Chạm và giữ một máy trong Connections để sao chép tunnel ID của nó cho việc này. Xóa một máy khỏi danh sách trong app chỉ làm iPhone đó quên nó.

Khắc phục sự cố

"Port 31580 is already in use"

Một agent hoặc chương trình khác đang giữ cổng. coderemote status cho thấy các agent; với thứ khác, hãy xem cái gì đang giữ nó:

$ lsof -nP -iTCP:31580 -sTCP:LISTEN      # macOS, Linux
PS> netstat -ano | findstr :31580         # Windows

Hãy dừng nó, chạy coderemote stop --all, hoặc chọn cổng khác bằng --port.

Điện thoại không kết nối được

Kiểm tra coderemote up vẫn đang chạy, và máy tính đang bật, có mạng. Đảm bảo điện thoại đã đăng nhập bằng cùng tài khoản máy tính đang dùng (hiện ở dòng Access:).

"Your Dev Tunnels account already has 10 tunnels"

Tài khoản đã đầy và không có tunnel nào là preview tunnel nhàn rỗi có thể xóa. Thông báo liệt kê chúng: hãy xóa những cái không còn dùng, chẳng hạn của một máy tính cũ, bằng coderemote tunnels delete <id>, rồi chạy coderemote up lần nữa.

Phiên đăng nhập đã hết hạn

up nhận ra và mở lại trình duyệt. Nếu không có trình duyệt, chạy coderemote login --device-code.

Tab Cổng báo "Update coderemote"

Máy tính đang chạy một bản coderemote cũ hơn tính năng cổng và xem trước. Chạy coderemote update, rồi khởi động lại coderemote up.

Bản xem trước báo "nothing is listening on port …"

Dev server phía sau đã dừng hoặc khởi động lại ở cổng khác. Hãy khởi động lại và tải lại; tab Cổng cho biết hiện đang có gì lắng nghe.

Cài đặt trên Linux bị lỗi

Hỗ trợ terminal được biên dịch khi cài và cần python3, make và một trình biên dịch C++ (build-essential trên Debian và Ubuntu). Đăng nhập cần libsecret-1-0.

Vẫn bị kẹt? Xem Hỗ trợ.