Relay Operators

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.

വേണ്ട നിങ്ങളുടെ എക്സിറ്റ് റിലേയിൽ നിന്നുള്ള ട്രാഫിക്കിൽ നിയമപാലകർക്ക് താൽപ്പര്യമുണ്ടെങ്കിൽ, ഓഫീസർമാർ നിങ്ങളുടെ കമ്പ്യൂട്ടർ പിടിച്ചെടുക്കാൻ സാധ്യതയുണ്ട്. ഇക്കാരണത്താൽ, നിങ്ങളുടെ വീട്ടിൽ എക്സിറ്റ് റിലേ പ്രവർത്തിപ്പിക്കാത്തതോ ഹോം ഇൻറർനെറ്റ് കണക്ഷൻ ഉപയോഗിക്കാതിരിക്കുന്നതോ നല്ലതാണ്.

പകരം, ടോറിനെ പിന്തുണയ്‌ക്കുന്ന ഒരു വാണിജ്യ കേന്ദ്രത്തിൽ നിങ്ങളുടെ എക്സിറ്റ് റിലേ പ്രവർത്തിപ്പിക്കുന്നത് പരിഗണിക്കുക. നിങ്ങളുടെ എക്സിറ്റ് റിലേയ്‌ക്കായി ഒരു പ്രത്യേക ഐപി വിലാസം ഉണ്ടായിരിക്കുക, അതിലൂടെ നിങ്ങളുടെ സ്വന്തം ട്രാഫിക് റൂട്ട് ചെയ്യരുത്. തീർച്ചയായും, നിങ്ങളുടെ എക്സിറ്റ് റിലേ ഹോസ്റ്റുചെയ്യുന്ന കമ്പ്യൂട്ടറിൽ സെൻസിറ്റീവ് അല്ലെങ്കിൽ വ്യക്തിഗത വിവരങ്ങൾ സൂക്ഷിക്കുന്നത് ഒഴിവാക്കണം.

Why Relay Load Varies

Tor manages bandwidth across the entire network. It does a reasonable job for most relays. But Tor's goals are different to protocols like BitTorrent. Tor wants low-latency web pages, which requires fast connections with headroom. BitTorrent wants bulk downloads, which requires using all the bandwidth.

We're working on a new bandwidth scanner, which is easier to understand and maintain. It will have diagnostics for relays that don't get measured, and relays that have low measurements.

Why does Tor need bandwidth scanners?

Most providers tell you the maximum speed of your local connection. But Tor has users all over the world, and our users connect to one or two Guard relays at random. So we need to know how well each relay can connect to the entire world.

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.

What is a normal relay load?

It's normal for most relays to be loaded at 30%-80% of their capacity. This is good for clients: an overloaded relay has high latency. (We want enough relays to so that each relay is loaded at 10%. Then Tor would be almost as fast as the wider Internet).

Sometimes, a relay is slow because its processor is slow or its connections are limited. Other times, it is the network that is slow: the relay has bad peering to most other tor relays, or is a long distance away.

Finding Out what is Limiting a Relay

Lots of things can slow down a relay. Here's how to track them down.

System Limits

  • Check RAM, CPU, and socket/file descriptor usage on your relay

Tor logs some of these when it starts. Others can be viewed using top or similar tools.

Provider Limits

  • Check the Internet peering (bandwidth, latency) from your relay's provider to other relays. Relays transiting via Comcast have been slow at times. Relays outside North America and Western Europe are usually slower.

Tor Network Limits

Relay bandwidth can be limited by a relay's own observed bandwidth, or by the directory authorities' measured bandwidth. Here's how to find out which measurement is limiting your relay:

  • Check each of the votes for your relay on consensus-health (large page), and check the median. If your relay is not marked Running by some directory authorities:
    • Does it have the wrong IPv4 or IPv6 address?
    • Is its IPv4 or IPv6 address unreachable from some networks?
    • Are there more than 2 relays on its IPv4 address?

Otherwise, check your relay's observed bandwidth and bandwidth rate (limit). Look up your relay on Metrics. Then mouse over the bandwidth heading to see the observed bandwidth and relay bandwidth rate.

Here is some more detail and some examples: Drop in consensus weight and Rampup speed of Exit relay.

How to fix it

The smallest of these figures is limiting the bandwidth allocated to the relay.

  • If it's the bandwidth rate, increase the BandwidthRate/Burst or RelayBandwidthRate/Burst in your torrc.
  • If it's the observed bandwidth, your relay won't ask for more bandwidth until it sees itself getting faster. You need to work out why it is slow.
  • If it's the median measured bandwidth, your relay looks slow from a majority of bandwidth authorities. You need to work out why they measure it slow.

Doing Your Own Relay Measurements

If your relay thinks it is slow, or the bandwidth authorities think it is slow, you can test the bandwidth yourself:

  • 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.

അതെ, ചില ആക്രമണങ്ങൾക്കെതിരെ നിങ്ങൾക്ക് മികച്ച അജ്ഞാതത്വം ലഭിക്കും.

ടോർ റിലേകളുടെ ഒരു ചെറിയ എണ്ണം സ്വന്തമാക്കിയ ആക്രമണകാരിയാണ് ഏറ്റവും ലളിതമായ ഉദാഹരണം. അവർ നിങ്ങളിൽ നിന്ന് ഒരു കണക്ഷൻ കാണും, പക്ഷേ കണക്ഷൻ നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്നാണോ അതോ മറ്റൊരാളിൽ നിന്ന് റിലേ ചെയ്തതാണോ എന്ന് അവർക്ക് അറിയാൻ കഴിയില്ല.

ഇത് സഹായിക്കുമെന്ന് തോന്നാത്ത ചില കേസുകളുണ്ട്: നിങ്ങളുടെ ഇൻകമിംഗ്, ഔട്ട്‌ഗോയിംഗ് ട്രാഫിക്കുകളെല്ലാം ആക്രമണകാരിക്ക് കാണാൻ കഴിയുമെങ്കിൽ, ഏത് കണക്ഷനുകളാണ് റിലേ ചെയ്തതെന്നും നിങ്ങളിൽ നിന്ന് ആരംഭിച്ചതെന്നും അവർക്ക് മനസിലാക്കാൻ എളുപ്പമാണ്. (ഈ സാഹചര്യത്തിൽ‌ നിങ്ങളുടെ ലക്ഷ്യസ്ഥാനങ്ങൾ‌ അവർ‌ കാണുന്നില്ലെങ്കിൽ‌ അവർ‌ക്ക് ഇപ്പോഴും അറിയില്ല, പക്ഷേ നിങ്ങൾ‌ ഒരു സാധാരണ ക്ലയന്റാണെങ്കിൽ‌ നിങ്ങൾ‌ക്ക് മികച്ചതല്ല.)

ടോർ റിലേ പ്രവർത്തിപ്പിക്കുന്നതിൽ ചില ദോഷങ്ങളുമുണ്ട്. ആദ്യം, ഞങ്ങൾക്ക് കുറച്ച് നൂറുകണക്കിന് റിലേകൾ മാത്രമേ ഉള്ളൂവെങ്കിലും, നിങ്ങൾ ഒന്ന് പ്രവർത്തിപ്പിക്കുന്നു എന്നത് നിങ്ങളുടെ അജ്ഞാതത്വത്തിന് ഉയർന്ന മൂല്യം നൽകുന്ന ഒരു ആക്രമണകാരിയെ സൂചിപ്പിക്കാം. രണ്ടാമതായി, നിങ്ങൾ ഒരു റിലേ പ്രവർത്തിപ്പിക്കുന്ന അറിവ് ഉപയോഗപ്പെടുത്തുന്നത് നന്നായി മനസിലാക്കാത്തതോ നന്നായി പരീക്ഷിക്കാത്തതോ ആയ ചില നിഗൂഢ ആക്രമണങ്ങളുണ്ട് - ഉദാഹരണത്തിന്, ഒരു ആക്രമണകാരിക്ക് നിങ്ങളാണോ എന്ന് "നിരീക്ഷിക്കാൻ" കഴിഞ്ഞേക്കും. നിങ്ങളുടെ ടോർ റിലേയിലൂടെ ട്രാഫിക് റിലേ ചെയ്യുന്നതിലൂടെയും ട്രാഫിക് സമയത്തിലെ മാറ്റങ്ങൾ ശ്രദ്ധിക്കുന്നതിലൂടെയും നിങ്ങളുടെ നെറ്റ്‌വർക്ക് യഥാർത്ഥത്തിൽ കാണാൻ കഴിയുന്നില്ലെങ്കിലും ട്രാഫിക് അയയ്‌ക്കുന്നു.

ആനുകൂല്യങ്ങൾ അപകടസാധ്യതകളെ മറികടക്കുമോ എന്നത് ഒരു തുറന്ന ഗവേഷണ ചോദ്യമാണ്. അവയിൽ പലതും നിങ്ങൾ കൂടുതൽ ആശങ്കപ്പെടുന്ന ആക്രമണങ്ങളെ ആശ്രയിച്ചിരിക്കുന്നു. മിക്ക ഉപയോക്താക്കൾക്കും, ഇത് ഒരു മികച്ച നീക്കമാണെന്ന് ഞങ്ങൾ കരുതുന്നു.

നിങ്ങൾ എക്സിറ്റ് കണക്ഷനുകൾ അനുവദിക്കുകയാണെങ്കിൽ, നിങ്ങളെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾ ശേഖരിക്കുന്നതിന് ആളുകൾ നിങ്ങളുടെ റിലേയിൽ നിന്ന് കണക്റ്റുചെയ്യുന്ന ചില സേവനങ്ങൾ തിരികെ ബന്ധിപ്പിക്കും. ഉദാഹരണത്തിന്, ഏത് ഉപയോക്താവാണ് കണക്ഷൻ നൽകിയതെന്ന് റെക്കോർഡുചെയ്യുന്നതിന് ചില ഐആർസി സെർവറുകൾ നിങ്ങളുടെ ഐഡന്റിറ്റി പോർട്ടിലേക്ക് തിരികെ ബന്ധിപ്പിക്കുന്നു. (ഇത് അവർക്ക് ശരിക്കും പ്രവർത്തിക്കുന്നില്ല, കാരണം ടോറിന് ഈ വിവരം അറിയില്ല, പക്ഷേ അവർ എങ്ങനെയെങ്കിലും ശ്രമിക്കുന്നു.) കൂടാതെ, നിങ്ങളിൽ നിന്ന് പുറത്തുകടക്കുന്ന ഉപയോക്താക്കൾ ആഗ്രഹിക്കുന്ന ഐആർ‌സി സെർവർ, വെബ്‌സൈറ്റ് മുതലായവയിലെ മറ്റ് ഉപയോക്താക്കളുടെ ശ്രദ്ധ ആകർഷിച്ചേക്കാം. അവർ റിലേ ചെയ്യുന്ന ഹോസ്റ്റിനെക്കുറിച്ച് കൂടുതലറിയുക.

മറ്റൊരു കാരണം, ഇൻറർനെറ്റിൽ ഓപ്പൺ പ്രോക്സികൾക്കായി സ്കാൻ ചെയ്യുന്ന ഗ്രൂപ്പുകൾ ചിലപ്പോൾ ടോർ റിലേകൾ തങ്ങളുടെ സോക്സ് പോർട്ട് ലോകത്തിന് മുന്നിൽ തുറന്നുകാട്ടുന്നുവെന്ന് മനസിലാക്കി. നിങ്ങളുടെ സോക്സ്പോർട്ട് പ്രാദേശിക നെറ്റ്‌വർക്കുകളിലേക്ക് മാത്രം ബന്ധിപ്പിക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു.

ഏത് സാഹചര്യത്തിലും, നിങ്ങളുടെ സുരക്ഷയുമായി കാലികമായി തുടരേണ്ടതുണ്ട്. കൂടുതൽ നിർദ്ദേശങ്ങൾക്കായി ടോർ റിലേകൾക്കുള്ള സുരക്ഷ എന്നതിലെ ഈ ലേഖനം കാണുക.

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.

We're looking for people with reasonably reliable Internet connections, that have at least 10 Mbit/s (Mbps) available bandwidth each way. If that's you, please consider running a Tor relay.

Even if you do not have at least 10 Mbit/s of available bandwidth you can still help the Tor network by running a Tor bridge with obfs4 support. In that case you should have at least 1 MBit/s of available bandwidth.

ലളിതമായി പറഞ്ഞാൽ, ഇത് ഇതുപോലെ പ്രവർത്തിക്കുന്നു:

  • There is a primary ed25519 identity secret key file named "ed25519_master_id_secret_key". ഇതാണ് ഏറ്റവും പ്രധാനപ്പെട്ടത്, അതിനാൽ നിങ്ങൾ ഒരു ബാക്കപ്പ് സുരക്ഷിതമായ സ്ഥലത്ത് സൂക്ഷിക്കുന്നുവെന്ന് ഉറപ്പാക്കുക - ഫയൽ സെൻ‌സിറ്റീവ് ആയതിനാൽ പരിരക്ഷിക്കപ്പെടണം. നിങ്ങൾ സ്വമേധയാ ജനറേറ്റുചെയ്‌ത് ആവശ്യപ്പെടുമ്പോൾ പാസ്‌വേഡ് നൽകിയാൽ ടോർ ഇത് നിങ്ങൾക്കായി എൻക്രിപ്റ്റുചെയ്യും.
  • A medium term signing key named "ed25519_signing_secret_key" is generated for Tor to use. Also, a certificate is generated named "ed25519_signing_cert" which is signed by the primary identity secret key and confirms that the medium term signing key is valid for a certain period of time. സ്ഥിരസ്ഥിതി സാധുത 30 ദിവസമാണ്, എന്നാൽ ടോർക്കിൽ "സൈനിംഗ് കീ ലൈഫ് ടൈം എൻ ദിവസങ്ങൾ | ആഴ്ചകൾ | മാസങ്ങൾ" സജ്ജമാക്കി ഇത് ഇഷ്ടാനുസൃതമാക്കാൻ കഴിയും.
  • There is also a primary public key named "ed25519_master_id_public_key", which is the actual identity of the relay advertised in the network. ഇത് സെൻ‌സിറ്റീവ് അല്ലാത്തതിനാൽ "ed5519_master_id_secret_key" ൽ നിന്ന് എളുപ്പത്തിൽ കണക്കാക്കാം.

Tor will only need access to the medium term signing key and certificate as long as they are valid, so the primary identity secret key can be kept outside DataDirectory/keys, on a storage media or a different computer. മീഡിയം ടേം സൈനിംഗ് കീയും സർട്ടിഫിക്കറ്റും കാലഹരണപ്പെടുന്നതിന് മുമ്പ് നിങ്ങൾ സ്വമേധയാ പുതുക്കേണ്ടിവരും, അല്ലാത്തപക്ഷം റിലേയിലെ ടോർ പ്രോസസ്സ് കാലഹരണപ്പെടുമ്പോൾ പുറത്തുകടക്കും.

ഈ സവിശേഷത ഓപ്‌ഷണലാണ്, നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ലെങ്കിൽ ഇത് ഉപയോഗിക്കേണ്ടതില്ല. If you want your relay to run unattended for longer time without having to manually do the medium term signing key renewal on regular basis, best to leave the primary identity secret key in DataDirectory/keys, just make a backup in case you'll need to reinstall it. നിങ്ങൾക്ക് ഈ സവിശേഷത ഉപയോഗിക്കാൻ താൽപ്പര്യമുണ്ടെങ്കിൽ, വിഷയത്തെക്കുറിച്ചുള്ള ഞങ്ങളുടെ കൂടുതൽ വിശദമായ ഗൈഡ്  പരിശോധിക്കാം.

നിങ്ങളുടെ റിലേ താരതമ്യേന പുതിയതാണെങ്കിൽ അതിന് സമയം നൽകുക. ബാൻഡ്‌വിഡ്ത്ത് അതോറിറ്റികളിൽ നിന്നുള്ള റിപ്പോർട്ടുകളെ അടിസ്ഥാനമാക്കി ഏത് റിലേകളാണ് ഹ്യൂറിസ്റ്റിക്കായി ഉപയോഗിക്കുന്നതെന്ന് ടോർ തീരുമാനിക്കുന്നു. ഈ അധികാരികൾ നിങ്ങളുടെ റിലേയുടെ ശേഷി അളക്കുന്നു, കാലക്രമേണ, അത് ഒരു മികച്ച ലോഡിലെത്തുന്നതുവരെ അവിടെ കൂടുതൽ ട്രാഫിക്കിനെ നയിക്കുന്നു. ഒരു പുതിയ റിലേയുടെ ജീവിതചക്രം ഈ ബ്ലോഗ് പോസ്റ്റിൽ കൂടുതൽ ആഴത്തിൽ വിശദീകരിച്ചിരിക്കുന്നു. നിങ്ങൾ കുറച്ച് കാലമായി ഒരു റിലേ പ്രവർത്തിപ്പിക്കുകയും ഇപ്പോഴും പ്രശ്നങ്ങളുണ്ടെങ്കിൽ ടോർ-റിലേകളുടെ പട്ടിക ചോദിക്കാൻ ശ്രമിക്കുക.

You can run a relay in Windows following this tutorials:

You should only run a Windows relay if you can run it 24/7. If you are unable to guarantee that, Snowflake is a better way to contribute your resources to the Tor network.

  • എക്സിറ്റ് റിലേ ഏറ്റവും ആവശ്യമുള്ള റിലേ തരമാണ്, പക്ഷേ ഇത് ഏറ്റവും ഉയർന്ന നിയമപരമായ എക്‌സ്‌പോഷറും അപകടസാധ്യതയുമുള്ളതാണ് (കൂടാതെ നിങ്ങളുടെ വീട്ടിൽ നിന്ന് അവ പ്രവർത്തിപ്പിക്കാൻ പാടില്ല ).
  • നിങ്ങൾ കുറഞ്ഞ പ്രയത്നത്തോടെ ഒരു റിലേ പ്രവർത്തിപ്പിക്കാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ഫാസ്റ്റ് ഗാർഡ് റിലേകളും വളരെ ഉപയോഗപ്രദമാണ്
  • പാലങ്ങൾ പിന്തുടരുന്നു.

എല്ലാ ഔട്ട്‌ഗോയിംഗ് കണക്ഷനുകളും അനുവദിച്ചിരിക്കണം, അതുവഴി ഓരോ റിലേയ്ക്കും മറ്റെല്ലാ റിലേയുമായി ആശയവിനിമയം നടത്താനാകും.

പല അധികാരപരിധികളിലും, ടോർ റിലേ ഓപ്പറേറ്റർമാർ അവരുടെ നെറ്റ്വർക്കിലൂടെ കടന്നുപോകുന്ന മൂന്നാം കക്ഷി ഉള്ളടക്കത്തിന് ഇന്റർനെറ്റ് സേവന ദാതാക്കളെ ബാധ്യസ്ഥരാക്കുന്നത് തടയുന്ന അതേ പൊതു കാരിയർ നിയന്ത്രണങ്ങളാൽ നിയമപരമായി പരിരക്ഷിക്കപ്പെടുന്നു. ചില ട്രാഫിക്കുകൾ ഫിൽട്ടർ ചെയ്യുന്ന എക്സിറ്റ് റിലേകൾ ആ പരിരക്ഷകളെ നഷ്‌ടപ്പെടുത്തും.

ടോർ ഇടപെടാതെ സൗജന്യ നെറ്റ്‌വർക്ക് ആക്സസ് പ്രോത്സാഹിപ്പിക്കുന്നു. എക്സിറ്റ് റിലേകൾ അവയിലൂടെ കടന്നുപോകുന്ന ട്രാഫിക്കിനെ ഇന്റർനെറ്റിലേക്ക് ഫിൽട്ടർ ചെയ്യാൻ പാടില്ല. ട്രാഫിക് ഫിൽട്ടർ ചെയ്യുന്നതായി കണ്ടെത്തിയ എക്സിറ്റ് റിലേകൾ കണ്ടെത്തിക്കഴിഞ്ഞാൽ BadExit  ഫ്ലാഗ് ലഭിക്കും.

ഇത് ഇപ്പോൾ ഒരു ഗാർഡ് ആയതിനാൽ, ക്ലയന്റുകൾ മറ്റ് സ്ഥാനങ്ങളിൽ ഇത് കുറവാണ് ഉപയോഗിക്കുന്നത്, പക്ഷേ പല ക്ലയന്റുകളും അവരുടെ നിലവിലുള്ള ഗാർഡുകളെ ഇതുവരെ ഒരു ഗാർഡായി ഉപയോഗിക്കാൻ തിരിക്കില്ല. ഈ ബ്ലോഗ് പോസ്റ്റിൽ  കൂടുതൽ വിശദാംശങ്ങൾ വായിക്കുക അല്ലെങ്കിൽ ഗാർഡുകളുടെ മാറ്റം: ടോറിലെ എൻട്രി ഗാർഡ് തിരഞ്ഞെടുപ്പ് മനസിലാക്കുന്നതിനും മെച്ചപ്പെടുത്തുന്നതിനുമുള്ള ഒരു ചട്ടക്കൂട്.

AccountingMax, ബാൻഡ്‌വിഡ്ത്ത് റേറ്റ് ടോർ പ്രോസസിന്റെ ക്ലയന്റ്, റിലേ ഫംഗ്ഷനുകൾക്ക് ബാധകമാണ്. നിങ്ങളുടെ ടോർ ഹൈബർ‌നേഷനിലേക്ക് പോകുമ്പോൾ‌ തന്നെ ബ്രൗസ് ചെയ്യാൻ‌ നിങ്ങൾ‌ക്ക് കഴിയില്ലെന്ന് നിങ്ങൾ‌ കണ്ടെത്തിയേക്കാം, ഇത് ലോഗിലെ ഈ എൻ‌ട്രി സൂചിപ്പിക്കുന്നു:

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

രണ്ട് ടോർ പ്രോസസ്സുകൾ പ്രവർത്തിപ്പിക്കുക എന്നതാണ് പരിഹാരം - ഒരു റിലേയും ഒരു ക്ലയന്റും, ഓരോന്നിനും അതിന്റേതായ കോൺഫിഗറേഷൻ. ഇത് ചെയ്യുന്നതിനുള്ള ഒരു മാർഗം (നിങ്ങൾ ഒരു വർക്കിംഗ് റിലേ സജ്ജീകരണത്തിൽ നിന്നാണ് ആരംഭിക്കുന്നതെങ്കിൽ):

  • റിലേ ടോർ torrc ഫയലിൽ, സോക്‌സ്പോർട്ട് 0 ആയി സജ്ജമാക്കുക.
  • torrc.sample- ൽ നിന്ന് ഒരു പുതിയ ക്ലയന്റ് torrc ഫയൽ സൃഷ്ടിച്ച് അത് റിലേയിൽ നിന്ന് മറ്റൊരു ലോഗ് ഫയൽ ഉപയോഗിക്കുന്നുവെന്ന് ഉറപ്പാക്കുക. ഒരു നാമകരണ കൺവെൻഷൻ torrc.client, torrc.relay എന്നിവ ആകാം.
  • -f /path/to/correct/torrc ഉൾപ്പെടുത്തുന്നതിന് ടോർ ക്ലയന്റും റിലേ സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റുകളും പരിഷ്‌ക്കരിക്കുക
  • ലിനക്സ് / ബിഎസ്ഡി / മാക് ഒഎസ് എക്സിൽ, സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റുകൾ Tor.client,Tor.relay എന്നിവയിലേക്ക് മാറ്റുന്നത് കോൺഫിഗറുകളുടെ വേർതിരിക്കൽ എളുപ്പമാക്കുന്നു.

കൊള്ളാം. നെറ്റ്‌വർക്കിലേക്ക് കൂടുതൽ സംഭാവന ചെയ്യുന്നതിനായി നിങ്ങൾക്ക് നിരവധി റിലേകൾ പ്രവർത്തിപ്പിക്കാൻ താൽപ്പര്യമുണ്ടെങ്കിൽ, അതിൽ ഞങ്ങൾ സന്തുഷ്ടരാണ്. ടോർ നെറ്റ്‌വർക്കിന്റെ ലക്ഷ്യത്തിന്റെ ഒരു ഭാഗം വിതരണവും വൈവിധ്യവുമാണ് എന്നതിനാൽ ദയവായി ഒരേ നെറ്റ്‌വർക്കിൽ കുറച്ച് ഡസനിലധികം പ്രവർത്തിപ്പിക്കരുത്.

ഒന്നിൽ കൂടുതൽ റിലേ പ്രവർത്തിപ്പിക്കാൻ നിങ്ങൾ തീരുമാനിക്കുകയാണെങ്കിൽ, ഓരോ റിലേയുടെയും ടോർക്കിൽ "മൈ ഫാമിലി" കോൺഫിഗറേഷൻ ഓപ്ഷൻ സജ്ജമാക്കുക, നിങ്ങളുടെ നിയന്ത്രണത്തിലുള്ള എല്ലാ റിലേകളും (കോമ ഉപയോഗിച്ച് വേർതിരിച്ചവ) പട്ടികപ്പെടുത്തുക:

MyFamily $fingerprint1,$fingerprint2,$fingerprint3

അവിടെ ഓരോ വിരലടയാളവും 40 പ്രതീക ഐഡന്റിറ്റി ഫിംഗർപ്രിന്റാണ് (ഇടങ്ങളില്ലാതെ).

അതിലൂടെ, ഒരൊറ്റ സർക്യൂട്ടിൽ നിങ്ങളുടെ ഒന്നിലധികം റിലേകൾ ഉപയോഗിക്കുന്നത് ഒഴിവാക്കാൻ ടോർ ക്ലയന്റുകൾക്ക് അറിയാം. കമ്പ്യൂട്ടറുകളുടെയോ അവയുടെ നെറ്റ്‌വർക്കിന്റെയോ അഡ്മിനിസ്ട്രേറ്റീവ് നിയന്ത്രണം നിങ്ങൾക്കുണ്ടെങ്കിൽ, എല്ലാം ഒരേ ഭൂമിശാസ്ത്രപരമായ സ്ഥാനത്ത് ഇല്ലെങ്കിലും നിങ്ങൾ മൈ ഫാമിലി സജ്ജമാക്കണം.

ഒരു എക്സിറ്റ് തെറ്റായി കോൺഫിഗർ ചെയ്യുമ്പോഴോ ക്ഷുദ്രകരമാകുമ്പോഴോ അതിന് ബാഡ് എക്സിറ്റ് ഫ്ലാഗ് നൽകിയിട്ടുണ്ട്. ആ റിലേയിലൂടെ പുറത്തുകടക്കുന്നത് ഒഴിവാക്കാൻ ഇത് ടോറിനോട് പറയുന്നു. ഫലത്തിൽ, ഈ ഫ്ലാഗുള്ള റിലേകൾ പുറത്തുകടക്കുന്നില്ല. നിങ്ങൾക്ക് ഈ ഫ്ലാഗ് ലഭിച്ചിട്ടുണ്ടെങ്കിൽ, നിങ്ങളുടെ എക്സിറ്റ് വഴി ട്രാഫിക് റൂട്ട് ചെയ്യുമ്പോൾ ഞങ്ങൾ ഒരു പ്രശ്നമോ സംശയാസ്പദമായ പ്രവർത്തനമോ കണ്ടെത്തി, നിങ്ങളുമായി ബന്ധപ്പെടാൻ കഴിഞ്ഞില്ല. മോശം-റിലേ ടീമിലേക്ക് ബന്ധപ്പെടുക, അതിനാൽ ഞങ്ങൾക്ക് പ്രശ്നം പരിഹരിക്കാൻ കഴിയും.

നിങ്ങളുടെ ടോർ റിലേ നിങ്ങൾ ആഗ്രഹിക്കുന്നതിലും കൂടുതൽ മെമ്മറി ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, അതിന്റെ കാൽപ്പാടുകൾ കുറയ്ക്കുന്നതിനുള്ള ചില ടിപ്പുകൾ ഇതാ:

  • നിങ്ങൾ ലിനക്സിലാണെങ്കിൽ, glibc- ന്റെ malloc നടപ്പാക്കലിൽ മെമ്മറി വിഘടന ബഗുകൾ നേരിടുന്നുണ്ടാകാം. അതായത്, ടോർ മെമ്മറി തിരികെ സിസ്റ്റത്തിലേക്ക് വിടുമ്പോൾ, മെമ്മറിയുടെ ഭാഗങ്ങൾ വിഘടിക്കുന്നതിനാൽ അവ വീണ്ടും ഉപയോഗിക്കാൻ പ്രയാസമാണ്. ഓപ്പൺബിഎസ്ഡിയുടെ മാലോക്ക് നടപ്പാക്കലിനൊപ്പം ടോർ ടാർബോൾ അയയ്ക്കുന്നു, അതിൽ കൂടുതൽ വിഘടന ബഗുകൾ ഇല്ല (എന്നാൽ ട്രേഡ്ഓഫ് ഉയർന്ന സിപിയു ലോഡാണ്). പകരം ഈ മാലോക്ക് നടപ്പാക്കൽ ഉപയോഗിക്കാൻ നിങ്ങൾക്ക് ടോറിനോട് പറയാൻ കഴിയും: ./configure --enable-openbsd-malloc.
  • നിങ്ങൾ ഒരു വേഗതയേറിയ റിലേ പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് ധാരാളം ടി‌എൽ‌എസ് കണക്ഷനുകൾ തുറന്നിട്ടുണ്ടെങ്കിൽ, ഓപ്പൺ‌എസ്‌എസ്‌എല്ലിന്റെ ആന്തരിക ബഫറുകളിലേക്ക് (ഒരു സോക്കറ്റിന് 38 കെബി +) നിങ്ങൾക്ക് ധാരാളം മെമ്മറി നഷ്‌ടപ്പെടും. ഉപയോഗിക്കാത്ത ബഫർ മെമ്മറി കൂടുതൽ ആക്രമണാത്മകമായി റിലീസ് ചെയ്യുന്നതിന് ഞങ്ങൾ ഓപ്പൺഎസ്എസ്എല്ലിനെ പാച്ച് ചെയ്തു . നിങ്ങൾ ഓപ്പൺഎസ്എസ്എൽ 1.0.0 അല്ലെങ്കിൽ പുതിയതിലേക്ക് അപ്‌ഡേറ്റ് ചെയ്യുകയാണെങ്കിൽ, ടോറിന്റെ ബിൽഡ് പ്രോസസ്സ് ഈ സവിശേഷത സ്വപ്രേരിതമായി തിരിച്ചറിയുകയും ഉപയോഗിക്കുകയും ചെയ്യും.
  • നിങ്ങൾക്ക് ഇപ്പോഴും മെമ്മറി ലോഡ് കൈകാര്യം ചെയ്യാൻ കഴിയുന്നില്ലെങ്കിൽ, നിങ്ങളുടെ റിലേ പരസ്യപ്പെടുത്തുന്ന ബാൻഡ്‌വിഡ്ത്ത് കുറയ്‌ക്കുന്നത് പരിഗണിക്കുക. കുറഞ്ഞ ബാൻഡ്‌വിഡ്‌ത്ത് പരസ്യം ചെയ്യുന്നത് അർത്ഥമാക്കുന്നത് നിങ്ങൾ കുറച്ച് ഉപയോക്താക്കളെ ആകർഷിക്കുമെന്നാണ്, അതിനാൽ നിങ്ങളുടെ റിലേ വലുതായി വളരരുത്. മാൻ പേജിലെ MaxAdvertisedBandwidth ഓപ്ഷൻ കാണുക.

ഇതെല്ലാം പറഞ്ഞു, ഫാസ്റ്റ് ടോർ റിലേകൾ ധാരാളം ആട്ടുകൊറ്റന്മാരെ ഉപയോഗിക്കുന്നു. ഫാസ്റ്റ് എക്സിറ്റ് റിലേ 500-1000 എംബി മെമ്മറി ഉപയോഗിക്കുന്നത് അസാധാരണമല്ല.

ടോർക് ഫയലിലെ അക്കൗണ്ടിംഗ് ഓപ്ഷനുകൾ ഒരു സമയത്തേക്ക് നിങ്ങളുടെ റിലേ ഉപയോഗിക്കുന്ന പരമാവധി ബൈറ്റുകൾ വ്യക്തമാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.

    AccountingStart day week month [day] HH:MM

അക്കൗണ്ടിംഗ് എപ്പോൾ പുന .സജ്ജമാക്കണമെന്ന് ഇത് വ്യക്തമാക്കുന്നു. ഉദാഹരണത്തിന്, ഒരാഴ്‌ചത്തേക്ക് നൽകിയ മൊത്തം ബൈറ്റുകൾ സജ്ജീകരിക്കുന്നതിന് (അത് എല്ലാ ബുധനാഴ്ചയും രാവിലെ 10:00 ന് പുന : സജ്ജമാക്കുന്നു), നിങ്ങൾ ഇത് ഉപയോഗിക്കും:

    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. അക്കൗണ്ടിംഗ് കാലയളവ് പുന : സജ്ജമാക്കുമ്പോൾ (അക്കൗണ്ടിംഗ്സ്റ്റാർട്ടിൽ നിന്ന്), അതിനുള്ള AccountingMax കൗണ്ടറുകൾ 0 ആയി പുന : സജ്ജീകരിക്കും.

ഉദാഹരണം: ഓരോ ദിശയിലും ഓരോ ദിവസവും 50 ജിബി ട്രാഫിക് അനുവദിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്നും അക്കൗണ്ടിംഗ് ഓരോ ദിവസവും ഉച്ചയ്ക്ക് പുന : സജ്ജമാക്കണമെന്നും ഞങ്ങൾ പറയട്ടെ:

    AccountingStart day 12:00
    AccountingMax 50 GBytes

ഓരോ അക്കൗണ്ടിംഗ് കാലയളവിന്റെയും തുടക്കത്തിൽ നിങ്ങളുടെ റിലേ കൃത്യമായി ഉണരുകയില്ലെന്നത് ശ്രദ്ധിക്കുക. അവസാന കാലയളവിൽ അതിന്റെ ക്വാട്ട എത്ര വേഗത്തിൽ ഉപയോഗിച്ചുവെന്നതിന്റെ ട്രാക്ക് ഇത് സൂക്ഷിക്കും, ഒപ്പം ഉണരാൻ പുതിയ ഇടവേളയിൽ ഒരു റാൻഡം പോയിന്റ് തിരഞ്ഞെടുക്കുക. ഓരോ മാസത്തിൻറെയും തുടക്കത്തിൽ നൂറുകണക്കിന് റിലേകൾ പ്രവർത്തിക്കുന്നത് ഞങ്ങൾ ഒഴിവാക്കുന്നു, പക്ഷേ അവസാനത്തോടെ ഒന്നും തന്നെയില്ല.

നിങ്ങളുടെ കണക്ഷൻ വേഗതയുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ സംഭാവന ചെയ്യാൻ നിങ്ങൾക്ക് വളരെ ചെറിയ ബാൻഡ്‌വിഡ്ത്ത് മാത്രമേ ഉള്ളൂവെങ്കിൽ, ദിവസേനയുള്ള അക്കൗണ്ടിംഗ് ഉപയോഗിക്കാൻ ഞങ്ങൾ ശുപാർശചെയ്യുന്നു, അതിനാൽ ആദ്യ ദിവസത്തിൽ നിങ്ങളുടെ മുഴുവൻ മാസ ക്വാട്ടയും ഉപയോഗിക്കേണ്ടതില്ല. നിങ്ങളുടെ പ്രതിമാസ തുക 30 കൊണ്ട് ഹരിക്കുക. ദിവസത്തിൽ കൂടുതൽ നിങ്ങളുടെ ഉപയോഗക്ഷമത വർദ്ധിപ്പിക്കുന്നതിന് നിരക്ക് പരിമിതപ്പെടുത്തുന്നത് നിങ്ങൾ പരിഗണിച്ചേക്കാം: ഓരോ ദിശയിലും എക്സ് ജിബി വാഗ്ദാനം ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, നിങ്ങളുടെ റിലേബാൻഡ്വിഡ്ത്ത് റേറ്റ് 20 * എക്സ് കെബൈറ്റായി സജ്ജീകരിക്കാം. ഉദാഹരണത്തിന്, ഓരോ വഴിയും വാഗ്ദാനം ചെയ്യാൻ നിങ്ങൾക്ക് 50 ജിബി ഉണ്ടെങ്കിൽ, നിങ്ങളുടെ റിലേബാൻഡ്‌വിഡ്ത്ത് റേറ്റ് 1000 കെബൈറ്റായി സജ്ജീകരിക്കാം: ഈ രീതിയിൽ നിങ്ങളുടെ റിലേ എല്ലായ്പ്പോഴും ഓരോ ദിവസത്തിന്റെ പകുതിയെങ്കിലും ഉപയോഗപ്രദമാകും.

    AccountingStart day 0:00
    AccountingMax 50 GBytes
    RelayBandwidthRate 1000 KBytes
    RelayBandwidthBurst 5000 KBytes # ഉയർന്ന bursts അനുവദിക്കുക, പക്ഷേ ശരാശരി നിലനിർത്തുക

The default open ports are listed below but keep in mind that, any port or ports can be opened by the relay operator by configuring it in torrc or modifying the source code. The default according to src/or/policies.c (line 85 and line 1901) from the source code release 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 *:*

നിങ്ങൾ പറഞ്ഞത് ശരിയാണ്, നിങ്ങളുടെ ടോർ റിലേയിലേക്ക് ഒരു ബൈറ്റ് അർത്ഥമാക്കുന്നത് ഒരു ബൈറ്റ് ഔട്ട് ആണ്, തിരിച്ചും. എന്നാൽ ചില അപവാദങ്ങളുണ്ട്:

നിങ്ങളുടെ DirPort തുറക്കുകയാണെങ്കിൽ, ടോർ ക്ലയന്റുകൾ നിങ്ങളോട് ഡയറക്ടറിയുടെ ഒരു പകർപ്പ് ആവശ്യപ്പെടും. അവർ ചെയ്യുന്ന അഭ്യർത്ഥന (ഒരു എച്ച്ടിടിപി GET) വളരെ ചെറുതാണ്, പ്രതികരണം ചിലപ്പോൾ വളരെ വലുതാണ്. നിങ്ങളുടെ "റൈറ്റ്" ബൈറ്റ് എണ്ണവും നിങ്ങളുടെ "റീഡ്" ബൈറ്റ് എണ്ണവും തമ്മിലുള്ള വ്യത്യാസത്തിന് ഇത് കാരണമാകാം.

നിങ്ങൾ ഒരു എക്സിറ്റ് നോഡായി പ്രവർത്തിക്കുമ്പോൾ മറ്റൊരു ചെറിയ അപവാദം കാണിക്കുന്നു, കൂടാതെ നിങ്ങൾ ഒരു എക്സിറ്റ് കണക്ഷനിൽ നിന്ന് കുറച്ച് ബൈറ്റുകൾ വായിക്കുകയും ചെയ്യുന്നു (ഉദാഹരണത്തിന്, ഒരു തൽക്ഷണ സന്ദേശമയയ്ക്കൽ അല്ലെങ്കിൽ എസ്എച്ച് കണക്ഷൻ) ടോർ നെറ്റ്‌വർക്കിലൂടെയുള്ള ഗതാഗതത്തിനായി 512 ബൈറ്റ് സെല്ലിലേക്ക് പൊതിയുക.

നിങ്ങളുടെ NAT / റൂട്ടർ ഉപകരണം ഉപയോഗിച്ച് എങ്ങനെ മുന്നോട്ട് പോകാമെന്നതിനുള്ള നിർദ്ദേശങ്ങൾക്കായി portforward.com  കാണുക.

നിങ്ങളുടെ റിലേ ഒരു ആന്തരിക നെറ്റിൽ പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ, നിങ്ങൾ പോർട്ട് കൈമാറൽ സജ്ജീകരിക്കേണ്ടതുണ്ട്. Forwarding TCP connections is system dependent but the firewalled-clients FAQ entry offers some examples on how to do this.

കൂടാതെ, നിങ്ങൾ iptables ഉപയോഗിക്കുകയാണെങ്കിൽ ഗ്നു / ലിനക്സിൽ ഇത് എങ്ങനെ ചെയ്യാമെന്നതിന്റെ ഒരു ഉദാഹരണം ഇതാ:

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

നിങ്ങൾക്ക് മറ്റൊരു ബാഹ്യ ഇന്റർഫേസ് (ഇന്റർനെറ്റിലേക്ക് കണക്റ്റുചെയ്‌തിരിക്കുന്നവ) ഉണ്ടെങ്കിൽ "eth0" മാറ്റേണ്ടി വരും. നിങ്ങൾക്ക് ഒരെണ്ണം മാത്രമേ ഉള്ളൂ (ലൂപ്പ്ബാക്ക് ഒഴികെ) അതിനാൽ ഇത് മനസിലാക്കാൻ വളരെ പ്രയാസപ്പെടരുത്.

On relay search we show an amber dot next to the relay nickname when it is overloaded. This means that one or many of the following load metrics have been triggered:

Note that if a relay reaches an overloaded state we show it for 72 hours after the relay has recovered.

If you notice that your relay is overloaded please:

  1. Check https://status.torproject.org/ for any known issues in the "Tor network" category.

  2. Consider tuning sysctl for your system for network, memory and CPU load.

  3. Consider enabling MetricsPort to understand what is happening.

Tuning sysctl for network, memory and CPU load

TCP port exhaustion

If you are experiencing TCP port exhaustion consider expanding your local port range. You can do that with

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

അഥവാ

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

Keep in mind that tuning sysctl as described is not permanent and will be lost upon restart. You need to add the configuration to /etc/sysctl.conf or to a file in /etc/sysctl.d/ to make it permanent.

MetricsPort

To understand the well-being of Tor relays and the Tor network it is vital to provide and have access to relay metrics. Relay overload information has been added to relay descriptors since 0.4.6+ but it was not until Tor >= 0.4.7.1-alpha that an interface to the underlying relay metrics was available: the metrics port.

Enabling MetricsPort

Tor provides access to the metrics port via a torrc configuration option called MetricsPort.

It's important to understand that exposing the tor MetricsPort publicly is dangerous for the Tor network users, which is why that port is not enabled by default and its access has to be governed by an access policy. Please take extra precaution and care when opening this port, and close it when you are done debugging.

Let's assume you are the only user on a server that runs a Tor relay. You can enable the metrics port adding this to your torrc file:

MetricsPort 127.0.0.1:9035
MetricsPortPolicy accept 127.0.0.1

And then you will be able to easily retrieve the metrics with:

# curl http://127.0.0.1:9035/metrics

which are by default in a Prometheus format.

Note: every user on that server will be able to access those relay metrics in the example above. In general, set a very strict access policy with MetricsPortPolicy and consider using your operating systems firewall features for defense in depth.

For a more detailed explanation about MetricsPort and MetricsPortPolicy see tor's man page.

MetricsPort output

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

Let's find out what some of these lines actually mean:

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

When a relay starts seeing "dropped", it is a CPU/RAM problem usually.

Tor is sadly single threaded except for when the "onion skins" are processed. The "onion skins" are the cryptographic work that needs to be done on the famous "onion layers" in every circuits.

When tor processes the layers we use a thread pool and outsource all of that work to that pool. It can happen that this pool starts dropping work due to memory or CPU pressure and this will trigger an overload state.

If your server is running at capacity this will likely be triggered.

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. However, we realized during the 0.4.7 release cycle that DNS errors are way too noisy and contain too many false positives to be useful for overload reporting purposes. We therefore don't use them anymore for that purpose starting with 0.4.6.9 and 0.4.7.4-alpha. However, we still keep DNS metrics around to give the relay operator insight into what is going on with their relay.

DNS timeout issues and errors only apply to Exit nodes.

tor_relay_load_oom_bytes_total{...}

An Out-Of-Memory invocation indicates a RAM problem. The relay might need more RAM or it is leaking memory. If you noticed that the tor process is leaking memory, please report the issue either via Tor gitLab or sending an email to the tor-relays mailing list.

Tor has its own OOM handler and it is invoked when 75%, of the total memory tor thinks is available, is reached. Thus, let's say tor thinks it can use 2GB in total then at 1.5GB of memory usage, it will start freeing memory. That is considered an overload state.

To estimate the amount of memory it has available, when tor starts, it will use MaxMemInQueues or, if not set, will look at the total RAM available on the system and apply this algorithm:

    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)

To avoid an overloaded state we recommend to run a relay above 2GB of RAM on 64bit. 4GB is advised, although of course it doesn't hurt to add more RAM if you can. Note: If you are running a powerful server with lots of RAM then you might end up in an overloaded state due to the default queue size limit of 8GB even though you still have plenty of RAM unused. Add an appropriate MaxMemInQueues entry to your torrc configuration in that case.

One might notice that tor could be called by the OS OOM handler itself. Because tor takes the total memory on the system when it starts, if the overall system has many other applications running using RAM, it ends up eating too much memory. In this case the OS could OOM tor, without tor even noticing memory pressure.

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. The solution is to increase ulimit -n for the tor process.

tor_relay_load_tcp_exhaustion_total

These lines indicate the relay is running out of TCP ports.

Try to tune sysctl as described above.

tor_relay_load_global_rate_limit_reached_total

If this counter is incremented by some noticeable value over a short period of time, the relay is congested. It is likely being used as a Guard by a big onion service or for an ongoing DDoS on the network.

If your relay is still overloaded and you don't know why, please get in touch with network-report@torproject.org. You can encrypt your email using network-report OpenPGP key.

കൊള്ളാം. അതിനാലാണ് ഞങ്ങൾ എക്സിറ്റ് നയങ്ങൾ നടപ്പിലാക്കിയത്.

ഓരോ ടോർ റിലേയിലും ഒരു എക്സിറ്റ് പോളിസി ഉണ്ട്, അത് ഏത് തരത്തിലുള്ള ഔട്‍ബൗണ്ട് കണക്ഷനുകൾ ആ റിലേയിൽ നിന്ന് അനുവദിക്കുകയോ നിരസിക്കുകയോ ചെയ്യുന്നുവെന്ന് വ്യക്തമാക്കുന്നു. എക്സിറ്റ് പോളിസികൾ ടോർ ക്ലയന്റുകളിലേക്ക് ഡയറക്ടറി വഴി പ്രചരിപ്പിക്കുന്നു, അതിനാൽ ക്ലയന്റുകൾ സ്വപ്രേരിതമായി എക്സിറ്റ് റിലേകൾ തിരഞ്ഞെടുക്കുന്നത് ഒഴിവാക്കും, അത് ഉദ്ദേശിച്ച ലക്ഷ്യസ്ഥാനത്തേക്ക് പുറത്തുകടക്കാൻ വിസമ്മതിക്കും. ഈ രീതിയിൽ ഓരോ റിലേയ്ക്കും ദുരുപയോഗ സാധ്യതയെയും അതിന്റേതായ സാഹചര്യത്തെയും അടിസ്ഥാനമാക്കി കണക്ഷനുകൾ അനുവദിക്കാൻ ആഗ്രഹിക്കുന്ന സേവനങ്ങൾ, ഹോസ്റ്റുകൾ, നെറ്റ്‌വർക്കുകൾ എന്നിവ തീരുമാനിക്കാൻ കഴിയും. Read the Support entry on issues you might encounter if you use the default exit policy, and then read Mike Perry's tips for running an exit node with minimal harassment.

സ്ഥിരസ്ഥിതി എക്സിറ്റ് നയം നിരവധി ജനപ്രിയ സേവനങ്ങളിലേക്ക് (ഉദാ. വെബ് ബ്രൗസിംഗ്) പ്രവേശനം അനുവദിക്കുന്നു, പക്ഷേ ചിലത് ദുരുപയോഗ സാധ്യത കാരണം (ഉദാ. മെയിൽ) നിയന്ത്രിക്കുന്നു, കൂടാതെ ടോർ നെറ്റ്‌വർക്കിന് ലോഡ് കൈകാര്യം ചെയ്യാൻ കഴിയാത്തതിനാൽ (ഉദാ. സ്ഥിരസ്ഥിതി ഫയൽ പങ്കിടൽ പോർട്ടുകൾ). നിങ്ങളുടെ ടോർക്ക് ഫയൽ എഡിറ്റുചെയ്യുന്നതിലൂടെ നിങ്ങളുടെ എക്സിറ്റ് നയം മാറ്റാൻ കഴിയും. If you want to avoid most if not all abuse potential, set it to "reject *:*". ടോർ നെറ്റ്‌വർക്കിനുള്ളിൽ ട്രാഫിക് റിലേ ചെയ്യുന്നതിന് നിങ്ങളുടെ റിലേ ഉപയോഗിക്കുമെന്നാണ് ഈ ക്രമീകരണം അർത്ഥമാക്കുന്നത്, പക്ഷേ ബാഹ്യ വെബ്‌സൈറ്റുകളിലേക്കോ മറ്റ് സേവനങ്ങളിലേക്കോ ഉള്ള കണക്ഷനുകൾക്കല്ല.

ഏതെങ്കിലും എക്സിറ്റ് കണക്ഷനുകൾ നിങ്ങൾ അനുവദിക്കുകയാണെങ്കിൽ, name resolution പ്രവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കുക (അതായത്, നിങ്ങളുടെ കമ്പ്യൂട്ടറിന് ഇന്റർനെറ്റ് വിലാസങ്ങൾ ശരിയായി പരിഹരിക്കാൻ കഴിയും). നിങ്ങളുടെ കമ്പ്യൂട്ടറിന് എത്തിച്ചേരാനാകാത്ത ഏതെങ്കിലും ഉറവിടങ്ങളുണ്ടെങ്കിൽ (ഉദാഹരണത്തിന്, നിങ്ങൾ ഒരു നിയന്ത്രിത ഫയർവാളിനോ ഉള്ളടക്ക ഫിൽട്ടറിനോ പിന്നിലുണ്ട്), ദയവായി നിങ്ങളുടെ എക്സിറ്റ് പോളിസിയിൽ അവ വ്യക്തമായി നിരസിക്കുക, അല്ലെങ്കിൽ ടോർ ഉപയോക്താക്കളെയും ഇത് ബാധിക്കും.

Tor has partial support for IPv6 and we encourage every relay operator to enable IPv6 functionality in their torrc configuration files when IPv6 connectivity is available. ടോർ തൽക്കാലം റിലേകളിൽ IPv4 വിലാസങ്ങൾ ആവശ്യമായി വരും, നിങ്ങൾക്ക് IPv6 വിലാസങ്ങളുള്ള ഒരു ഹോസ്റ്റിൽ ടോർ റിലേ പ്രവർത്തിപ്പിക്കാൻ കഴിയില്ല.

ടോർ റിലേ സജ്ജീകരിക്കുന്നത് എളുപ്പവും സൗകര്യപ്രദവുമാക്കാൻ ഞങ്ങൾ ലക്ഷ്യമിടുന്നു:

  • റിലേ ചിലപ്പോൾ ഓഫ്‌ലൈനിൽ പോയാൽ നന്നായിരിക്കും. ഡയറക്ടറികൾ ഇത് വേഗത്തിൽ ശ്രദ്ധിക്കുകയും റിലേ പരസ്യം ചെയ്യുന്നത് നിർത്തുകയും ചെയ്യുന്നു. വിച്ഛേദിക്കുമ്പോൾ റിലേ ഉപയോഗിക്കുന്ന കണക്ഷനുകൾ തകരാറിലാകുമെന്നതിനാൽ ഇത് പലപ്പോഴും സംഭവിക്കുന്നില്ലെന്ന് ഉറപ്പാക്കാൻ ശ്രമിക്കുക.
  • ഓരോ ടോർ റിലേയിലും ഒരു എക്സിറ്റ് പോളിസി  ഉണ്ട്, അത് ഏത് തരത്തിലുള്ള ഔട്ട്‌ബൗണ്ട് കണക്ഷനുകൾ ആ റിലേയിൽ നിന്ന് അനുവദിക്കുകയോ നിരസിക്കുകയോ ചെയ്യുന്നുവെന്ന് വ്യക്തമാക്കുന്നു. നിങ്ങളുടെ റിലേയിൽ നിന്ന് പുറത്തുകടക്കാൻ ആളുകളെ അനുവദിക്കുന്നത് നിങ്ങൾക്ക് അസ്വസ്ഥതയുണ്ടെങ്കിൽ, മറ്റ് ടോർ റിലേകളിലേക്ക് കണക്ഷനുകൾ അനുവദിക്കുന്നതിന് മാത്രമേ നിങ്ങൾക്ക് ഇത് സജ്ജീകരിക്കാൻ കഴിയൂ.
  • നിങ്ങളുടെ റിലേ അതിന്റെ സമീപകാല ബാൻഡ്‌വിഡ്ത്ത് ശേഷിയെ നിഷ്‌ക്രിയമായി കണക്കാക്കുകയും പരസ്യം ചെയ്യുകയും ചെയ്യും, അതിനാൽ ഉയർന്ന ബാൻഡ്‌വിഡ്ത്ത് റിലേകൾ കുറഞ്ഞ ബാൻഡ്‌വിഡ്‌ത്തിനേക്കാൾ കൂടുതൽ ഉപയോക്താക്കളെ ആകർഷിക്കും. അതിനാൽ, കുറഞ്ഞ ബാൻഡ്‌വിഡ്ത്ത് റിലേകൾ ഉപയോഗപ്രദമാണ്.

BridgeDB implements six mechanisms to distribute bridges: HTTPS, Moat, Email, Telegram, Settings and Reserved. Bridge operators can check which mechanism their bridge is using, on the Relay Search. Enter the bridge's <HASHED FINGERPRINT> in the form and click "Search".

Operators can also choose which distribution method their bridge uses. To change the method, modify the BridgeDistribution setting in the torrc file to one of these: https, moat, email, telegram, settings, lox, none, any. You can find a description of each distributor in the rdsys distributors documentation.

Read more on the Bridges post-install guide.

കമ്പ്യൂട്ടറിന്റെ ഹോസ്റ്റ്നാമം ആവശ്യപ്പെട്ടുകൊണ്ട് ടോർ അതിന്റെ ഐപി വിലാസം ഊഹിക്കുന്നു, തുടർന്ന് ആ ഹോസ്റ്റ്നാമം പരിഹരിക്കുന്നു. മിക്കപ്പോഴും ആളുകൾക്ക് അവരുടെ /etc/hosts ഫയലിൽ പഴയ എൻ‌ട്രികൾ ഉണ്ട്, അത് പഴയ IP വിലാസങ്ങളിലേക്ക് പോയിന്റുചെയ്യുന്നു.

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.

കൂടാതെ, നിങ്ങൾക്ക് ധാരാളം വിലാസങ്ങളുണ്ടെങ്കിൽ, "ഔട്ട്‌ബൗണ്ട് ബൈൻഡ് അഡ്രസ്" സജ്ജീകരിക്കാനും നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം, അതിനാൽ നിങ്ങൾ ലോകത്തിന് മുന്നിൽ അവതരിപ്പിക്കാൻ ഉദ്ദേശിക്കുന്ന ഐപിയിൽ നിന്നാണ് ബാഹ്യ കണക്ഷനുകൾ വരുന്നത്.

  • ഉബുണ്ടുവിന്റെ ശേഖരണങ്ങളിൽ പാക്കേജുകൾ ഉപയോഗിക്കരുത്. അവ വിശ്വസനീയമായി അപ്‌ഡേറ്റ് ചെയ്തിട്ടില്ല. നിങ്ങൾ അവ ഉപയോഗിക്കുകയാണെങ്കിൽ, നിങ്ങൾക്ക് പ്രധാനപ്പെട്ട സ്ഥിരതയും സുരക്ഷാ പരിഹാരങ്ങളും നഷ്‌ടപ്പെടും.
  • ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിച്ച് നിങ്ങളുടെ ഉബുണ്ടു പതിപ്പ് നിർണ്ണയിക്കുക:
     ‪$ lsb_release -c
    
  • റൂട്ടായി, ഇനിപ്പറയുന്ന വരികൾ ഇതിലേക്ക് ചേർക്കുക /etc/apt/sources.list . മുമ്പത്തെ ഘട്ടത്തിൽ നിങ്ങൾ കണ്ടെത്തിയ version ഉപയോഗിച്ച് 'version' മാറ്റിസ്ഥാപിക്കുക:
     deb https://deb.torproject.org/torproject.org version main
     deb-src https://deb.torproject.org/torproject.org version main
    
  • ഇനിപ്പറയുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിച്ച് പാക്കേജുകളിൽ ഒപ്പിടാൻ ഉപയോഗിക്കുന്ന gpg കീ ചേർക്കുക:
     ‪$ curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
    
  • ടോർ ഇൻസ്റ്റാളുചെയ്യുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിച്ച് അതിന്റെ ഒപ്പുകൾ പരിശോധിക്കുക:
     ‪$ sudo apt-get update
     ‪$ sudo apt-get install tor deb.torproject.org-keyring
    

നിങ്ങളുടെ torrc ഫയലിലേക്ക് രണ്ട് ഓപ്ഷനുകൾ ചേർക്കാൻ കഴിയും:

ബാൻഡ്‌വിഡ്‌ത്ത് റേറ്റ് അനുവദനീയമായ പരമാവധി ദീർഘകാല ബാൻഡ്‌വിഡ്‌ത്ത് (സെക്കൻഡിൽ ബൈറ്റുകൾ). For example, you might want to choose "BandwidthRate 10 MBytes" for 10 megabytes per second (a fast connection), or "BandwidthRate 500 KBytes" for 500 kilobytes per second (a decent cable connection). ഏറ്റവും കുറഞ്ഞ ബാൻഡ്‌വിഡ്‌റേറ്റ് ക്രമീകരണം സെക്കൻഡിൽ 75 കിലോബൈറ്റ് ആണ്.

BandwidthBurst is a pool of bytes used to fulfill requests during short periods of traffic above BandwidthRate but still keeps the average over a long period to BandwidthRate. കുറഞ്ഞ നിരക്ക് എന്നാൽ ഉയർന്ന ബർസ്റ്റ് ഒരു ശരാശരി ശരാശരി നടപ്പിലാക്കുന്നു, അതേസമയം ശരാശരി അടുത്തിടെ എത്തിയിട്ടില്ലെങ്കിൽ പീക്ക് സമയങ്ങളിൽ കൂടുതൽ ട്രാഫിക് അനുവദിക്കും. ഉദാഹരണത്തിന്, നിങ്ങൾ "ബാൻഡ്‌വിഡ്‌ത്ത്ബർസ്റ്റ് 500 കെബൈറ്റുകൾ" തിരഞ്ഞെടുക്കുകയും അത് നിങ്ങളുടെ ബാൻഡ്‌വിഡ്‌ത്ത് റേറ്റിന് ഉപയോഗിക്കുകയും ചെയ്യുന്നുവെങ്കിൽ, നിങ്ങൾ ഒരിക്കലും സെക്കൻഡിൽ 500 കിലോബൈറ്റിൽ കൂടുതൽ ഉപയോഗിക്കില്ല; എന്നാൽ നിങ്ങൾ ഉയർന്ന ബാൻഡ്‌വിഡ്‌ത്ത്ബർസ്റ്റ് (5 MBytes പോലെ) തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ, പൂൾ ശൂന്യമാകുന്നതുവരെ ഇത് കൂടുതൽ ബൈറ്റുകൾ അനുവദിക്കും.

നിങ്ങൾക്ക് ഒരു കേബിൾ മോഡം പോലുള്ള അസമമായ കണക്ഷൻ (ഡൗൺ‌ലോഡിനേക്കാൾ കുറവ് അപ്‌ലോഡ് ചെയ്യുക) ഉണ്ടെങ്കിൽ, നിങ്ങളുടെ ചെറിയ ബാൻഡ്‌വിഡ്ത്തിനേക്കാൾ കുറവായി ബാൻഡ്‌വിഡ്‌ത്ത് റേറ്റ് സജ്ജീകരിക്കണം (സാധാരണയായി അതാണ് അപ്‌ലോഡ് ബാൻഡ്‌വിഡ്ത്ത്). അല്ലാത്തപക്ഷം, പരമാവധി ബാൻഡ്‌വിഡ്ത്ത് ഉപയോഗ കാലയളവിൽ നിങ്ങൾക്ക് നിരവധി പാക്കറ്റുകൾ ഉപേക്ഷിക്കാൻ കഴിയും - നിങ്ങളുടെ കണക്ഷൻ സുഖകരമാക്കുന്ന മൂല്യങ്ങൾ ഉപയോഗിച്ച് നിങ്ങൾ പരീക്ഷിക്കേണ്ടതുണ്ട്. തുടർന്ന് ബാൻഡ്‌വിഡ്‌ത്ത്ബസ്റ്റ് ബാൻഡ്‌വിഡ്‌ത്ത് റേറ്റിന് തുല്യമായി സജ്ജമാക്കുക.

ലിനക്സ് അടിസ്ഥാനമാക്കിയുള്ള ടോർ നോഡുകൾക്ക് മറ്റൊരു ഓപ്ഷൻ ഉണ്ട്: ടോർ ട്രാഫിക്കിന് അവരുടെ മെഷീനിലെ മറ്റ് ട്രാഫിക്കിനേക്കാൾ മുൻഗണന നൽകാൻ അവർക്ക് കഴിയും, അതിനാൽ ടോർ ലോഡ് അവരുടെ സ്വന്തം ട്രാഫിക്കിനെ ബാധിക്കില്ല. A script to do this can be found in the Tor source distribution's contrib directory.

Additionally, there are hibernation options where you can tell Tor to only serve a certain amount of bandwidth per time period (such as 100 GB per month). These are covered in the hibernation entry.

ബാൻഡ്‌വിഡ്‌ത്ത് റേറ്റും ബാൻഡ്‌വിഡ്‌ത്ത് ബർസ്റ്റും ** ബൈറ്റുകളിലാണെന്നത് ശ്രദ്ധിക്കുക, ബിറ്റുകളല്ല.