-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
IPC el GR
ASF περιλαμβάνει τη δική του μοναδική διεπαφή IPC που μπορεί να χρησιμοποιηθεί για περαιτέρω αλληλεπίδραση με τη διαδικασία. IPC σημαίνει επικοινωνία μεταξύ των διαδικασιών και στον πιο απλό ορισμό αυτό είναι το "ASF web interface" βασισμένο σε Kestrel HTTP server που μπορεί να χρησιμοποιηθεί για περαιτέρω ενσωμάτωση με τη διαδικασία, τόσο ως frontend για τον τελικό χρήστη (ASF-ui), όσο και ως backend για την ενσωμάτωση τρίτων (ASF API).
IPC μπορεί να χρησιμοποιηθεί για πολλά διαφορετικά πράγματα, ανάλογα με τις ανάγκες και τις ικανότητές σας. Για παράδειγμα, μπορείτε να το χρησιμοποιήσετε για τη λήψη κατάστασης του ASF και όλων των bots, αποστολή εντολών ASF, λήψη και επεξεργασία των καθολικών/bot ρυθμίσεων, προσθήκη νέων bots, διαγραφή υπαρχόντων bots, υποβολή κλειδιών για BGR ή πρόσβαση στο αρχείο καταγραφής του ASF. Όλες αυτές οι ενέργειες εκτίθενται από το API μας, που σημαίνει ότι μπορείτε να κωδικοποιήσετε τα δικά σας εργαλεία και δέσμες ενεργειών που θα είναι σε θέση να επικοινωνούν με το ASF και να επηρεάζουν κατά τη διάρκεια του χρόνου εκτέλεσης. Επιπλέον αυτού, επιλεγμένες ενέργειες (όπως εντολές αποστολής) υλοποιούνται επίσης από το ASF-ui μας, το οποίο σας επιτρέπει να έχετε εύκολη πρόσβαση σε αυτές μέσω ενός φιλικού web interface.
Εκτός αν έχετε απενεργοποιήσει χειροκίνητα την IPC μέσω IPC της καθολικής ιδιότητας διαμόρφωσης, είναι ενεργοποιημένη από προεπιλογή. Το ASF θα δηλώσει την έναρξη IPC στο αρχείο καταγραφής του, το οποίο μπορείτε να χρησιμοποιήσετε για την επαλήθευση εάν η διεπαφή IPC έχει ξεκινήσει σωστά:
Εκκίνηση διακομιστή IPC...
Ο διακομιστής INFO"ASF"Start() IPC έτοιμο!
Ο διακομιστής http του ASF ακούει τώρα τα επιλεγμένα τελικά σημεία. Εάν δεν παρείχατε ένα προσαρμοσμένο αρχείο ρύθμισης παραμέτρων για IPC, θα είναι localhost, και τα δύο 127 βασισμένα σε IPv4. .0.1 και [::1] στην προεπιλεγμένη θύρα 1242. Μπορείτε να έχετε πρόσβαση στη διεπαφή IPC μας μέσω των παραπάνω συνδέσμων, αλλά μόνο από την ίδια μηχανή με αυτή που τρέχει τη διαδικασία ASF.
Η διεπαφή IPC του ASF εκθέτει τρεις διαφορετικούς τρόπους πρόσβασης σε αυτό, ανάλογα με την προγραμματισμένη χρήση σας.
Στο χαμηλότερο επίπεδο υπάρχει το ASF API που είναι ο πυρήνας της διεπαφής IPC μας και επιτρέπει σε όλους τους άλλους να λειτουργήσουν. Αυτό είναι που θέλετε να χρησιμοποιήσετε στα δικά σας εργαλεία, βοηθητικά προγράμματα και έργα για να επικοινωνήσετε απευθείας με το ASF.
Στο μεσαίο έδαφος υπάρχει η τεκμηρίωση Swagger που λειτουργεί ως frontend στο ASF API. Διαθέτει μια πλήρη τεκμηρίωση του ASF API και σας επιτρέπει επίσης να έχετε πρόσβαση πιο εύκολα. Αυτό είναι που θέλετε να ελέγξετε αν σχεδιάζετε να γράψετε ένα εργαλείο, χρησιμότητα ή άλλα έργα που υποτίθεται ότι επικοινωνούν με την ASF μέσω του API.
Στο υψηλότερο επίπεδο υπάρχει ASF-ui που βασίζεται στο ASF API μας και παρέχει φιλικό προς το χρήστη τρόπο για την εκτέλεση διαφόρων ενεργειών ASF. Αυτή είναι η προεπιλεγμένη διεπαφή IPC που έχει σχεδιαστεί για τους τελικούς χρήστες, και ένα τέλειο παράδειγμα για το τι μπορείτε να δημιουργήσετε με ASF API. Αν θέλετε, μπορείτε να χρησιμοποιήσετε το δικό σας προσαρμοσμένο περιβάλλον εργασίας ιστού για να χρησιμοποιήσετε με το ASF, με τον καθορισμό --path όρισμα γραμμής εντολών και με τη χρήση προσαρμοσμένου καταλόγου www που βρίσκεται εκεί.
Το ASF-ui είναι ένα κοινοτικό πρόγραμμα που στοχεύει στη δημιουργία φιλικού προς το χρήστη γραφικού web interface για τους τελικούς χρήστες. Για να επιτευχθεί αυτό, λειτουργεί ως frontend στην **ASF API**μας, επιτρέποντάς σας να κάνετε διάφορες ενέργειες με ευκολία. Αυτό είναι το προεπιλεγμένο UI με το οποίο έρχεται το ASF.
Όπως προαναφέρθηκε, το ASF-ui είναι ένα κοινοτικό έργο που δεν συντηρείται από βασικούς προγραμματιστές του ASF. Ακολουθεί τη δική του ροή σε ASF-ui repo που θα πρέπει να χρησιμοποιηθεί για όλες τις σχετικές ερωτήσεις, θέματα, αναφορές σφαλμάτων και προτάσεις.
Μπορείτε να χρησιμοποιήσετε το ASF-ui για τη γενική διαχείριση της διαδικασίας ASF. Επιτρέπει για παράδειγμα τη διαχείριση bots, την τροποποίηση ρυθμίσεων, την αποστολή εντολών και την επίτευξη επιλεγμένων άλλων λειτουργιών που κανονικά διατίθενται μέσω του ASF.

Μας ASF API είναι τυπικό RESTful web API που βασίζεται σε JSON ως κύρια μορφή δεδομένων. Κάνουμε ό,τι καλύτερο μπορούμε για να περιγράψουμε επακριβώς την απάντηση, χρησιμοποιώντας και τους δύο κωδικούς κατάστασης HTTP (όπου ενδείκνυται), καθώς και μια απάντηση μπορείτε να αναλύσετε τον εαυτό σας για να μάθετε αν το αίτημα πέτυχε, και αν όχι, τότε γιατί.
Το ASF API μας μπορεί να προσπελαστεί με την αποστολή κατάλληλων αιτημάτων σε κατάλληλα endpoints /Api. Μπορείτε να χρησιμοποιήσετε αυτά τα τερματικά API για να φτιάξετε τα δικά σας βοηθητικά σενάρια, εργαλεία, GUIs και ομοίως. Αυτό είναι ακριβώς ό, τι ASF-ui μας επιτυγχάνει κάτω από την κουκούλα, και κάθε άλλο εργαλείο μπορεί να επιτύχει το ίδιο. Το ASF API υποστηρίζεται επίσημα και συντηρείται από την ομάδα ASF.
Για την πλήρη τεκμηρίωση των διαθέσιμων τελικών σημείων, περιγραφές, αιτήματα, απαντήσεις, κωδικοί κατάστασης http και οτιδήποτε άλλο εξετάζει ASF API, παρακαλώ ανατρέξτε στην τεκμηρίωση swagger.

Η διεπαφή IPC μας υποστηρίζει επιπλέον αρχείο ρυθμίσεων, IPC.config που θα πρέπει να τοποθετηθεί στον κανονικό κατάλογο `` του ASF.
Όταν είναι διαθέσιμο, αυτό το αρχείο καθορίζει την προηγμένη διαμόρφωση του εξυπηρετητή Kestrel http της ASF, μαζί με άλλες ρυθμίσεις που σχετίζονται με την IPC. Αν δεν έχετε μια συγκεκριμένη ανάγκη, δεν υπάρχει κανένας λόγος για να χρησιμοποιήσετε αυτό το αρχείο, καθώς το ASF χρησιμοποιεί ήδη λογικές προεπιλογές σε αυτήν την περίπτωση.
Το αρχείο ρυθμίσεων βασίζεται στην ακόλουθη δομή JSON:
◆
"Kestrel": {
"Τελικά Σημεία": {
"παράδειγμα-http4": Ş
"Url": "http://127. .0. :1242"
},
"example-http6": {
"Url": "http://[::1]:1242"
},
"example-say, 4": {
"Url": "https://127. .0.1:1242",
"Πιστοποιητικό": mptom
"Διαδρομή": "/path/to/certificate. fx",
"Κωδικός": "passwordToPfxFileAbove"
}
},
"example-¥ 6": {
"Url": "https://[::1]:1242",
"Πιστοποιητικό": {
"Διαδρομή": "/path/to/certificate. fx",
"Κωδικός": "passwordToPfxFileAbove"
}
}
},
"KnownNetworks": [
"10. .0.0/8",
"172.16.0. /12",
"192.168.0. /16"
],
"PathBase": "/"
}
}Endpoints - This is a collection of endpoints, each endpoint having its own unique name (like example-http4) and Url property that specifies Protocol://Host:Port listening address. Από προεπιλογή, το ASF ακούει στις διευθύνσεις IPv4 και IPv6 http, αλλά έχουμε προσθέσει παραδείγματα https για να χρησιμοποιήσετε, αν χρειαστεί. Θα πρέπει να δηλώσετε μόνο εκείνα τα τελικά σημεία που χρειάζεστε, έχουμε συμπεριλάβει 4 παραδείγματα παραπάνω ώστε να μπορείτε να τα επεξεργαστείτε ευκολότερα.
Host δέχεται είτε localhost, μια σταθερή διεύθυνση IP της διεπαφής στην οποία θα πρέπει να ακούσει (IPv4/IPv6), ή τιμή * που συνδέει το διακομιστή http του ASF με όλες τις διαθέσιμες διεπαφές. Χρήση άλλων τιμών, όπως mydomain.com ή 192.168.0. ενεργεί το ίδιο με το *, δεν υπάρχει φίλτρο IP υλοποιημένο, επομένως να είστε εξαιρετικά προσεκτικοί όταν χρησιμοποιείτε τιμές Host που επιτρέπουν απομακρυσμένη πρόσβαση. Με τον τρόπο αυτό, θα καταστεί δυνατή η πρόσβαση στη διεπαφή IPC της ASF από άλλα μηχανήματα, τα οποία ενδέχεται να θέσουν σε κίνδυνο την ασφάλεια. Σας συνιστούμε να χρησιμοποιήσετε IPCPassword (και κατά προτίμηση το δικό σας τείχος προστασίας) τουλάχιστον σε αυτή την περίπτωση.
KnownNetworks - Αυτή η μεταβλητή προαιρετική καθορίζει διευθύνσεις δικτύου τις οποίες θεωρούμε αξιόπιστες. Από προεπιλογή, το ASF έχει ρυθμιστεί ώστε να εμπιστεύεται τη διασύνδεση loopback (localhost, ίδιο μηχάνημα) μόνο. Αυτό το ακίνητο χρησιμοποιείται με δύο τρόπους. Πρώτον, αν παραλείψετε το IPCPassword, τότε θα επιτρέψουμε μόνο μηχανές από γνωστά δίκτυα για πρόσβαση στο API του ASF και θα αρνηθούμε σε όλους τους άλλους ως μέτρο ασφαλείας. Δεύτερον, αυτό το ακίνητο είναι ζωτικής σημασίας όσον αφορά την αντιστροφή proxies πρόσβαση στην ASF, όπως το ASF θα τιμήσει τις κεφαλίδες του μόνο αν ο διακομιστής αντίστροφης μεσολάβησης είναι από γνωστά δίκτυα. Ο τιμητικός χαρακτηρισμός των επικεφαλίδων είναι κρίσιμος όσον αφορά τον μηχανισμό αντι-ωμής βίας του ASF, καθώς αντί να απαγορεύει την αντιστροφή σε περίπτωση προβλήματος. θα απαγορεύσει την IP που ορίστηκε από τον διακομιστή μεσολάβησης αντιστροφής ως πηγή του αρχικού μηνύματος. Να είστε εξαιρετικά προσεκτικοί με τα δίκτυα που καθορίζετε εδώ, καθώς επιτρέπει μια πιθανή επίθεση IP spoofing και μη εξουσιοδοτημένη πρόσβαση σε περίπτωση που η αξιόπιστη μηχανή έχει παραβιαστεί ή έχει ρυθμιστεί λανθασμένα.
PathBase - Αυτό είναι προαιρετικό βασικό μονοπάτι που θα χρησιμοποιηθεί από τη διεπαφή IPC. Προεπιλογές σε / και δεν θα πρέπει να απαιτείται να τροποποιήσετε για τις περισσότερες περιπτώσεις χρήσης. Με την αλλαγή αυτής της ιδιότητας θα φιλοξενήσετε ολόκληρη τη διεπαφή IPC με προσαρμοσμένο πρόθεμα, για παράδειγμα http://localhost:1242/MyPrefix αντί για http://localhost:1242 μόνο. Χρησιμοποιώντας προσαρμοσμένη βάση PathBase μπορεί να είναι επιθυμητή σε συνδυασμό με μια συγκεκριμένη ρύθμιση ενός reverse proxy όπου θα θέλατε να διαμεσολαβήσετε μόνο μια συγκεκριμένη διεύθυνση URL, για παράδειγμα mydomain. om/ASF αντί για ολόκληρο τον τομέα mydomain.com. Κανονικά αυτό θα απαιτούσε από εσάς να γράψετε έναν κανόνα επανεγγραφής για το διακομιστή web σας που θα χαρτογραφήσει mydomain. om/ASF/Api/X -> localhost:1242/Api/X, αλλά αντί αυτού μπορείτε να ορίσετε ένα προσαρμοσμένο PathBase του /ASF και να επιτύχετε ευκολότερη ρύθμιση του mydomain. om/ASF/Api/X -> localhost:1242/ASF/Api/X.
Αν δεν χρειάζεται πραγματικά να καθορίσετε μια προσαρμοσμένη διαδρομή βάσης, είναι καλύτερο να την αφήσετε στην προεπιλογή.
Η παρακάτω ρύθμιση απλά αλλάζει την προεπιλεγμένη θύρα ακρόασης ASF από 1242 σε 1337. Μπορείτε να επιλέξετε οποιαδήποτε θύρα θέλετε, αλλά σας προτείνουμε 1024-32767 εύρος, καθώς άλλες θύρες είναι συνήθως εγγεγραμμένες, και μπορεί για παράδειγμα να απαιτήσει πρόσβαση root στο Linux.
◆
"Kestrel": {
"Τελικά Σημεία": {
"HTTP4": }
"Url": "http://127. .0. :1337"
},
"HTTP6": {
"Url": "http://[::1]:1337"
}
}
}
}Η ακόλουθη ρύθμιση θα επιτρέψει απομακρυσμένη πρόσβαση από όλες τις πηγές, Ως εκ τούτου, θα πρέπει να βεβαιωθείτε ότι διαβάζετε και κατανοείτε την ειδοποίηση ασφαλείας μας σχετικά με αυτό το, διαθέσιμο παραπάνω.
◆
"Kestrel": {
"Τελικά Σημεία": {
"HTTP": {
"Url": "http://*:1242"
}
}
}
}Εάν δεν χρειάζεστε πρόσβαση από όλες τις πηγές, αλλά για παράδειγμα μόνο το LAN σας, τότε είναι πολύ καλύτερη ιδέα να ελέγξετε την τοπική διεύθυνση IP του μηχανήματος που φιλοξενεί το ASF, για παράδειγμα 192. 68.0.10 και χρησιμοποιήστε το αντί για * στο παραπάνω παράδειγμα. Δυστυχώς, αυτό είναι δυνατό μόνο αν η διεύθυνσή σας LAN είναι πάντα η ίδια, όπως αλλιώς θα έχετε πιθανώς πιο ικανοποιητικά αποτελέσματα με * και το δικό σας τείχος προστασίας πάνω από αυτό επιτρέποντας μόνο τοπικά υποδίχτυα να έχουν πρόσβαση στη θύρα του ASF.
Η διασύνδεση ASF IPC από προεπιλογή δεν απαιτεί κανενός είδους έλεγχο ταυτότητας, καθώς IPCPassword έχει οριστεί σε null. Ωστόσο, εάν IPCPassword είναι ενεργοποιημένη με το να οριστεί σε οποιαδήποτε μη κενή τιμή, κάθε κλήση στο API του ASF απαιτεί τον κωδικό πρόσβασης που ταιριάζει με τον ορισμό IPCPassword. Αν παραλείψετε τον έλεγχο ταυτότητας ή εισάγετε λάθος κωδικό, θα λάβετε 401 - Μη εξουσιοδοτημένο. Μετά από 5 αποτυχημένες προσπάθειες ταυτοποίησης (λάθος κωδικός), θα μπλοκαριστείτε προσωρινά με το σφάλμα 403 - Απαγορευμένο.
Ο έλεγχος ταυτότητας μπορεί να γίνει με δύο διαφορετικούς τρόπους.
Σε γενικές γραμμές, θα πρέπει να χρησιμοποιήσετε το πεδίο HTTP αιτήσεις κεφαλίδες, ορίζοντας το πεδίο Authentication με τον κωδικό σας ως τιμή. Ο τρόπος για να γίνει αυτό εξαρτάται από το πραγματικό εργαλείο που χρησιμοποιείτε για την πρόσβαση στη διεπαφή IPC του ASF, για παράδειγμα αν χρησιμοποιείτε curl τότε θα πρέπει να προσθέσετε -H 'Authentication: MyPassword' ως παράμετρο. Με αυτόν τον τρόπο περνάει ο έλεγχος ταυτότητας στις επικεφαλίδες του αιτήματος, όπου στην πραγματικότητα θα πρέπει να πραγματοποιηθεί.
Εναλλακτικά μπορείτε να προσαρτήσετε την παράμετρο κωδικού πρόσβασης στο τέλος της διεύθυνσης URL που πρόκειται να καλέσετε, για παράδειγμα καλώντας /Api/ASF? assword=MyPassword αντί για /Api/ASF μόνο. Αυτή η προσέγγιση είναι αρκετά καλή, αλλά προφανώς εκθέτει τον κωδικό πρόσβασης στο ανοικτό, πράγμα που δεν είναι απαραίτητα πάντα κατάλληλο. Εκτός από αυτό είναι ένα επιπλέον επιχείρημα στη συμβολοσειρά ερωτήματος, το οποίο περιπλέκει την εμφάνιση του URL και το κάνει να αισθάνεται σαν να είναι συγκεκριμένο URL, ενώ ο κωδικός πρόσβασης ισχύει για ολόκληρη την επικοινωνία ASF API.
Και οι δύο τρόποι υποστηρίζονται και είναι απόλυτα στο χέρι σας που θέλετε να επιλέξετε. Σας συνιστούμε να χρησιμοποιείτε κεφαλίδες HTTP οπουδήποτε μπορείτε, καθώς η χρήση του είναι πιο κατάλληλη από τη συμβολοσειρά ερωτήματος. Ωστόσο, υποστηρίζουμε και το string ερωτήματος, κυρίως λόγω διαφόρων περιορισμών που σχετίζονται με τις κεφαλίδες αιτήματος. Ένα καλό παράδειγμα περιλαμβάνει την έλλειψη προσαρμοσμένων κεφαλίδων κατά την έναρξη μιας σύνδεσης websocket σε javascript (αν και είναι απολύτως έγκυρη σύμφωνα με το RFC). Σε αυτή την κατάσταση το ερώτημα συμβολοσειρά είναι ο μόνος τρόπος για να πιστοποιήσετε.
Η διεπαφή IPC μας, στο additon στο ASF API και ASF-ui περιλαμβάνει επίσης τεκμηρίωση swagger, το οποίο είναι διαθέσιμο στο /swagger URL. Η τεκμηρίωση του Swagger χρησιμεύει ως μεσάζων μεταξύ της εφαρμογής μας API και άλλων εργαλείων που το χρησιμοποιούν (π.χ. ASF-ui). Παρέχει μια πλήρη τεκμηρίωση και διαθεσιμότητα όλων των τερματικών σημείων API σε OpenAPI προδιαγραφή που μπορεί να καταναλωθεί εύκολα από άλλα έργα. σας επιτρέπει να γράψετε και να ελέγξετε ASF API με ευκολία.
Εκτός από τη χρήση της τεκμηρίωσης swagger μας ως μια πλήρη προδιαγραφή του ASF API, μπορείτε επίσης να το χρησιμοποιήσετε ως φιλικό προς το χρήστη τρόπο για να εκτελέσετε διάφορα API τελικά σημεία, κυρίως εκείνα που δεν εφαρμόζονται από ASF-ui. Δεδομένου ότι η τεκμηρίωση swagger μας δημιουργείται αυτόματα από τον κώδικα ASF, έχετε μια εγγύηση ότι η τεκμηρίωση θα είναι πάντα ενημερωμένη με τα τελικά σημεία API που περιλαμβάνει η έκδοση του ASF.

ASF από προεπιλογή ακούει μόνο στις διευθύνσεις localhost , που σημαίνει ότι η πρόσβαση σε ASF IPC από οποιοδήποτε άλλο μηχάνημα, αλλά το δικό σας είναι αδύνατο. Αν δεν τροποποιήσετε τα προεπιλεγμένα τελικά σημεία, ο εισβολέας θα χρειαστεί άμεση πρόσβαση στο δικό σας μηχάνημα, προκειμένου να έχει πρόσβαση στην IPC του ASF, ως εκ τούτου είναι τόσο ασφαλές όσο μπορεί να είναι και δεν υπάρχει καμία πιθανότητα να έχει κάποιος άλλος πρόσβαση σε αυτό, ακόμη και από το δικό σας LAN.
Ωστόσο, αν αποφασίσετε να αλλάξετε τις προεπιλεγμένες διευθύνσεις localhost δεσμεύουν σε κάτι άλλο, τότε υποτίθεται ότι ορίζετε σωστούς κανόνες τείχους προστασίας μόνοι σας προκειμένου να επιτρέψετε μόνο εξουσιοδοτημένες IPs να έχουν πρόσβαση στη διεπαφή IPC του ASF. Εκτός από αυτό, θα πρέπει να δημιουργήσετε IPCPassword, καθώς το ASF θα αρνηθεί να επιτρέψει σε άλλες μηχανές να έχουν πρόσβαση σε ASF API χωρίς ένα, γεγονός που προσθέτει ένα άλλο στρώμα επιπλέον ασφάλειας. Μπορεί επίσης να θέλετε να εκτελέσετε τη διεπαφή IPC της ASF πίσω από έναν αντίστροφο διακομιστή μεσολάβησης σε αυτήν την περίπτωση, η οποία εξηγείται περαιτέρω παρακάτω.
Ναι, αυτό είναι που σχεδιάστηκε το ASF API και μπορείτε να χρησιμοποιήσετε οτιδήποτε μπορεί να στείλει αίτημα HTTP για πρόσβαση σε αυτό. Οι τοπικοί χρήστες ακολουθούν τη λογική CORS , and we allow access from all origins for them (*), αρκεί να οριστεί το IPCPassword ως επιπλέον μέτρο ασφαλείας. Αυτό σας επιτρέπει να εκτελέσετε διάφορες αιτήσεις ASF API, χωρίς να επιτρέπεται σε ενδεχομένως κακόβουλα σενάρια να το κάνουν αυτό αυτόματα (όπως θα έπρεπε να γνωρίζουν το IPCPassword σας για να το κάνετε αυτό).
Ναι, σας συνιστούμε να χρησιμοποιήσετε έναν αντίστροφο διακομιστή μεσολάβησης για αυτό. Με αυτόν τον τρόπο μπορείτε να αποκτήσετε πρόσβαση στο διακομιστή web σας με τυπικό τρόπο, ο οποίος θα έχει πρόσβαση στη IPC του ASF στο ίδιο μηχάνημα. Εναλλακτικά, αν δεν θέλετε να εκτελέσετε με αντίστροφο proxy, μπορείτε να χρησιμοποιήσετε προσαρμοσμένη διαμόρφωση με την κατάλληλη διεύθυνση URL για αυτό. Για παράδειγμα, αν το μηχάνημά σας είναι σε ένα VPN με διεύθυνση 10.8.0.1 , τότε μπορείτε να ρυθμίσετε το http://10.8.0. :1242 ακούγοντας URL στο IPC config, το οποίο θα επιτρέπει την πρόσβαση IPC μέσα από το ιδιωτικό VPN σας, αλλά όχι από οπουδήποτε αλλού.
Μπορώ να χρησιμοποιήσω το IPC του ASF πίσω από έναν αντίστροφο διακομιστή μεσολάβησης, όπως Apache ή Nginx?
Yes, our IPC is fully compatible with such setup, so you're free to host it also in front of your own tools for extra security and compatibility, if you'd like to. Σε γενικές γραμμές ο εξυπηρετητής Kestrel http του ASF είναι πολύ ασφαλής και δεν έχει κανένα κίνδυνο όταν συνδέεται απευθείας με το διαδίκτυο, αλλά το βάζοντας πίσω από έναν αντιστροφή-proxy όπως Apache ή Nginx θα μπορούσε να παρέχει επιπλέον λειτουργικότητα που δεν θα ήταν δυνατό να επιτευχθεί διαφορετικά, όπως η ασφάλιση της διασύνδεσης του ASF με βασικό πιστοποιητικό .
Παράδειγμα ρύθμισης παραμέτρων Nginx μπορείτε να βρείτε παρακάτω. Έχουμε συμπεριλάβει πλήρη μπλοκ server , αν και ενδιαφέρεστε κυρίως για τοποθεσία. Παρακαλούμε ανατρέξτε στην τεκμηρίωση nginx αν χρειάζεστε περαιτέρω εξηγήσεις.
ο εξυπηρετητής „
ακούει *:443 ssl;
server_name asf.mydomain.com;
ssl_certificate /path/to/your/fullchain. em;
ssl_certificate_key /path/to/your/privkey. em;
τοποθεσία ~* /Api/NLog {
proxy_pass http://127.0.0. :1242;
# Μόνο αν χρειαστεί να παρακάμψετε τον προεπιλεγμένο υπολογιστή
# proxy_set_header Host 127. .0. ;
# Οι X-headers θα πρέπει πάντα να καθορίζονται όταν τα proxying requests σε ASF
# Είναι ζωτικής σημασίας για την ορθή αναγνώριση της αρχικής IP, επιτρέποντας στο ASF να π.χ. απαγορεύει τους πραγματικούς παραβάτες αντί του διακομιστή nginx
# Ο προσδιορισμός τους επιτρέπει στο ASF να επιλύει σωστά τις διευθύνσεις IP των χρηστών που κάνουν αιτήσεις - κάνοντας το nginx να λειτουργεί ως αντίστροφη μεσολάβηση
# Η μη διευκρίνιση τους θα προκαλέσει την αντιμετώπιση του nginx σας ως πελάτη - nginx θα λειτουργήσει ως παραδοσιακός proxy σε αυτή την περίπτωση
# Αν δεν μπορείτε να φιλοξενήσετε υπηρεσία nginx στον ίδιο υπολογιστή με το ASF, πιθανότατα θέλετε να ρυθμίσετε τα KnownNetworks κατάλληλα εκτός από αυτά
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Server $host;
# Προσθέτουμε αυτές τις 3 επιπλέον επιλογές για websockets proxying, δείτε https://nginx. rg/el/docs/http/websocket.html
proxy_http_version 1. ;
proxy_set_header Σύνδεση "Αναβάθμιση";
proxy_set_header Upgrade $http_upgrade;
}
τοποθεσία / {
proxy_pass http://127. .0. :1242;
# Μόνο αν χρειαστεί να παρακάμψετε τον προεπιλεγμένο υπολογιστή
# proxy_set_header Host 127. .0. ;
# Οι X-headers θα πρέπει πάντα να καθορίζονται όταν τα proxying requests σε ASF
# Είναι ζωτικής σημασίας για την ορθή αναγνώριση της αρχικής IP, επιτρέποντας στο ASF να π.χ. απαγόρευσε τους πραγματικούς παραβάτες αντί του διακομιστή nginx
# Ο προσδιορισμός τους επιτρέπει στο ASF να επιλύει σωστά τις διευθύνσεις IP των χρηστών που κάνουν αιτήσεις - κάνοντας το nginx να λειτουργεί ως αντίστροφο proxy
# Η μη διευκρίνιση τους θα προκαλέσει την αντιμετώπιση του nginx σας ως πελάτη - nginx θα λειτουργήσει ως παραδοσιακός proxy σε αυτή την περίπτωση
# Αν δεν μπορείτε να φιλοξενήσετε υπηρεσία nginx στον ίδιο υπολογιστή με το ASF, πιθανότατα θέλετε να ρυθμίσετε τα KnownNetworks κατάλληλα εκτός από αυτά
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Server $host;
}
}Παραδείγματα διαμόρφωσης Apache μπορείτε να βρείτε παρακάτω. Παρακαλούμε ανατρέξτε στην τεκμηρίωση apache αν χρειάζεστε περαιτέρω εξηγήσεις.
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName asf.mydomain. om
SSLEngine σε
SSLCertificateFile /path/to/your/fullchain. em
SSLCertificateKeyFile /path/to/your/privkey. em
# TODO: Το Apache δεν μπορεί να κάνει σωστά ταιριάσματα χωρίς διάκριση πεζών-κεφαλαίων, έτσι hardcode δύο συνηθέστερα χρησιμοποιούμενες περιπτώσεις
ProxyPass "/api/nlog" "ws://127. .0. :1242/api/nlog"
ProxyPass "/Api/NLog" "ws://127.0.0. :1242/Api/NLog"
ProxyPass "/" "http://127.0.1:1242/"
</VirtualHost>
</IfModule>Yes, you can achieve it through two different ways. Ένας συνιστώμενος τρόπος θα ήταν να χρησιμοποιήσετε έναν αντίστροφο διακομιστή μεσολάβησης για αυτό, όπου μπορείτε να αποκτήσετε πρόσβαση στο διακομιστή web σας μέσω https όπως συνήθως, και συνδέστε μέσω του με τη διεπαφή IPC ASF στην ίδια μηχανή. Με αυτόν τον τρόπο η επισκεψιμότητα σας είναι πλήρως κρυπτογραφημένη και δεν χρειάζεται να τροποποιήσετε την IPC με οποιονδήποτε τρόπο για να υποστηρίξετε μια τέτοια ρύθμιση.
Ο δεύτερος τρόπος περιλαμβάνει τον καθορισμό προσαρμοσμένης ρύθμισης για τη διασύνδεση IPC του ASF, όπου μπορείτε να ενεργοποιήσετε το τελικό σημείο https και να παράσχετε το κατάλληλο πιστοποιητικό απευθείας στον διακομιστή μας Kestrel http. Με αυτόν τον τρόπο συνιστάται αν δεν εκτελείτε κανέναν άλλο διακομιστή ιστού και δεν θέλετε να εκτελέσετε έναν αποκλειστικά για ASF. Διαφορετικά, είναι πολύ πιο εύκολο να επιτευχθεί μια ικανοποιητική ρύθμιση με τη χρήση ενός μηχανισμού αντίστροφης μεσολάβησης.
Κατά την εκκίνηση της IPC παίρνω ένα σφάλμα: System.IO. Εξαίρεση: Αποτυχία δέσμευσης στη διεύθυνση, Έγινε μια προσπάθεια να αποκτήσετε πρόσβαση σε μια υποδοχή με τρόπο που απαγορεύεται από τα δικαιώματα πρόσβασης
Αυτό το σφάλμα δείχνει ότι κάτι άλλο στο μηχάνημά σας είτε χρησιμοποιεί ήδη αυτή τη θύρα, είτε το διατηρεί για μελλοντική χρήση. Αυτό θα μπορούσε να είναι εσείς, αν προσπαθείτε να εκτελέσετε δεύτερη περίπτωση ASF στο ίδιο μηχάνημα, αλλά πιο συχνά αυτό είναι τα Windows εξαιρουμένης της θύρας 1242 από τη χρήση σας, επομένως θα πρέπει να μετακινήσετε το ASF σε άλλη θύρα. In order to do that, follow example config above, and simply try to pick another port, such as 12420.
Φυσικά, θα μπορούσατε επίσης να προσπαθήσετε να μάθετε τι μπλοκάρει τη θύρα 1242 από τη χρήση ASF, και να το αφαιρέσετε αλλά αυτό είναι συνήθως πολύ πιο ενοχλητικό από το να καθοδηγούμε το ASF να χρησιμοποιήσει μια άλλη θύρα, έτσι θα παρακάμψουμε περαιτέρω σε αυτό εδώ.
Το ASF περιλαμßάνει πρόσθετο μέτρο ασφαλείας το οποίο, εξ ορισμού, επιτρέπει μόνο τη διασύνδεση κυκλώματος (localhost, το δικό σας μηχάνημα) για να αποκτήσετε πρόσβαση στο ASF API χωρίς IPCPassword που έχει οριστεί στο config. Αυτό συμβαίνει επειδή η χρήση IPCPassword θα πρέπει να είναι ένα ελάχιστο μέτρο ασφαλείας **** που ορίζεται από όλους όσοι αποφασίζουν να εκθέσουν περαιτέρω τη διεπαφή ASF.
Η αλλαγή υπαγορεύθηκε από το γεγονός ότι μαζική ποσότητα ASF που φιλοξενήθηκε παγκοσμίως από άγνωστους χρήστες αναλήφθηκαν για κακόβουλες προθέσεις, συνήθως αφήνοντας ανθρώπους χωρίς λογαριασμούς και χωρίς αντικείμενα πάνω τους. Τώρα θα μπορούσαμε να πούμε "θα μπορούσαν να διαβάσουν αυτή τη σελίδα πριν ανοίξουν το ASF σε ολόκληρο τον κόσμο", but instead it makes more senicνόημα to disallow insecureανασφαλής ASF setupsρυθμίσεις by defaultπροεπιλογή, and require from users an action if they explicitly want to allow it, which we elaborate about belowπαρακάτω.
Ειδικότερα, μπορείτε να παρακάμψετε την απόφασή μας καθορίζοντας τα δίκτυα που εμπιστεύεστε να φτάσετε στο ASF χωρίς να ορίσετε το IPCPassword , μπορείτε να ορίσετε αυτές στην ιδιότητα KnownNetworks σε προσαρμοσμένες ρυθμίσεις. However, unless you really know what you're doing and fully understand the risks, you should instead use IPCPassword as declaring KnownNetworks will allow everybody from those networks to access ASF API unconditionally. Είμαστε σοβαροί, οι άνθρωποι είχαν ήδη πυροβολήσει τους εαυτούς τους με το πόδι πιστεύοντας ότι οι αντίστροφοι proxies τους και οι κανόνες iptables ήταν ασφαλείς, αλλά ήταν't, IPCPassword είναι ο πρώτος και μερικές φορές ο τελευταίος κηδεμόνας, αν αποφασίσετε να εξαιρεθείτε από αυτό το απλό, αλλά πολύ αποτελεσματικό και ασφαλές μηχανισμό, θα έχετε μόνο τον εαυτό σας να κατηγορήσει.
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|
- 🏡 Αρχική
- 💬 Συχνές Ερωτήσεις
- ⚙️ Ρύθμιση (ξεκινήστε εδώ)
- 👥 Εξαργύρωση παιχνιδιών παρασκηνίου
- 📢 Εντολές
- 🛠️ Συμβατότητα
- 🔧 Παραμετροποίηση
- 🧩 ItemsMatcherPlugin
- 📋 Διαχείριση
- ⏱️ Επιδόσεις
- 📡 Απομακρυσμένη επικοινωνία
- 👪 Κοινή χρήση Steam με την οικογένεια
- 🔄 Ανταλλαγές







