Operatori de Releu

Tor poate gestiona releele cu adrese IP dinamice. Doar lăsați linia "Adresă" în torrc gol, și Tor va ghici.

When upgrading your Tor relay, or moving it to a different computer, be sure to keep the same identity keys (stored in "keys/ed25519_master_id_secret_key" and "keys/secret_id_key" in your DataDirectory).

If you are a bridge operator, also make sure to keep pt_state/. It contains data required for your bridge to keep working with the same bridge line.

For simplicity, just copying over the entire DataDirectory should work too.

You may wish to keep backups of these identity keys, plus pt_state for a bridge, so you can restore the relay if something goes wrong.

Nu. Dacă forțele de ordine devin interesate de traficul din releul dvs. de ieșire, este posibil ca ofițerii să vă confiște computerul. Din acest motiv, cel mai bine este să nu rulați releul de ieșire din casa dvs. sau să utilizați conexiunea la internet de acasă.

În schimb, luați în considerare să rulați releul de ieșire dintr-o instalație comercială care oferă suport pentru Tor. Aveți o adresă IP separată pentru releul de ieșire și nu vă orientați propriul trafic prin acesta. Desigur, ar trebui să evitați să păstrați informații personale sau sensibile pe computerul care găzduiește releul de ieșire.

De ce variază sarcina releului

Tor gestionează lățimea de bandă în întreaga rețea. Face o treabă rezonabilă pentru majoritatea releelor. Dar obiectivele lui Tor sunt diferite de protocoalele precum BitTorrent. Tor vrea pagini web cu latență scăzută, care necesită conexiuni rapide cu spațiul de lucru. BitTorrent vrea descărcări în vrac, care necesită utilizarea tuturor lățimii de bandă.

Lucrăm la un scanner de lățime de bandă nouă, care este mai ușor de înțeles și de întreținut. Acesta va avea diagnostice pentru relee care nu se măsoară, și relee care au măsurători scăzute.

De ce are nevoie Tor de scanere de lățime de bandă?

Majoritatea furnizorilor vă spun viteza maximă a conexiunii locale. Dar Tor are utilizatori din întreaga lume, iar utilizatorii noștri se conectează la unul sau două relee de gardă la întâmplare. Deci, trebuie să știm cât de bine se poate conecta fiecare releu la întreaga lume.

So even if all relay operators set their advertised bandwidth to their local connection speed, we would still need bandwidth authorities to balance the load between different parts of the Internet.

Ce este o încărcare normală a releului?

Este normal ca majoritatea releelor să fie încărcate la 30%-80% din capacitatea lor. Acest lucru este bun pentru clienți: Un releu supraîncărcat are o latență ridicată. (Vrem suficiente relee pentru ca fiecare releu să fie încărcat la 10%. Atunci Tor ar fi aproape la fel de rapid ca internetul mai larg).

Uneori, un releu este lent, deoarece procesorul său este lent sau conexiunile sale sunt limitate. Alteori, este rețeaua care este lentă: Releul are o privire proastă la majoritatea celorlalte relee ale rotorului sau este la o distanță lungă.

Află ce limitează un releu

Multe lucruri pot încetini un releu. Iată cum să le urmăriți.

Limite de Sistem

  • Verificați utilizarea memoriei RAM, procesorul și descriptor socket/fișier pe releu

Tor înregistrează unele dintre acestea atunci când începe. Altele pot fi vizualizate folosind instrumente de top sau similare.

Limitele furnizorului

  • Verificați internetul peering (lățime de bandă, latență) de la furnizorul de releu la alte relee. Releele care tranzitează prin Comcast au fost lente uneori. Releele din afara Americii de Nord și a Europei de Vest sunt de obicei mai lente.

Limite de rețea Tor

Lățimea de bandă a releului poate fi limitată de lățimea de bandă observată a unui releu sau de lățimea de bandă măsurată a autorităților directorului. Iată cum puteți afla care măsurătoare vă limitează releul:

  • Verificați fiecare dintre voturile pentru releu pe consensus-health (pagină mare), și verificați mediana. Dacă releul nu este marcat de către unele autorități directoare:
    • Are adresa IPv4 sau IPv6 greșită?
    • Adresa IPv4 sau IPv6 nu este accesibilă din anumite rețele?
    • Există mai mult de 2 de relee pe adresa IPv4?

În caz contrar, verificați lățimea de bandă observată a releului și rata lățimii de bandă (limită). Căutați releul pe Metrics. Apoi mouse-ul peste antetul lățimii de bandă pentru a vedea lățimea de bandă observată și rata lățimii de bandă a releului.

Iată câteva detalii și câteva exemple: Scădere în greutate consens și viteza Rampup a releului de ieșire.

Cum să-l repari

Cea mai mică dintre aceste cifre limitează lățimea de bandă alocată releului.

  • Dacă este rata de lățime de bandă, crește BandwidthRate/Burst sau RelayBandwidthRate/Burst în torrc.
  • Dacă este lățimea de bandă observată, releul dumneavoastră nu va cere mai multă lățime de bandă până când se vede că devine mai rapid. Trebuie să-ți dai seama de ce este lent.
  • Dacă este lățimea de bandă medie măsurată, releul dumneavoastră arată lent de la majoritatea autorităților de lățime de bandă. Trebuie să știi de ce o măsoară încet.

Faceți propriile măsurători ale releului

Dacă releul dumneavoastră consideră că este lent sau autoritățile de lățime de bandă cred că este lentă, puteți testa singur lățimea de bandă:

  • Run a test using tor to see how fast tor can get on your network

    For this, you need to configure a tor client to use use your relay as entry. If your relay has only Guard flag, set EntryNodes with your relay fingerprint in torrc. If your relay doesn't have Guard flag or it has Guard and Exit flags, you can't set your relay as an entry node (see https://gitlab.torproject.org/tpo/core/tor/-/issues/22204), but you can set it as your bridge, even if it is not a bridge. To set your relay as a bridge, add to your torrc:

    Bridge <ip>:<port>
    UseBridge 1
    

    Then download a large file using your SocksPort as a socks proxy. For this, you can use curl, eg:

    curl https://target/path --proxy socks5h://<user>:<password>@127.0.0.1:<socks-port>
    

    Using different user/password guarantees different circuits. You can use $RANDOM.

    That will give you some idea of how much traffic your relay can sustain.

    Alternatively, you can run relay_bw to test your relay using 2 hops circuits, in a similar way as sbws does.

  • Run a test using tor and chutney to find out how fast tor can get on your CPU. Keep increasing the data volume until the bandwidth stops increasing.

Da, obțineți un anonimat mai bun împotriva unor atacuri.

Cel mai simplu exemplu este un atacator care deține un număr mic de relee Tor. Vor vedea o conexiune de la dvs., dar nu vor putea ști dacă conexiunea este stabilită de pe computer sau a fost transmisă de la altcineva.

Există câteva cazuri în care pare să nu ajute: dacă un atacator vă poate urmări întregul trafic de intrare și ieșire, atunci este ușor să afle ce conexiuni au fost transmise și care au pornit de la dvs. (În acest caz, încă nu știu destinațiile dvs. decât dacă le urmăresc și ei, dar este la fel ca atunci când sunteți un client obișnuit.)

Există, de asemenea, unele dezavantaje la rularea unui releu Tor. În primul rând, în timp ce avem doar câteva sute de relee, faptul că executați unul poate semnala unui atacator că puneți un accent ridicat pe anonimat. În al doilea rând, există unele atacuri mai ezoterice care nu sunt la fel de bine înțelese sau bine testate, care implică utilizarea cunoștințelor că rulează un releu - de exemplu, un atacator poate fi capabil să „observe” dacă „ trimiteți trafic chiar dacă nu vă pot urmări de fapt rețeaua, transmitând traficul prin releul Tor și observând modificările din calendarul traficului.

Este o întrebare deschisă de cercetare dacă beneficiile depășesc riscurile. Multe dintre acestea depind de atacurile care vă îngrijorează. Pentru majoritatea utilizatorilor, considerăm că este o mișcare inteligentă.

Dacă permiteți conexiuni de ieșire, unele servicii la care oamenii se conectează din releu se vor conecta înapoi pentru a colecta mai multe informații despre dvs. De exemplu, unele servere IRC se conectează din nou la portul ID pentru a înregistra ce utilizator a făcut conexiunea. (Acest lucru nu funcționează cu adevărat pentru ei, deoarece Tor nu cunoaște aceste informații, dar ei încearcă oricum.) De asemenea, utilizatorii care ies din releul dvs. ar putea atrage atenția altor utilizatori pe serverul, site-ul IRC, etc. care vrea să știe mai multe despre gazda prin care transmit.

Un alt motiv este că grupurile care scanează proxy-uri deschise pe Internet au aflat că uneori releele Tor își expun porturile pentru socks în lume. Vă recomandăm să vă legați portul socks numai de rețelele locale.

În orice caz, trebuie să fiți la curent cu securitatea. Consultați acest articol despre securitate pentru releele Tor pentru mai multe sugestii.

If you're using Debian or Ubuntu especially, please use the Tor Project's repository, so you can easily receive updates. In addition, using the package provides other conveniences:

  • Your ulimit -n gets set to a high number, so Tor can keep open all the connections it needs.
  • The package creates and uses a separate user, so you don't need to run Tor as your own user.
  • The package includes an init script so Tor runs at boot.
  • Tor can bind to low-numbered ports, then drop privileges.

Căutăm persoane cu conexiuni de internet destul de fiabile, care au cel puțin 10 Mbit/s (Mbps) lățime de bandă disponibilă în fiecare mod. Dacă sunteți dumneavoastră, vă rugăm să luați în considerare rularea unui releu Tor.

Chiar dacă nu aveți cel puțin 10 Mbit/s de lățime de bandă disponibilă, puteți ajuta în continuare rețeaua Tor prin rularea unui pod Tor cu suport obfs4. În acest caz, ar trebui să aveți cel puțin 1 Mbit/s de lățime de bandă disponibilă.

În cuvinte simple, ele funcționează astfel:

  • Există un fișier cheie primară secret de identitate ed25519 numit "ed25519_master_id_secret_key". Acesta este cel mai important, deci asigurați-vă că păstrați o copie de rezervă într-un loc sigur - fișierul este sensibil și ar trebui protejat. Tor l-ar putea cripta pentru dvs. dacă îl generați manual și introduceți o parolă atunci când vi se solicită.
  • Este generată o cheie de semnare pe termen mediu, denumită "ed25519_signing_secret_key", pentru ca Tor să o folosească. De asemenea, se generează un certificat numit "ed25519_signing_cert" care este semnat de cheia secretă de identitate primară și confirmă că cheia de semnare pe termen mediu este valabilă pentru o anumită perioadă de timp. Valabilitatea implicită este de 30 de zile, dar aceasta poate fi personalizată setând "SigningKeyLifetime N days|weeks|months" în torrc.
  • Există, de asemenea, o cheie publică primară numită "ed25519_master_id_public_key", care este identitatea reală a releului promovat în rețea. Acesta nu este sensitive și poate fi calculat cu ușurință de la „ed5519_master_id_secret_key”.

Tor va avea nevoie doar de acces la cheia și certificatul de semnare pe termen mediu, atâta timp cât acestea sunt valide, astfel încât cheia secretă de identitate primară poate fi păstrată în afara DataDirectory/Keys, pe un suport de stocare sau pe un alt computer. Va trebui să reînnoiți manual cheia de semnare și certificatul pe termen mediu înainte de a expira altfel procesul Tor de pe releu va expira.

Această caracteristică este opțională, nu trebuie să o utilizați decât dacă doriți. Dacă doriți ca releul să funcționeze nesupravegheat pentru o perioadă mai lungă de timp, fără a fi nevoie să faceți manual reînnoirea cheii de semnare pe termen mediu în mod regulat, cel mai bine este să lăsați cheia secretă de identitate primară în DataDirectory/Keys, doar faceți o copie de rezervă în cazul în care va trebui să o reinstalați. Dacă doriți să utilizați această caracteristică, puteți consulta ghidul nostru detaliat pe această temă.

Dacă releul dvs. este relativ nou, atunci acordați-i timp. Tor decide euristic ce relee folosește pe baza rapoartelor autorităților de lățime de bandă. Aceste autorități iau măsurători ale capacității releului dvs. și, în timp, direcționează mai mult trafic acolo până când ajunge la o încărcare optimă. Ciclul de viață al unui releu nou este explicat mai detaliat în această postare pe blog. Dacă rulați un releu de ceva timp și tot aveți probleme, încercați să întrebați pe lista de relee tor .

Puteți rula un releu în Windows urmând aceste tutoriale:

Ar trebui să rulați un releu Windows numai dacă îl puteți rula 24/7. Dacă nu puteți garanta acest lucru, Snowflake este o modalitate mai bună de a contribui cu resursele dvs. La rețeaua Tor.

  • Releul de ieșire este cel mai necesar tip de releu, dar, de asemenea, are cel mai ridicat risc legal de expunere (și NU trebuie să îl rulați de acasă).
  • Dacă doriți să rulați un releu cu efort minim, releele de protecție rapidă sunt de asemenea foarte utile
  • Urmate de poduri.

Toate conexiunile de ieșire trebuie să fie permise, astfel încât fiecare releu să poată comunica cu fiecare alt releu.

În multe jurisdicții, operatorii de relee Tor sunt protejați legal de aceleași reglementări comune ale transportatorilor care împiedică furnizorii de servicii de internet să fie răspunzători pentru conținutul terților care trece prin rețeaua lor. Releele de ieșire care filtrează un anumit trafic ar putea pierde aceste protecții.

Tor promovează accesul gratuit la rețea fără interferențe. Releele de ieșire nu trebuie să filtreze traficul care trece prin ele spre internet. Releele de ieșire care sunt descoperite că filtrează traficul vor primi indicatorul BadExit dacă sunt detectate.

Deoarece releul acum este paznic, clienții îl folosesc mai puțin în alte poziții, dar puțini clienți și-au schimbat paznicii existenți pentru a-l folosi ca gardian. Citiți mai multe detalii în această postare a blogului sau în Schimbarea gardienilor: un cadru pentru înțelegerea și îmbunătățirea selecției gărzii de intrare în Tor.

Parametrii alocați în AccountingMax și în BandwidthRate se aplică atât funcțiilor client cât și funcțiilor releului procesului Tor. Astfel, este posibil să descoperiți că nu puteți naviga imediat ce Tor trece în hibernare, lucru semnalat de această intrare din jurnal:

Bandwidth soft limit reached; commencing hibernation.
No new connections will be accepted

Soluția este de a rula două procese Tor - un releu și un client, fiecare având propria configurație. O modalitate de a face acest lucru (dacă începeți de la o configurare a releului de lucru) este următoarea:

  • În fișierul de releu Tor torcc, setați pur și simplu SocksPort la 0.
  • Creați un nou fișier torrc client din torrc.sample și asigurați-vă că folosește un fișier jurnal diferit de releu. O convenție de denumire poate fi torrc.client și torrc.relay.
  • Modificați scripturile de pornire client Tor și releu pentru a include -f /path/to/correct/torrc.
  • În Linux/BSD/Mac OS X, schimbarea scripturilor de pornire în Tor.client șiTor.relay poate face mai ușoară separarea configurațiilor.

Grozav. Dacă doriți să rulați mai multe relee pentru a dona mai mult rețelei, suntem foarte mulțumiți. Dar vă rugăm să nu rulați mai mult de câteva zeci pe aceeași rețea, deoarece o parte din obiectivul rețelei Tor este dispersia și diversitatea.

Dacă decideți să rulați mai multe relee, vă rugăm să setați opțiunea de configurare „MyFamily” în torrc pentru fiecare releu, cu listarea tuturor releelor (separate prin virgulă) care sunt sub controlul dvs.:

MyFamily $fingerprint1,$fingerprint2,$fingerprint3

unde fiecare fingerprint este o amprentă de identificare de 40 de caractere (fără spații).

În acest fel, clienții Tor vor ști să evite utilizarea mai multor relee într-un singur circuit. Ar trebui să setați MyFamily dacă aveți control administrativ asupra computerelor sau a rețelei lor, chiar dacă nu toate sunt în aceeași locație geografică.

Când o ieșire este neconfigurată sau dăunătoare, i se atribuie marcajul BadExit. Acest lucru îi spune lui Tor să evite ieșirea prin acel releu. De fapt, releele cu acest marcaj devin non-ieșiri. Dacă ați primit acest marcaj, atunci am descoperit o problemă sau o activitate suspectă atunci când dirijăm traficul prin ieșirea dvs. și nu am putut să vă contactăm. Vă rugăm să vă adresați echipei releelor rele pentru a putea rezolva problema.

Dacă releul Tor utilizează mai multă memorie decât doriți, iată câteva sfaturi pentru reducerea amprentei sale:

  • Dacă sunteți pe Linux, este posibil să întâmpinați erori de fragmentare a memoriei în implementarea malloc pentru glibc. Adică, atunci când Tor eliberează memoria înapoi în sistem, bucățile de memorie sunt fragmentate, astfel încât sunt greu de reutilizat. Tor tarball este livrat cu implementarea malloc a OpenBSD, care nu are atât de multe bug-uri de fragmentare (dar compromisul este o sarcină mai mare a procesorului). Puteți spune lui Tor să folosească în schimb această implementare malloc: ./configure --enable-openbsd-malloc.
  • Dacă utilizați un releu rapid, ceea ce înseamnă că aveți multe conexiuni TLS deschise, probabil că pierdeți multă memorie în bufferele interne ale OpenSSL (38KB + per socket). Am aplicat OpenSSL pentru eliberarea memoriei tampon neutilizate mai agresiv. Dacă actualizați la OpenSSL 1.0.0 sau mai nou, procesul de construire a lui Tor va recunoaște și utiliza automat această caracteristică.
  • Dacă încă nu puteți gestiona încărcarea de memorie, luați în considerare reducerea lățimii de bandă pe care o anunță releul dvs. Publicarea unei lățimi de bandă mai mici înseamnă că veți atrage mai puțini utilizatori, astfel încât releul dvs. nu ar trebui să fie la fel de mare. Consultați opțiunea MaxAdvertisedBandwidth din pagina de manual.

Cum s-a mai spus, releele Tor rapide folosesc multă memorie ram. Nu este neobișnuit ca un releu de ieșire rapidă să utilizeze 500-1000 MB de memorie.

Opțiunile de contorizare din fișierul torr vă permit să specificați cantitatea maximă de octeți pe care o folosește releul dvs. pentru o perioadă de timp.

    AccountingStart day week month [day] HH:MM

Aceasta specifică momentul în care contorizarea trebuie resetată. De exemplu, pentru a configura o cantitate totală de octeți servită timp de o săptămână (care se resetează în fiecare miercuri la 10:00), ar trebui să utilizați:

    AccountingStart week 3 10:00
    AccountingMax 500 GBytes

This specifies the maximum amount of data your relay will send during an accounting period, and the maximum amount of data your relay will receive during an accounting period. Când perioada de contorizare se resetează (de la AccountingStart), contoarele pentru AccountingMax sunt resetate la 0.

Exemplu: Să spunem că doriți să permiteți 50 GB trafic în fiecare zi în fiecare direcție, iar contorizarea ar trebui să se reseteze la prânz în fiecare zi:

    AccountingStart day 12:00
    AccountingMax 50 GBytes

Rețineți că releul dvs. nu va porni exact la începutul fiecărei perioade contorizate. Acesta va ține evidența cât de rapid și-a folosit cota în ultima perioadă și va alege un punct aleatoriu în noul interval pentru a porni. În acest fel, evităm să avem sute de relee care funcționează la începutul fiecărei luni, dar nici unul la sfârșitul lunii.

Dacă aveți doar o cantitate mică de lățime de bandă de donat în comparație cu viteza de conectare, vă recomandăm să utilizați contorizarea zilnică, astfel încât să nu terminați să utilizați întreaga cotă lunară în prima zi. Împărțiți doar valoarea pentru o lună la 30. S-ar putea să luați în considerare și limitarea ratei pentru a distribui utilitatea pe mai multe zile: dacă doriți să oferiți X GB pe fiecare direcție, puteți să vă setați RelayBandwidthRate la 20 * X KBytes. De exemplu, dacă aveți 50 GB de oferit în fiecare mod, puteți să vă setați RelayBandwidthRate la 1000 KBytes: în acest fel, releul dvs. va fi întotdeauna util pentru cel puțin jumătate din fiecare zi.

    AccountingStart day 0:00
    AccountingMax 50 GBytes
    RelayBandwidthRate 1000 KBytes
    RelayBandwidthBurst 5000 KBytes # permite salturi mai mari, dar mențin media

Porturile deschise implicite sunt enumerate mai jos, dar rețineți că orice port sau porturi pot fi deschise de către operatorul de relee configurându-l în torrc sau modificând codul sursă. Valoarea implicită conform src/or/policies.c (linia 85 și linia 1901) din versiunea codului sursă release-0.4.6:

reject 0.0.0.0/8
reject 169.254.0.0/16
reject 127.0.0.0/8
reject 192.168.0.0/16
reject 10.0.0.0/8
reject 172.16.0.0/12

reject *:25
reject *:119
reject *:135-139
reject *:445
reject *:563
reject *:1214
reject *:4661-4666
reject *:6346-6429
reject *:6699
reject *:6881-6999
accept *:*

Ai dreptate, în mare parte, un octet din releul Tor înseamnă o ieșire de byte și invers. Există însă câteva excepții:

Dacă deschideți DirPort, clienții Tor vă vor solicita o copie a directorului. Cererea pe care o fac clienții (de tip HTTP GET) este destul de mică, iar răspunsul este uneori destul de mare. Probabil că aceasta reprezintă în cea mai mare parte diferența dintre numărul de octeți „scriși” și numărul de octeți „citiți”.

O altă excepție minoră apare atunci când funcționezi ca nod de ieșire și citești câțiva octeți dintr-o conexiune de ieșire (de exemplu, o mesagerie instantanee sau o conexiune ssh) și o înfășori într-o întreagă celulă de 512 octeți pentru transport prin rețeaua Tor .

Vedeți portforward.com pentru indicații despre cum să faceți un port înainte cu dispozitivul NAT / router.

Dacă releul dvs. rulează pe o rețea internă, trebuie să configurați redirecționarea porturilor. Redirecționarea conexiunilor TCP este dependentă de sistem, dar intrarea Întrebări frecvente privind clienții cu firewall oferă câteva exemple despre cum să faceți acest lucru.

De asemenea, iată un exemplu despre cum puteți face acest lucru pe GNU / Linux dacă folosiți iptables:

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 9001 -j ACCEPT

Este posibil să fiți nevoit să schimbați „eth0” dacă aveți o altă interfață externă (cea conectată la Internet). Este posibil să aveți una singură (cu excepția returnării buclei), deci nu ar trebui să fie prea greu să vă dați seama.

În căutarea releelor, arătăm un punct galben lângă porecla releului atunci când este supraîncărcat. Aceasta înseamnă că una sau mai multe dintre următoarele valori de sarcină au fost declanșate:

Rețineți că, dacă un releu atinge o stare supraîncărcată, îl arătăm timp de 72 ore după ce releul s-a recuperat.

Dacă observați că releul este supraîncărcat, vă rugăm:

  1. Verificați https://status.torproject.org/ pentru orice probleme cunoscute în categoria "rețea Tor".

  2. Luați în considerare reglajul sysctlpentru sistemul dumneavoastră pentru încărcarea rețelei, memoriei și procesorului.

  3. Luați în considerare activarea opțiunii MetricsPort pentru a înțelege ce se întâmplă.

Reglarea sysctl pentru încărcare de rețea, memorie și CPU

Epuizarea portului TCP

Dacă vă confruntați cu epuizarea portului TCP, luați în considerare extinderea gamei de porturi locale. Poți face asta cu

# sysctl -w net.ipv4.ip_local_port_range="15000 64000"

sau

# echo 15000 64000 > /proc/sys/net/ipv4/ip_local_port_range

Rețineți că reglarea sysctl așa cum este descris nu este permanentă și va fi pierdută la repornire. Trebuie să adăugați configurația la /etc/sysctl.conf sau la un fișier din /etc/sysctl.d/ pentru a o face permanentă.

MetricsPort

Pentru a înțelege starea de bine a releelor Tor și a rețelei Tor, este vital să furnizați și să aveți acces la valori de releu. Informațiile despre supraîncărcarea cu relee au fost adăugate descriptorilor de relee începând cu 0.4.6+, dar nu a fost până când Tor >= 0.4.7.1-alpha că a fost disponibilă o interfață la valorile de bază ale releelor: portul de măsurare.

Activarea opțiunii MetricsPort

Tor oferă acces la portul de măsurare printr-o opțiune de configurare torrc numită MetricsPort.

Este important de înțeles că expunerea publică a tor MetricsPort este periculoasă pentru utilizatorii rețelei Tor, motiv pentru care portul respectiv nu este activat în mod implicit, iar accesul său trebuie să fie guvernat de o politică de acces. Vă rugăm să luați măsuri de precauție suplimentare și grijă atunci când deschideți acest port, și închideți-l atunci când ați terminat de depanare.

Să presupunem că sunteți singurul utilizator de pe un server care rulează un releu Tor. Puteți activa portul Metrics adăugând acest lucru la fișierul dumneavoastră torrc:

MetricsPort 127.0.0.1:9035
MetricsPortPolicy accept 127.0.0.1

Și apoi veți putea să recuperați cu ușurință valorile cu:

# curl http://127.0.0.1:9035/metrics

Care sunt în mod implicit într-un format Prometheus.

Notă: Fiecare utilizator de pe acel server va putea accesa aceste valori ale releului în exemplul de mai sus. În general, stabiliți o politică de acces foarte strictă cu MetricsPortPolicy și luați în considerare utilizarea în profunzime a caracteristicilor firewall-ului sistemelor de operare pentru apărare.

Pentru o explicație mai detaliată despre MetricsPort și MetricsPortPolicy, consultați pagina MAN a Tor.

Ieșire MetricsPort

Here is an example of what output enabling MetricsPort will produce (we omitted any congestion control related metrics as we still need to stabilize that interface):

# HELP tor_relay_connections Total number of opened connections
# TYPE tor_relay_connections gauge
tor_relay_connections{type="OR listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Exit",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Exit",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened",family="ipv6"} 0
# HELP tor_relay_connections_total Total number of created/rejected connections
# TYPE tor_relay_connections_total counter
tor_relay_connections_total{type="OR listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="rejected",family="ipv6"} 0
# HELP tor_relay_flag Relay flags from consensus
# TYPE tor_relay_flag gauge
tor_relay_flag{type="Fast"} 0
tor_relay_flag{type="Exit"} 0
tor_relay_flag{type="Authority"} 0
tor_relay_flag{type="Stable"} 0
tor_relay_flag{type="HSDir"} 0
tor_relay_flag{type="Running"} 0
tor_relay_flag{type="V2Dir"} 0
tor_relay_flag{type="Sybil"} 0
tor_relay_flag{type="Guard"} 0
# HELP tor_relay_circuits_total Total number of circuits
# TYPE tor_relay_circuits_total gauge
tor_relay_circuits_total{state="opened"} 0
# HELP tor_relay_streams_total Total number of streams
# TYPE tor_relay_streams_total counter
tor_relay_streams_total{type="BEGIN"} 0
tor_relay_streams_total{type="BEGIN_DIR"} 0
tor_relay_streams_total{type="RESOLVE"} 0
# HELP tor_relay_traffic_bytes Traffic related counters
# TYPE tor_relay_traffic_bytes counter
tor_relay_traffic_bytes{direction="read"} 0
tor_relay_traffic_bytes{direction="written"} 0
# HELP tor_relay_dos_total Denial of Service defenses related counters
# TYPE tor_relay_dos_total counter
tor_relay_dos_total{type="circuit_rejected"} 0
tor_relay_dos_total{type="circuit_killed_max_cell"} 0
tor_relay_dos_total{type="circuit_killed_max_cell_outq"} 0
tor_relay_dos_total{type="marked_address"} 0
tor_relay_dos_total{type="marked_address_maxq"} 0
tor_relay_dos_total{type="conn_rejected"} 0
tor_relay_dos_total{type="concurrent_conn_rejected"} 0
tor_relay_dos_total{type="single_hop_refused"} 0
tor_relay_dos_total{type="introduce2_rejected"} 0
# HELP tor_relay_load_onionskins_total Total number of onionskins handled
# TYPE tor_relay_load_onionskins_total counter
tor_relay_load_onionskins_total{type="tap",action="processed"} 0
tor_relay_load_onionskins_total{type="tap",action="dropped"} 0
tor_relay_load_onionskins_total{type="fast",action="processed"} 0
tor_relay_load_onionskins_total{type="fast",action="dropped"} 0
tor_relay_load_onionskins_total{type="ntor",action="processed"} 0
tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0
tor_relay_load_onionskins_total{type="ntor_v3",action="processed"} 0
tor_relay_load_onionskins_total{type="ntor_v3",action="dropped"} 0
# HELP tor_relay_exit_dns_query_total Total number of DNS queries done by this relay
# TYPE tor_relay_exit_dns_query_total counter
tor_relay_exit_dns_query_total 0
# HELP tor_relay_exit_dns_error_total Total number of DNS errors encountered by this relay
# TYPE tor_relay_exit_dns_error_total counter
tor_relay_exit_dns_error_total{reason="success"} 0
tor_relay_exit_dns_error_total{reason="format"} 0
tor_relay_exit_dns_error_total{reason="serverfailed"} 0
tor_relay_exit_dns_error_total{reason="notexist"} 0
tor_relay_exit_dns_error_total{reason="notimpl"} 0
tor_relay_exit_dns_error_total{reason="refused"} 0
tor_relay_exit_dns_error_total{reason="truncated"} 0
tor_relay_exit_dns_error_total{reason="unknown"} 0
tor_relay_exit_dns_error_total{reason="tor_timeout"} 0
tor_relay_exit_dns_error_total{reason="shutdown"} 0
tor_relay_exit_dns_error_total{reason="cancel"} 0
tor_relay_exit_dns_error_total{reason="nodata"} 0
# HELP tor_relay_load_oom_bytes_total Total number of bytes the OOM has freed by subsystem
# TYPE tor_relay_load_oom_bytes_total counter
tor_relay_load_oom_bytes_total{subsys="cell"} 0
tor_relay_load_oom_bytes_total{subsys="dns"} 0
tor_relay_load_oom_bytes_total{subsys="geoip"} 0
tor_relay_load_oom_bytes_total{subsys="hsdir"} 0
# HELP tor_relay_load_socket_total Total number of sockets
# TYPE tor_relay_load_socket_total gauge
tor_relay_load_socket_total{state="opened"} 0
tor_relay_load_socket_total 0
# HELP tor_relay_load_tcp_exhaustion_total Total number of times we ran out of TCP ports
# TYPE tor_relay_load_tcp_exhaustion_total counter
tor_relay_load_tcp_exhaustion_total 0
# HELP tor_relay_load_global_rate_limit_reached_total Total number of global connection bucket limit reached
# TYPE tor_relay_load_global_rate_limit_reached_total counter
tor_relay_load_global_rate_limit_reached_total{side="read"} 0
tor_relay_load_global_rate_limit_reached_total{side="write"} 0

Să aflăm ce înseamnă de fapt unele dintre aceste linii:

tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0

Când un releu începe să vadă "scăzut", este o problemă de procesor/memoria RAM de obicei.

Tor este, din păcate, cu un singur fir, cu excepția cazului în care „cojile de onion” sunt procesate. „Cojile de onion” sunt munca criptografică care trebuie făcută pe celebrele „straturi de onion” din fiecare circuit.

Când tor procesează straturile, folosim un bazin de fire și externalizăm toată această muncă către bazin. Se poate întâmpla ca acest bazin să înceapă să piardă munca din cauza memoriei sau a presiunii procesorului și acest lucru va declanșa o stare de supraîncărcare.

Dacă serverul dumneavoastră rulează la capacitate maximă, acest lucru va fi probabil declanșat.

The ntor and ntor_v3 values will be the same at the moment which is a bug we need to fix.

tor_relay_exit_dns_error_total{...}

Any counter in the "*_dns_error_total" realm (apart from the one for successful queries) indicates a potential DNS related problem. Cu toate acestea, am realizat în timpul ciclului de lansare 0.4.7 că erorile DNS sunt mult prea zgomotoase și conțin prea multe rezultate fals pozitive pentru a fi utile în scopuri de raportare de suprasarcină. Prin urmare, nu le mai folosim în acest scop începând cu 0.4.6.9 și 0.4.7.4-alpha. Cu toate acestea, păstrăm în continuare valorile DNS pentru a oferi operatorului releu o perspectivă asupra a ceea ce se întâmplă cu releul lor.

Problemele și erorile de expirare DNS se aplică numai la nodurile de ieșire.

tor_relay_load_oom_bytes_total{...}

O invocare în afara memoriei indică o problemă RAM. Releul poate avea nevoie de mai mult RAM sau are pierderi de memorie. Dacă ați observat că procesul tor produce scurgeri de memorie, vă rugăm să creeați un raport cu problema respectivă și să o trimiteți fie prin Tor GitLab sau trimiterea unui e-mail la lista de corespondență ale releelor tor.

Tor are propriul său manipulator când rămâneți fără memorie și este invocat atunci când 75% din memoria totală crede că este disponibil, este ajuns. Astfel, să spunem că Tor crede că poate folosi 2GB în total, apoi la 1,5 GB de utilizare a memoriei, va începe să elibereze memoria. Aceasta este considerată o stare de supraîncărcare.

Pentru a estima cantitatea de memorie pe care o are disponibilă, când pornește tor, va utiliza MaxMemInQueues sau, dacă nu este setată, va examina memoria RAM totală disponibilă pe sistem și va aplica acest algoritm:

    if RAM >= 8GB {
      memory = RAM * 40%
    } else {
      memory = RAM * 75%
    }
    /* Capped. */
    memory = min(memory, 8GB) -> [8GB on 64bit and 2GB on 32bit)
    /* Minimum value. */
    memory = max(250MB, memory)

Pentru a evita o stare supraîncărcată, vă recomandăm să rulați un releu de peste 2 GB de memorie RAM pe 64 de biți. 4 GB este recomandat, deși, desigur, nu strică să adăugați mai mult RAM dacă puteți.

S-ar putea observa că tor ar putea fi numit de către OS OOM handler în sine. Deoarece tor preia memoria totală pe sistem atunci când pornește, dacă sistemul general are multe alte aplicații care rulează folosind RAM, se termină prin a mânca prea multă memorie. În acest caz, sistemul de operare ar putea rămâne fără memorie, fără ca tor să observe nici măcar presiunea memoriei.

tor_relay_load_socket_total

If the number of opened sockets is close to or the same as total sockets available then this indicates the relay is running out of sockets. Soluția este de a crește ulimit -n pentru procesul tor.

tor_relay_load_tcp_exhaustion_total

Aceste linii indică faptul că releul nu mai are porturi TCP.

Încercați să reglați sysctl așa cum a fostdescris mai sus.

tor_relay_load_global_rate_limit_reached_total

Dacă acest contor este incrementat cu o anumită valoare vizibilă pe o perioadă scurtă de timp, releul este congestionat. Este probabil folosit ca paznic de către un serviciu de ceapă mare sau pentru un DDoS în curs de desfășurare în rețea.

Dacă releul este încă supraîncărcat și nu știți de ce, vă rugăm să luați legătura cu network-report@torproject.org. Puteți cripta e-mailul utilizând network-report cheie OpenPGP.

Grozav. Tocmai de aceea am implementat politicile de ieșire.

Fiecare releu Tor are o politică de ieșire care specifică ce fel de conexiuni de ieșire sunt permise sau refuzate din acel releu. Politicile de ieșire sunt propagate către clienții Tor prin director, astfel încât clienții vor evita automat să aleagă relee de ieșire care ar refuza să iasă la destinația dorită. Astfel fiecare releu poate decide serviciile, gazdele și rețelele pe care dorește să le permită conexiunile, pe baza potențialului de abuz și a propriei situații. Citiți intrarea de asistență privind problemele pe care le-ați putea întâlni dacă utilizați politica de ieșire implicită, apoi citiți sfaturile lui Mike Perry pentru rularea unui nod de ieșire cu hărțuire minimă.

Politica implicită de ieșire permite accesul la numeroase servicii populare (de exemplu, navigare web), dar restricționează unele din cauza potențialului de abuz (de exemplu, e-mail) și altele, deoarece rețeaua Tor nu poate suporta încărcarea (de exemplu, porturi implicite pentru partajarea fișierelor). Puteți modifica politica de ieșire prin editarea fișierului torrc. Dacă doriți să evitați cel mai mult, dacă nu toate potențialul de abuz, setați-l la "reject *:*". Această setare înseamnă că releul dvs. va fi utilizat pentru redarea traficului în rețeaua Tor, dar nu pentru conexiuni la site-uri web externe sau alte servicii.

Dacă permiteți conexiuni de ieșire, asigurați-vă că rezoluția pentru nume funcționează (adică computerul dvs. poate rezolva corect adresele de internet). Dacă există resurse la care computerul dvs. nu poate ajunge (de exemplu, vă aflați în spatele unui firewall sau a unui filtru de conținut restrictiv), vă rugăm să le respingeți în politica dvs. de ieșire, altfel utilizatorii Tor vor fi afectați și ei.

Tor are suport parțial pentru IPv6 și încurajăm fiecare operator de relee să activeze funcționalitatea IPv6 în fișierele de configurare torrc atunci când este disponibilă conectivitatea IPv6. Deocamdată Tor va avea nevoie de adrese IPv4 pe relee, nu puteți rula un releu Tor pe o gazdă doar cu adrese IPv6.

Ne propunem să creăm un releu Tor ușor și convenabil:

  • Este în regulă dacă releul este deconectat uneori. Directoarele observă acest lucru rapid și opresc publicarea releului. Încercați doar să vă asigurați că nu este deconectat prea des, deoarece conexiunile care utilizează releul atunci când se deconectează se vor rupe.
  • Fiecare releu Tor are o politică de ieșire care specifică ce fel de conexiuni de ieșire sunt permise sau refuzate din acel releu. Dacă vă simțiți incomod, permiteți oamenilor să iasă din releul dvs., apoi îl puteți configura pentru a permite doar conexiunile cu alte relee Tor.
  • Releul dvs. va estima pasiv și va face publică capacitatea sa recentă de lățime de bandă, astfel încât releele cu lățime de bandă mare vor atrage mai mulți utilizatori decât cei cu lățime de bandă mică. Prin urmare, sunt utile și releele cu lățime de bandă redusă.

BridgeDB implements six mechanisms to distribute bridges: HTTPS, Moat, Email, Telegram, Settings and Reserved. Operatorii de punte pot verifica mecanismul pe care îl utilizează puntea lor, pe Căutare releu. Introduceți <HASHED FINGERPRINT> podului în formular și faceți clic pe "Căutare".

Operatorii pot alege, de asemenea, metoda de distribuție pe care o utilizează puntea lor. To change the method, modify the BridgeDistribution setting in the torrc file to one of these: https, moat, email, telegram, settings, none, any.

Citiți mai multe despre ghidajul pentru poduri post-instalare.

Tor ghiceste adresa IP, solicitând computerului numele său de gazdă, apoi rezolvând numele de gazdă. Adesea, oamenii au înregistrări vechi în fișierul lor /etc/hosts, care indică adrese IP vechi.

If that doesn't fix it, you should use the "Address" config option to specify the IP address you want it to pick. If your computer is behind a NAT and it only has an internal IP address, see the following Support entry on dynamic IP addresses.

De asemenea, dacă aveți multe adrese, poate doriți să setați „OutboundBindAddress”, astfel încât conexiunile externe să vină din IP-ul pe care intenționați să îl prezentați în lume.

  • Nu folosiți pachetele din depozitele Ubuntu. Nu sunt actualizate în mod fiabil. Dacă le utilizați, vă veți lipsi de soluții importante de stabilitate și securitate.
  • Determinați versiunea dvs. Ubuntu rulând următoarea comandă:
     ‪$ lsb_release -c
    
  • Ca rădăcină, adăugați următoarele linii la /etc/apt/sources.list. Înlocuiți 'version' cu versiunea găsită la pasul anterior:
     deb https://deb.torproject.org/torproject.org version main
     deb-src https://deb.torproject.org/torproject.org version main
    
  • Adăugați cheia gpg folosită pentru semnarea pachetelor rulând următoarele comenzi:
     ‪$ curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
    
  • Rulați următoarele comenzi pentru instalarea tor și verificați semnăturile acestuia:
     ‪$ sudo apt-get update
     ‪$ sudo apt-get install tor deb.torproject.org-keyring
    

Există două opțiuni pe care le puteți adăuga fișierului dvs. torrc:

BandwidthRate este lățimea maximă de bandă permisă pe termen lung (octeți pe secundă). De exemplu, poate doriți să alegeți „BandwidthRate 10 MBytes” pentru 10 megabytes pe secundă (o conexiune rapidă) sau „BandwidthRate 500 KBytes” pentru 500 kilobytes pe secundă (o conexiune decentă prin cablu). Setarea minimă de lățime de bandă este de 75 kilobiți pe secundă.

BandwidthBurst este un grup de octeți utilizat pentru a îndeplini cererile în perioade scurte de trafic peste BandwidthRate, dar păstrează media pe o perioadă lungă de timp până la BandwidthRate. O valoare mică pentru Rate, dar o valoare mare pentru Burst aplică o medie pe termen lung, permițând totuși mai mult trafic în timpul vârfului, dacă media nu a fost atinsă în ultimul timp. De exemplu, dacă alegeți „BandwidthBurst 500 KBytes” și îl utilizați și pentru BandwidthRate, atunci nu veți folosi niciodată mai mult de 500 kilobiți pe secundă; dar dacă alegeți un BandwidthBurst mai mare (cum ar fi 5 MBytes), acesta va permite mai mulți octeți până când pool-ul este gol.

Dacă aveți o conexiune asimetrică (încărcați mai puține informații decât descărcați), cum ar fi un modem prin cablu, ar trebui să setați BandwidthRate la mai puțin decât lățimea de bandă mai mică (de obicei, aceasta este lățimea de bandă de încărcare). În caz contrar, puteți renunța la mai multe pachete în perioadele de utilizare maximă a lățimii de bandă - poate fi necesar să experimentați valorile care vă fac conexiunea confortabilă. Apoi setați BandwidthBurst la fel ca BandwidthRate.

Nodurile Tor bazate pe Linux au la dispoziție o altă opțiune: ele pot acorda prioritate traficului Tor sub celălalt trafic al mașinii lor, astfel încât propriul trafic personal să nu fie afectat de încărcarea Tor. Un script pentru a face acest lucru poate fi găsit în directorul contributiv al distribuției sursă Tor.

În plus, există opțiuni de hibernare în care puteți spune Tor să servească doar o anumită lățime de bandă pe perioadă de timp (cum ar fi 100 GB pe lună). Acestea sunt acoperite în intrarea de hibernare.

Rețineți că BandwidthRate și BandwidthBurst sunt exprimate în Bytes, nu Bits.