Δώστε σε πράκτορα μηχανή για δοκιμές
Ένας σταθμός είναι μια αναλώσιμη μηχανή που ανοίγει ένας πράκτορας όταν χρειάζεται να δοκιμάσει κάτι στην πράξη: να φορτώσει μια σελίδα, να κάνει κλικ σε μια εφαρμογή επιφάνειας εργασίας, να πατήσει σε ένα τηλέφωνο. Μπορείτε να τον παρακολουθείτε να δουλεύει σε πραγματικό χρόνο και να αναλαμβάνετε τον έλεγχο όποτε θέλετε.
Οι περίκλειστοι σταθμοί τερματικού, περιηγητή και επιφάνειας εργασίας είναι εικονικές μηχανές με αναλώσιμους δίσκους και δίκτυα πίσω από πύλη. Το Android και το iOS είναι εξομοιωτές που διαχειρίζεται ο ξενιστής: η κατάσταση της συσκευής τους είναι αναλώσιμη, αλλά το δίκτυό τους ακολουθεί τον ξενιστή του διακομιστή.
Ρυθμίστε το μία φορά
Ενότητα με τίτλο «Ρυθμίστε το μία φορά»Οι σταθμοί εκτελούνται στη μηχανή που φιλοξενεί το cc_server — την ίδια
μηχανή, όχι αυτή που κοιτάτε. Υπάρχουν πέντε επιφάνειες που βλέπει ο χρήστης·
οι επιφάνειες για υπολογιστή και κινητά χρειάζονται ρύθμιση στον ξενιστή:
| Επιφάνεια | Εκτελείται σε | Ρύθμιση |
|---|---|---|
| Τερματικό (VM) | Ένα microVM που εκκινεί μια καθηλωμένη εικόνα Ubuntu | Καμία — η εικόνα λαμβάνεται αυτόματα κατά την πρώτη χρήση |
| Περιηγητής (VM) | Ένα microVM που εκκινεί μια καθηλωμένη εικόνα Debian, με Chromium, Firefox ή WebKit να εγκαθίσταται κατά την πρώτη χρήση | Καμία — το ίδιο |
| Υπολογιστής (VM) | QEMU με εικόνα επιφάνειας εργασίας Linux που περιλαμβάνει Chromium, Firefox, WebKit και μια βάση CLI τύπου GitHub-hosted runner | Εγκαταστήστε το QEMU (brew install qemu) και μετά κάντε Εισαγωγή μιας εικόνας επιφάνειας εργασίας από Ρυθμίσεις → Διακομιστής → Σταθμοί |
| Android | Τον εξομοιωτή Android της Google | Εγκαταστήστε το Android SDK, δημιουργήστε ένα AVD και εκκινήστε το (παρακάτω) |
| Προσομοιωτής iOS | CoreSimulator στον Mac του διακομιστή | Εγκαταστήστε το Xcode και το ζητούμενο runtime iOS και μετά εγκαταστήστε τη γέφυρα αυτοματοποίησης από Ρυθμίσεις → Διακομιστής → Σταθμοί |
Οι μηχανές τερματικού και περιηγητή εκκινούν από εικόνες καθηλωμένες σε digest: τα ακριβή byte ονομάζονται εκ των προτέρων, λαμβάνονται μία φορά κατά την πρώτη εκκίνηση και αποθηκεύονται προσωρινά — μετά την πρώτη εκκίνηση κάθε είδους, οι επόμενες μηχανές παραλείπουν εντελώς τη λήψη και εμφανίζονται σε δευτερόλεπτα. Η σελίδα Ρυθμίσεις → Διακομιστής → Σταθμοί δείχνει τι μπορεί να εκκινήσει ο διακομιστής σας και κάθε μηχανή που εκτελείται αυτή τη στιγμή.
Μια εγκατεστημένη εικόνα επιφάνειας εργασίας παραμένει διαχειρίσιμη από την ίδια σελίδα: η Εισαγωγή την αντικαθιστά με ένα νεότερο qcow2 και η Διαγραφή την αφαιρεί, ώστε να μπορείτε να εγκαταστήσετε μια νέα έκδοση.
Οι κινητές συσκευές ρυθμίζονται διαφορετικά
Ενότητα με τίτλο «Οι κινητές συσκευές ρυθμίζονται διαφορετικά»Δεν υπάρχει δική μας εικόνα για Android ή iOS, και αυτό δεν είναι παράλειψη. Οι εικόνες συστήματος Android προέρχονται από το SDK της Google· τα runtime iOS προέρχονται από το Xcode. Για το Android, εγκαταστήστε το Android Studio (ή τα εργαλεία SDK της γραμμής εντολών), προσθέστε μια εικονική συσκευή στο Device Manager και εκκινήστε την. Η σελίδα Σταθμοί αναφέρει τότε το Android ως διαθέσιμο.
Σας λέει επίσης ακριβώς ποιο βήμα λείπει — χωρίς SDK, χωρίς εξομοιωτή, χωρίς
εικονική συσκευή ή με μια συσκευή που απλώς δεν εκτελείται — γιατί αυτά έχουν
τέσσερις διαφορετικές λύσεις και μόνο μία από αυτές είναι λήψη. Αν εκκινήσετε το
cc_server από ένα κέλυφος που δεν βλέπει το SDK, εξάγετέ το:
export ANDROID_HOME="$HOME/Library/Android/sdk"Για το iOS, ο ίδιος ο διακομιστής πρέπει να εκτελείται σε macOS με εγκατεστημένο το Xcode και ένα runtime Προσομοιωτή iOS. Ανοίξτε τις Ρυθμίσεις → Διακομιστής → Σταθμοί και πατήστε Εγκατάσταση γέφυρας αυτοματοποίησης iOS. Ο διακομιστής λαμβάνει το artifact WebDriverAgent που είναι καθηλωμένο σε checksum, το επαληθεύει και το εγκαθιστά στην αποθήκη αυτοματοποίησης που ανήκει στον διακομιστή. Κανένας προσομοιωτής δεν εκκινεί κατά τη ρύθμιση.
Ανοίξτε μια μηχανή
Ενότητα με τίτλο «Ανοίξτε μια μηχανή»Οι μηχανές ζουν ως καρτέλες, δίπλα στη συνομιλία και το diff — σε έναν χώρο
ή σε σελίδα PR, στο ίδιο μενού +, κάτω από το Μηχανήματα:
- Υπολογιστής — μια επιφάνεια εργασίας Linux με Chromium, Firefox και WebKit
- Chromium, Firefox ή WebKit — ένας περιηγητής
- Android — ο εξομοιωτής Android που εκτελείται
- Προσομοιωτής iOS — ένας αναλώσιμος προσομοιωτής που δημιουργήθηκε για αυτή τη συνομιλία
Επιλέξτε μία και πατήστε Εκκίνηση της μηχανής. Η καρτέλα δείχνει σε ποιο στάδιο βρίσκεται η εκκίνηση («Starting the microVM», «Waiting for the guest to come up») αντί να γυρίζει απλώς.
Η καρτέλα περιορίζεται στη συνομιλία, και το ίδιο ισχύει για το εργαλείο του
πράκτορα. Μια καρτέλα Chromium, Firefox ή WebKit και το browser_use, το
Android και το mobile_use, ή ο Προσομοιωτής iOS και το ios_use
απευθύνονται στην ίδια προεπιλεγμένη μηχανή. Οι πρόσθετες θέσεις UI είναι
ξεχωριστές μηχανές σύγκρισης· τα εργαλεία του πράκτορα χρησιμοποιούν πάντα την
προεπιλεγμένη.
Για να κάνετε build, εγκατάσταση και εκκίνηση μιας εφαρμογής Flutter στο Android:
fvm flutter build apk --debugΣτη συνέχεια καλέστε το mobile_use με το install_apk και το
build/app/outputs/flutter-apk/app-debug.apk, ακολουθούμενο από το start_app
και το όνομα πακέτου Android. Το ui_dump, τα στιγμιότυπα οθόνης και η
εισαγωγή οδηγούν την ίδια συσκευή που εμφανίζεται στην ανθρώπινη καρτέλα. Τα
stop_app, clear_app_data, uninstall_app, open_url και οι κλήσεις shell
σε μορφή argv καλύπτουν τον υπόλοιπο κύκλο ανάπτυξης χωρίς να καλείται κέλυφος
στη μηχανή του διακομιστή.
Για να κάνετε build, εγκατάσταση και εκκίνηση μιας εφαρμογής Flutter στον Προσομοιωτή iOS:
fvm flutter build ios --simulator --debug/usr/bin/plutil -extract CFBundleIdentifier raw -o - \ build/ios/iphonesimulator/Runner.app/Info.plistΣτη συνέχεια καλέστε το ios_use με το install_app και τον κατάλογο .app,
ακολουθούμενο από το start_app και το bundle identifier που εκτυπώνει το
plutil. Το εργαλείο iOS εκθέτει επίσης τα stop_app, uninstall_app,
open_url και μια ενέργεια spawn σε μορφή argv για διαγνωστικά τοπικά στον
προσομοιωτή.
Οι προβολές επιφάνειας εργασίας και περιηγητή προσαρμόζονται στο μέγεθος του πλαισίου. Το iOS διατηρεί το σταθερό μέγεθος σε points του προσομοιωτή και το τοποθετεί με μαύρες λωρίδες. Κάθε επιφάνεια έχει ακόμα δύο ανεξάρτητες ροές: ο πράκτορας παίρνει μικρά, φθηνά στιγμιότυπα οθόνης, ενώ εσείς παίρνετε τη ζωντανή προβολή. Η αλλαγή καρτέλας σταματά τη ροή για τον άνθρωπο, ώστε μια μηχανή στο παρασκήνιο να μην καταναλώνει εύρος ζώνης προβολής.
Μια καρτέλα σταθμού δεν εκκινεί μηχανή από μόνη της, ούτε κατά την επαναφορά διάταξης. Ο κανόνας αυτός αποτρέπει το άνοιγμα της εφαρμογής από το να εκκινήσει απροσδόκητα εικονικές μηχανές ή να δημιουργήσει συσκευές προσομοιωτή.
Οδηγήστε τη μηχανή
Ενότητα με τίτλο «Οδηγήστε τη μηχανή»Ο καμβάς είναι δικός σας για πληκτρολόγηση και κλικ όποτε κανείς άλλος δεν έχει αποκλειστικό έλεγχο — ή όταν τον έχετε εσείς. Όσο κρατάτε αυτό το κλείδωμα, η ετικέτα κατάστασης γράφει Έχετε τον έλεγχο, ο πράκτορας μπορεί ακόμα να παίρνει στιγμιότυπα οθόνης και ο διακομιστής αρνείται τις ενέργειες που αλλάζουν κατάσταση στο μοναδικό σημείο από το οποίο περνούν όλες οι ενέργειες. Ό,τι κάνετε καταγράφεται στο όνομά σας.
Πατήστε Διακοπή της μηχανής όταν τελειώσετε.
Ο έλεγχος είναι αποκλειστικός σκόπιμα: δύο δρώντες που πληκτρολογούν σε μία μηχανή παράγουν εισαγωγή που δεν σκόπευε κανένας από τους δύο.
Μετακινήστε πράγματα μέσα και έξω
Ενότητα με τίτλο «Μετακινήστε πράγματα μέσα και έξω»Η αντιγραφή και η επικόλληση λειτουργούν και προς τις δύο κατευθύνσεις στον καμβά του σταθμού, όπως και η μεταφορά αρχείων με σύρσιμο.
Αντιγραφή και επικόλληση. Πατήστε τον συνδυασμό αντιγραφής πάνω στον καμβά και ό,τι αντέγραψε η μηχανή — κείμενο, εικόνα, λίστα αρχείων — προσγειώνεται στο πρόχειρό σας. Η επικόλληση στέλνει το δικό σας προς την άλλη κατεύθυνση και εκτελεί επικόλληση μέσα στη μηχανή. Στο macOS ο συνδυασμός είναι ⌘C/⌘V· το ⌃C φτάνει ακόμα σε ένα φιλοξενούμενο κέλυφος ως διακοπή. Στα Windows και το Linux χρησιμοποιήστε ⌃C/⌃V — το φιλοξενούμενο λαμβάνει το ίδιο πλήκτρο που θα λάμβανε ούτως ή άλλως, οπότε το ⌃C σε φιλοξενούμενο τερματικό εξακολουθεί να διακόπτει και το δικό σας πρόχειρο μένει ανέπαφο.
Τίποτα δεν συγχρονίζεται στο παρασκήνιο. Ένας κωδικός που αντιγράφετε στη δική σας μηχανή δεν φτάνει μέσα σε ένα VM επειδή ενεργοποιήθηκε κάποιος χρονοδιακόπτης· περνά όταν κάνετε επικόλληση.
Η επικόλληση προς έναν σταθμό επιτρέπεται εξ ορισμού. Η αντιγραφή από έναν σταθμό ζητά πρώτα άδεια — παραχώρηση δέκα λεπτών ή Να επιτρέπεται πάντα από Ρυθμίσεις → Διακομιστής → Σταθμοί → Πρόσβαση στο πρόχειρο. Οι δύο κατευθύνσεις είναι ανεξάρτητες και σας ακολουθούν εσάς, όχι τον χώρο εργασίας.
Σύρετε αρχεία μέσα. Αφήστε τα οπουδήποτε στον καμβά.
- Στον Περιηγητή (VM), η σελίδα λαμβάνει ένα πραγματικό άφημα στο σημείο που αφήνετε το αρχείο, οπότε μια ζώνη μεταφόρτωσης συμπεριφέρεται ακριβώς όπως θα έκανε με ένα τοπικό αρχείο.
- Στον Υπολογιστή (VM), τα αρχεία καταλήγουν στο
~/Dropsκαι οι διαδρομές τους πηγαίνουν στο πρόχειρο της μηχανής, ώστε το ⌃V να τα επικολλά σε έναν διαχειριστή αρχείων ή σε ένα πεδίο μεταφόρτωσης. Ο ξενιστής δεν μπορεί να συνθέσει ένα σύρσιμο προς μια αυθαίρετη εφαρμογή Linux χωρίς να εκτελεί έναν δαίμονα με προνόμια μέσα στο VM, κάτι που οι σταθμοί σκόπιμα δεν έχουν — γι’ αυτό το μήνυμα σας λέει πού πήγαν τα αρχεία αντί να προσποιείται ότι έγινε άφημα. - Σε ένα τερματικό, το αρχείο αντιγράφεται μέσα και η διαδρομή του πληκτρολογείται στο prompt, έτοιμη να περαστεί σε μια εντολή. Η επικόλληση μιας εικόνας σε ένα τερματικό κάνει το ίδιο: αποθηκεύεται στη μηχανή και παίρνετε τη διαδρομή.
Το σύρσιμο αρχείων έξω λειτουργεί από τον Υπολογιστή (VM). Ξεκινήστε να σύρετε ένα αρχείο μέσα στη μηχανή, βγάλτε τον δείκτη έξω από τον καμβά και γίνεται πραγματικό σύρσιμο στην επιφάνεια εργασίας σας — αφήστε το στο Finder ή τον Explorer. Η αντιγραφή αρχείων από τον διαχειριστή αρχείων της μηχανής και η επικόλληση στη δική σας πλευρά λειτουργεί επίσης. Ο Περιηγητής (VM) δεν το προσφέρει αυτό: ένας headless περιηγητής δεν έχει ωφέλιμο φορτίο συρσίματος για ανάγνωση και το να μαντεύει κανείς από την επιλογή κειμένου της σελίδας θα υφάρπαζε συνηθισμένα κλικ.
Τερματικά μέσα σε έναν σταθμό
Ενότητα με τίτλο «Τερματικά μέσα σε έναν σταθμό»Τα τερματικά σε έναν χώρο ή σε μια σελίδα PR μπορούν να εκτελούνται μέσα σε έναν σταθμό αντί στη μηχανή του ίδιου του διακομιστή. Όταν συμβαίνει αυτό, το πλαίσιο εμφανίζει μια ετικέτα Απομονωμένο VM.
Τι αλλάζει:
- Τίποτα από όσα εκτελείτε δεν φτάνει στον ξενιστή. Ένα
rm -rfεκεί μέσα σας κοστίζει τον σταθμό. - Το δίκτυο είναι κλειστό εξ ορισμού. Μόνο οι κεντρικοί υπολογιστές στη λίστα επιτρεπόμενων του σταθμού είναι προσβάσιμοι και τα πάντα περνούν από μια πύλη που την επιβάλλει.
- Το
git pushλειτουργεί ακόμα σε τερματικό που ανοίξατε εσείς. Ο σταθμός δεν έχει αποθηκευμένο διαπιστευτήριο· ζητά από τον διακομιστή ένα βραχύβιο για κάθε ενέργεια, περιορισμένο από τη δική σας πρόσβαση στη φιλοξενία κώδικα, και το token ανακαλείται όταν κλείσει ο σταθμός. Ένας σταθμός που άνοιξε ένας πράκτορας παίρνει διαπιστευτήριο μόνο για ανάγνωση, οπότε μπορεί να κάνει fetch αλλά όχι push.
Τι πρέπει να γνωρίζετε:
- Ένα περίκλειστο τερματικό που επαναφέρεται σας περιμένει. Όπως μια καρτέλα
σταθμού, ένα τερματικό
microvmπου επιστρέφει με τη διάταξή σας εμφανίζει ένα κουμπί Άνοιγμα του κελύφους αντί να εκκινεί το VM του κατά την εκκίνηση. Ένα τερματικό κελύφους στον ξενιστή κοστίζει μια διεργασία· ένα περίκλειστο κοστίζει μια μηχανή. - Τα αρχεία που αφήνετε στο τερματικό πληκτρολογούνται, δεν ανοίγουν. Αφήστε ένα CSV σε ένα περίκλειστο τερματικό και αντιγράφεται στη μηχανή και η διαδρομή του φιλοξενούμενου εμφανίζεται στο prompt — η διαδρομή του ξενιστή θα ήταν εντολή που αποτυγχάνει εκεί.
- Το αντίγραφο στον σταθμό είναι αντίγραφο. Το worktree σας στον ξενιστή
παραμένει η πηγή αλήθειας. Τα commits που κάνετε μέσα σε έναν σταθμό
μεταφέρονται πίσω στο
refs/rigs/<id>/*όταν το ζητήσετε — δεν μετακινούν ποτέ το branch σας ούτε αγγίζουν το working tree σας. - Η εργασία με στόχο τον ξενιστή εκτελείται ακόμα στον ξενιστή. Ένα
φιλοξενούμενο Linux δεν μπορεί να κάνει build για macOS ή να εκτελέσει
xcodebuild. Επιλέξτε ρητά το εγγενές υποσύστημα γι’ αυτό· η εφαρμογή θα σας ζητήσει επιβεβαίωση αντί να αλλάξει σιωπηλά.
Εκτελέστε έναν διακομιστή ανάπτυξης στο Τερματικό (VM) — ας πούμε pnpm dev στη
θύρα 3000 — και μέσα σε λίγα δευτερόλεπτα το εικονίδιο του βύσματος στη γωνία
του τερματικού ανάβει: η θύρα προωθείται στο localhost:3000 της μηχανής σας,
είναι προσβάσιμη στο localhost:3000 μέσα στον Περιηγητή (VM), μοιράζεται στο
δίκτυό σας και μπορεί να ονομαστεί https://myapp.test. Όλη η ροή — αυτόματη
προώθηση, κοινή χρήση στο LAN, τομείς ανάπτυξης με HTTPS — έχει τον δικό της
οδηγό: Προώθηση θυρών από τερματικό.
Προσαρμοσμένες εικόνες
Ενότητα με τίτλο «Προσαρμοσμένες εικόνες»Ένας χώρος εργασίας μπορεί να στρέψει το Τερματικό (VM) και τον Περιηγητή (VM) στις δικές του εικόνες — από Ρυθμίσεις → Διακομιστής → Σταθμοί → Προσαρμοσμένες εικόνες (αυτός ο χώρος εργασίας). Συνήθης χρήση: επεκτείνετε την προεπιλεγμένη εικόνα με την αλυσίδα εργαλείων που χρειάζεται το project σας, ώστε κάθε τερματικό να ξεκινά έτοιμο, ή επαναχρησιμοποιήστε μια εικόνα που δημοσιεύει ήδη η ομάδα σας.
Η μηχανή εκκινεί ακόμα μέσα στο ίδιο περίβλημα: ίδια πύλη εξερχόμενης κίνησης, ίδιος μεσίτης διαπιστευτηρίων, ίδιος κύκλος ζωής. Μόνο οι διαχειριστές του χώρου εργασίας μπορούν να αλλάξουν τη ρύθμιση, οι νέες μηχανές την υιοθετούν (οι εκτελούμενες κρατούν τη δική τους) και η αναφορά πρέπει να είναι εικόνα από registry — οι τοπικές διαδρομές απορρίπτονται.
Τι πρέπει να παρέχει μια εικόνα:
- Τερματικό (VM) — μια εικόνα Linux με
bash. Χρειάζεται επίσηςgit,curlκαιsocat— είτε προεγκατεστημένα είτε εγκαταστάσιμα κατά την πρώτη εκκίνηση (οποιαδήποτε εικόνα βασισμένη σε Debian/Ubuntu κάνει: εγκαθίστανται αυτόματα, μαζί με ένα σύνολο εργαλείων CLI τύπου GitHub-hosted runner: μεταγλωττιστές, Python 3,jq, εργαλεία αρχειοθέτησης,rsync. Runtime γλωσσών όπως Node/Go/Java και το Docker δεν είναι προεγκατεστημένα). Η θύρα φιλοξενούμενου7911είναι δεσμευμένη για τον προωθητή θυρών. - Περιηγητής (VM) — μια εικόνα Debian/Ubuntu με
bashκαιsocat, συν ένα εκτελέσιμοchromium. Ο διακομιστής εκκινεί ο ίδιος τον Chromium ωςchromium --headless=newκαι μεταφέρει το DevTools από τη θύρα φιλοξενούμενου9223στη9222. Το PulseAudio και το ffmpeg εγκαθίστανται κατά την πρώτη εκκίνηση. Μην κάνετε buildFROM chromedp/headless-shell— αυτό το εκτελέσιμο δεν έχει ήχο. Η παράκαμψη ισχύει μόνο για σταθμούς Chromium· ο Firefox και το WebKit την αγνοούν και εκκινούν την καθηλωμένη εικόνα Debian. Οι θύρες φιλοξενούμενου9222/9223είναι δεσμευμένες.
Δύο συστάσεις: καθηλώστε την αναφορά με digest (@sha256:…) ώστε τα byte να μην
μπορούν να αλλάξουν κάτω από τα πόδια σας, και φιλοξενήστε την στο Docker Hub ή
στο GitHub Container Registry — οι κεντρικοί υπολογιστές λήψης αυτών των
registries γίνονται δεκτοί από την πύλη εξερχόμενης κίνησης αυτόματα· άλλοι μπορεί
να χρειάζονται τους κεντρικούς υπολογιστές παράδοσης περιεχομένου τους
προσβάσιμους για τη λήψη.
Όταν ένας σταθμός φεύγει
Ενότητα με τίτλο «Όταν ένας σταθμός φεύγει»Οι σταθμοί προορίζονται να είναι προσωρινοί:
- Αδράνεια — μετά από ~15 λεπτά χωρίς τίποτα να συμβαίνει, ένας σταθμός περιηγητή, επιφάνειας εργασίας ή κινητού σταθμεύει (παγώνει, ξυπνά αμέσως στην επόμενη ενέργεια). Ένα περίκλειστο τερματικό περιμένει 45 λεπτά. Μετά το διπλάσιο διάστημα αδράνειας, κλείνει.
- Χρονικό όριο — κάθε σταθμός έχει μια αυστηρή διάρκεια ζωής που δεν μπορεί να παρατείνει, ό,τι κι αν κάνει.
- Μνήμη — αν ο διακομιστής χρειάζεται χώρο για έναν νέο σταθμό, κλείνει αυτόν που χρησιμοποιήθηκε λιγότερο πρόσφατα. Ένας σταθμός που κάποιος οδηγεί, παρακολουθεί ή έχει ανοιχτό τερματικό σε αυτόν δεν αφαιρείται ποτέ.
Όταν κλείνει ένας περίκλειστος σταθμός, ο δίσκος του απορρίπτεται. Το κλείσιμο ενός σταθμού Android αποσυνδέεται από τον εξομοιωτή του ξενιστή — δεν τον διαγράφει. Ένας σταθμός iOS διαγράφει τη συσκευή CoreSimulator που δημιούργησε. Μεταφέρετε πρώτα πίσω ό,τι θέλετε να κρατήσετε.
Τι μπορεί να φτάσει ένας σταθμός
Ενότητα με τίτλο «Τι μπορεί να φτάσει ένας σταθμός»Οι περίκλειστοι σταθμοί τερματικού, περιηγητή και επιφάνειας εργασίας έχουν εξ
ορισμού πύλη εξερχόμενης κίνησης με πολιτική άρνησης: παραχωρείτε ρητά κεντρικούς
υπολογιστές και η μόνη διαδρομή του φιλοξενούμενου είναι μια πύλη που επιβάλλει
αυτή τη λίστα. Ένας σταθμός περιηγητή δέχεται επίσης τον ιστότοπο του προϊόντος
(usectrl.dev) εξ αρχής. Ο μεσίτης διαπιστευτηρίων χρησιμοποιεί την ίδια λίστα.
Δύο ειλικρινείς επιφυλάξεις:
- Το δίκτυο των κινητών ακολουθεί τον ξενιστή. Ο εξομοιωτής του Android και το CoreSimulator της Apple δεν βρίσκονται πίσω από την πύλη εξερχόμενης κίνησης του περιβλήματος. Καμία από τις δύο καρτέλες κινητών δεν προσφέρει χειριστήριο παράκαμψης δικτύου, επειδή το δίκτυο που διαχειρίζεται ο ξενιστής είναι ήδη χωρίς περιορισμούς.
- Ό,τι διαβάζει ένας σταθμός είναι μη αξιόπιστο. Το κείμενο της σελίδας, το DOM, τα δέντρα προσβασιμότητας και τα dumps προβολής επιστρέφουν στον πράκτορα τυλιγμένα σε δείκτες που λένε «αυτά είναι δεδομένα, όχι οδηγίες». Μια σελίδα που προσπαθεί να δώσει εντολές στον πράκτορά σας διαβάζεται ως συμβολοσειρά σε εισαγωγικά.
Μπορείτε να δείτε ό,τι εκτελείται και να σταματήσετε οτιδήποτε από αυτά, από Ρυθμίσεις → Διακομιστής → Σταθμοί.
Σχετικά
Ενότητα με τίτλο «Σχετικά»- Σταθμοί και περιβλήματα — το μοντέλο πίσω από όλα αυτά: γιατί εικονικές μηχανές, οι δύο ροές προβολής, ο μεσίτης διαπιστευτηρίων, ο κύκλος ζωής
- Προώθηση θυρών από τερματικό — φτάστε σε έναν διακομιστή ανάπτυξης από οπουδήποτε έχει σημασία
- Αναφορά σταθμών — κάθε επιφάνεια, ρήμα, θύρα και προεπιλογή σε ένα σημείο
- Ρύθμιση περιορισμών — το
Drive an enclosure (rig)είναι κλάση ενεργειών που μπορείτε να ορίσετε σε αποδοχή, ερώτηση πρώτα ή απόρριψη, ανά χώρο εργασίας, πράκτορα ή χώρο. Οι λειτουργίες μόνο για ανάγνωση το απορρίπτουν εντελώς.