Một lần nhấn phím là đủ để khởi động VPN trên Mac, và Apple có hai cách gốc để gắn nó. Shortcuts cho mỗi phím tắt tổ hợp phím riêng và một mục trên thanh menu. Automator cho bạn một Quick Action mà bạn gán phím trong Cài đặt Hệ thống, tách khỏi chính quy trình làm việc. Cả hai đường đều gửi cùng một yêu cầu tới cùng một dịch vụ kết nối, nên khác biệt đáng kể là việc gắn nằm ở đâu, bạn đi qua những cổng quyền nào, và bạn kiểm tra gì khi phím dường như không làm gì cả.

Mọi thứ dưới đây giả định đã có một dịch vụ VPN hệ thống xuất hiện trong scutil --nc list. Nếu nhà cung cấp của bạn đưa ra một ứng dụng khách bên thứ ba mà kết nối không bao giờ xuất hiện ở đó, cả hai công cụ đều không điều khiển được nó qua scutil, và bạn cần chính thao tác của nhà cung cấp đó.

Cả hai đường đều gọi cùng một dịch vụ

Hãy bắt đầu từ danh sách, không phải từ ứng dụng. scutil --nc list in ra từng dịch vụ đã lưu cùng trạng thái và tên hiển thị chính xác của nó, và đó là chuỗi bạn phải đặt trong dấu ngoặc kép ở câu lệnh:

/usr/sbin/scutil --nc start "Office VPN"

Dòng đó là một yêu cầu kích hoạt. Nó trả về ngay khi yêu cầu được chấp nhận; nó không chờ yếu tố thứ hai, không báo rằng DNS riêng đã được đặt, và không xác nhận rằng máy chủ tệp trả lời. Hãy coi nó như chính cú nhấp bạn sẽ làm trong menu, chỉ là không có menu.

scutil cũng không có công tắc. Tách hành động kết nối và ngắt kết nối ra dễ suy luận hơn một phím đảo trạng thái, vì một lần đảo nhấn giữa lúc bắt tay có thể dừng một kết nối chưa bao giờ lên xong. Nếu muốn một phím duy nhất, hãy rẽ nhánh theo đầu ra của scutil --nc status "Office VPN" và quyết định dứt khoát; đừng đảo qua đảo lại một cách mù quáng.

Shortcuts: một phím cho mỗi hành động, bề mặt quyền rộng hơn

  1. Tạo một phím tắt cục bộ trong Shortcuts và đặt tên theo công việc, ví dụ Connect Office VPN.

  2. Thêm Run Shell Script và dán yêu cầu khởi động, với tên dịch vụ được gõ nguyên văn thay vì lấy từ bảng tạm hay văn bản đã chọn.

  3. Chạy nó một lần từ trình soạn trong phiên đã đăng nhập của chính bạn và hoàn tất luồng xác thực thông thường, để hệ thống ghi lại phê duyệt cần thiết.

  4. Mở chi tiết của phím tắt và gắn một tổ hợp bằng Add Keyboard Shortcut. Apple ghi lại cách gắn này trong hướng dẫn sử dụng Shortcuts của họ; những tổ hợp hệ thống đã giữ chỗ thì không chiếm được.

Việc gắn đi cùng phím tắt, nên một hành động cũng có thể nằm trên thanh menu hoặc trong Dock mà không cần thêm việc. Cái giá là quyền thứ hai: Shortcuts sẽ không chạy tập lệnh shell cho tới khi việc viết kịch bản được cho phép trong tùy chọn của nó, và trên một Mac được quản lý, thiết lập đó có thể bị khóa bởi chính sách. Chỉ cho phép với những phím tắt bạn tự viết hoặc đã đọc, không cho một tệp nhập vào có nội dung không rõ.

Đồng bộ là cái bẫy khác. Một phím tắt sao chép từ Mac khác vẫn mang tên dịch vụ nguyên văn của Mac đó. Trên máy mà dịch vụ mang tên khác, phím vẫn kích hoạt, tập lệnh thoát ra, và không gì cho bạn biết vì sao.

Automator: ít bộ phận chuyển động hơn, một phím bạn phải tự tìm

  1. Trong Automator chọn Quick Action, đặt quy trình để không nhận đầu vào trong bất kỳ ứng dụng nào, và thêm Run Shell Script với cùng câu lệnh, shell /bin/zsh.

  2. Lưu nó dưới một cái tên bạn sẽ nhận ra trong danh sách, vì đó là tên bạn sẽ tìm sau này.

  3. Mở Cài đặt Hệ thống, rồi Bàn phím, rồi Phím tắt bàn phím, rồi Dịch vụ. Tìm quy trình, đánh dấu nếu chưa được đánh dấu, và ghi lại một tổ hợp.

Quy trình được gọi như một dịch vụ, nên phím sống trong bảng dịch vụ và phụ thuộc vào tên quy trình. Nếu sau này bạn đổi tên quy trình đã lưu, nên mở lại bảng đó để xác nhận việc gán vẫn còn. Phím tắt dịch vụ là toàn cục, điều này tiện cho tới khi nó đụng một tổ hợp mà ứng dụng khác muốn.

Bạn được một tạo tác nhỏ hơn và bớt một lần hỏi quyền: một tệp quy trình bình thường, không có mục thanh menu riêng, không có công tắc viết kịch bản để tranh luận. Bạn mất khả năng dễ tìm, vì hành động chỉ xuất hiện trong danh sách Dịch vụ sau khi quy trình được lưu và hệ thống đã thấy nó một lần.

Hai bên tách nhau ở đâu khi phím không làm gì

SymptomShortcuts routeAutomator route
Key fires, nothing connectsService name mismatch; re-read scutil --nc listSame name mismatch inside the shell action
Key never fires anywhereBinding collides with a reserved or app-level combinationService entry unticked in Keyboard Shortcuts, or renamed
An authorization dialog appears every timePrompt comes from the VPN type, not from ShortcutsSame prompt, same cause; the script runs as you
Connects, no reachable resourceReadiness not checked after the requestIdentical gap, identical fix
Works only inside one appRare; check where the shortcut is made availableWorkflow set to receive input from a specific app

Bảng cố tình bị làm lệch: ở hai trong năm hàng của nó, cách sửa thực sự khác. Phần lớn lần nhấn phím thất bại quy về cùng một cặp lỗi, một cái tên không khớp với dịch vụ đã lưu và một yêu cầu bị hiểu là kết nối đã xong, và đổi công cụ không chữa được cái nào.

Cả hai đường cũng từ chối lưu thông tin đăng nhập. Một tổ hợp phím không thể biến đăng nhập tương tác thành đăng nhập không người trông, và dán mật khẩu vào tập lệnh là ý tồi hơn gõ nó mỗi ngày một lần.

Chọn theo ba điều kiện này

Chọn Shortcuts khi bạn muốn một phím cho mỗi hành động kèm truy cập từ thanh menu, và khi việc viết kịch bản đã được cho phép trên máy. Chọn Automator khi bạn muốn một tệp để sao chép giữa các Mac và không cần công tắc thêm. Nếu tổ chức của bạn khóa việc viết kịch bản trong Shortcuts, Quick Action là cái duy nhất trong hai chạy được mà không đổi chính sách, và điều đó quyết định câu hỏi thay bạn.

Trước khi dựa vào phím, hãy đi qua danh sách này: xác nhận dịch vụ trong scutil --nc list; nhấn phím từ khởi động nguội và theo dõi scutil --nc status; mở tài nguyên mà đường hầm tồn tại vì nó; và tạo một hành động ngắt kết nối riêng, được đặt tên rõ ràng. Đừng đặt hành động dừng duy nhất trên một phiên từ xa mà bạn cần đường hầm để tới.

Bước tiếp theo: chỉ gắn Connect, để Disconnect không gắn trong một ngày, và ghi lại bạn vẫn với tay tới menu bao nhiêu lần. Điều đó cho bạn biết lần nhấn phím đang tiết kiệm thời gian hay chỉ che trạng thái.

Bài viết liên quan