Add README section to Linux Tor traffic prioritization script.

svn:r14154
This commit is contained in:
Mike Perry 2008-03-22 18:50:30 +00:00
parent a9d12ac863
commit f5215002e2

View File

@ -1,9 +1,50 @@
#!/bin/bash #!/bin/bash
# Written by Marco Bonetti & Mike Perry # Written by Marco Bonetti & Mike Perry
# Based on instructions from Dan Singletary's ADSL Bandwidth Management HOWTO # Based on instructions from Dan Singletary's ADSL BW Management HOWTO:
# http://www.faqs.org/docs/Linux-HOWTO/ADSL-Bandwidth-Management-HOWTO.html # http://www.faqs.org/docs/Linux-HOWTO/ADSL-Bandwidth-Management-HOWTO.html
# This script is Public Domain. # This script is Public Domain.
############################### README #################################
# This script provides prioritization of Tor traffic below other
# traffic on a Linux server. It has two modes of operation: UID based
# and IP based. The UID based method requires that Tor be launched from
# a specific user ID. The "User" and "Group" Tor config settings are
# insufficient, as they set the UID after the socket is created.
# Here is a three line C wrapper you can use to execute Tor and drop
# privs to UID 501 before it creates any sockets. Change the UID
# to the UID for your tor server user, and compile with
# 'gcc tor_wrap.c -o tor_wrap':
# #include <unistd.h>
# int main(int argc, char **argv) {
# if(setresuid(501, 501, 501) == -1) { perror("setresuid"); return 1; }
# execl("/bin/tor", "/bin/tor", "-f", "/etc/tor/torrc", NULL);
# perror("execl"); return 1;
# }
# The IP setting requires that a separate IP address be dedicated to Tor.
# Your Torrc should be set to bind to this IP for "OutboundBindAddress",
# "ListenAddress", and "Address".
# You should also tune the individual connection rate parameters below
# to your individual connection. In particular, you should leave *some*
# minimum amount of bandwidth for Tor, so that Tor users are not
# completely choked out when you use your server's bandwidth. 30% is
# probably a polite choice.
# To start the shaping, run it as:
# ./linux-tor-prio.sh
# To get status information (useful to verify packets are getting marked
# and prioritized), run:
# ./linux-tor-prio.sh status
# And to stop prioritization:
# ./linux-tor-prio.sh stop
########################################################################
# BEGIN USER TUNABLE PARAMETERS # BEGIN USER TUNABLE PARAMETERS
DEV=eth0 DEV=eth0
@ -27,7 +68,10 @@ RTT_LATENCY=40
RATE_UP=5000 RATE_UP=5000
# RATE_UP_TOR is the minimum speed your Tor connections will have. # RATE_UP_TOR is the minimum speed your Tor connections will have.
# They will have at least this much bandwidth for upload # They will have at least this much bandwidth for upload. In general,
# you probably shouldn't set this too low, or else Tor users who use
# your node will be completely choked out whenever your machine
# does any other network activity. That is not very fun.
RATE_UP_TOR=1500 RATE_UP_TOR=1500
# RATE_UP_TOR_CEIL is the maximum rate allowed for all Tor trafic # RATE_UP_TOR_CEIL is the maximum rate allowed for all Tor trafic
@ -38,7 +82,7 @@ CHAIN=OUTPUT
#CHAIN=POSTROUTING #CHAIN=POSTROUTING
MTU=1500 MTU=1500
AVG_PKT=900 AVG_PKT=900 # should be more like 600 for non-exit nodes
# END USER TUNABLE PARAMETERS # END USER TUNABLE PARAMETERS