
socks5 - A Daemon to proxy via the socks5 protocol.

Socks5 is a daemon which proxies according to the socks5 protocol.  Basically a 
client connects to the daemon rather than the application server, and after
authenticating asks the daemon to make some request on its behalf, be that a
bind, connect, ping or traceroute.

The OS2 version server can be run standalone(threaded), or through inetd.  By
default it runs standalone.  If you are running it via inetd, be sure to provide
the -i flag, as it is very important.

options:
-d --debug
Turn on debugging output.  This can also be acheived by setting SOCKS5_DEBUG in
the environment before running or by setting it in the config file.

-s --stderr
Tell the server to log all output to stderr instead of syslog.  This is useful
when running in debugging mode, where a lot of output is generated.

-i --inetd
Tell the server that it is being run through inetd.  This is very important if
you are running it through inetd.  

-t --threaded
Tell the server to run in threaded mode if it is available.  If it is not, it
will print out a warning and revert to normal standalone mode.

-o --oneshot
Tell the server to service only one request in the foreground with debugging on
and going to stderr, and then exit.  This is particularly useful for debugging. 

-n --nchildren
Tell the server how many children it should allow to exist at any given time.
This value is currently ignored in threaded mode, and obviously not useful in
oneshot or inetd mode. 

-v --version
Prints a message to stderr stating what version of socks5 is running.

ENVIRONMENT:
The following options can be turned on with environment variables or by a line
in the config file reading "set variable [value]".
 
SOCKS5_DEBUG [val]
Turns on debugging (optionally sets the debug level to value).

SOCKS5_LOG_SYSLOG
Sends debugging output to a log file.  This is the default if no other debugging
destination is set.  To log to both stderr & syslog, you would set both
variables. 
 
SOCKS5_LOG_STDERR
Sends debugging output to stderr.
 
SOCKS5_BINDPORT [val]
Tells socks5 to run on port "val" instead of the default (usually 1080).
 
SOCKS5_RECVFROMANYONE
Allows UDP clients to receive messages from people they have not sent them to
(only if allowed by the configuration file, of course).
 
SOCKS5_USECLIENTSPORT
Tells the server that it should only proxy if it can bind to the same port that
the client will be sending messages from.  This is necessary for proxying udp
when the server is sending messages to the client before the client sends
messages to the server (such as realaudio).

SOCKS5_MAXCHILD
Same as the --nchildren or -n command line option.

SOCKS5_ENCRYPT
Ask the next server to encrypt the link if possible.

SOCKS5_FORCE_ENCRYPT
Force the client to do encryption if available with the chosen authentication
method. 
 
SOCKS5_NOREVERSEMAP
Tells socks5 not to map addresses into hostnames for logging purposes.  The only
time this would get done if this variable is set is if hostnames or domains are
used in the config file. Usually used when logging is not especially important
but speed is. 
 
SOCKS5_NOSERVICENAME
Tells socks5 not to map port numbers into service names.  It has the same uses
and cautions as SOCKS5_NOREVERSEMAP.

SOCKS5_PIDFILE
The filename to read the configuration file from.  Especially useful if you want
to run several servers on one machine, but use different config files for each
one.  By default this usually isn't necessary, as the server will save it's PID
into serverpidfile-portno if it is running on a port other than 1080.

SOCKS5_PWDFILE
Tells socks5 where to look for the username/password file.  The default is
socks5.pwd.

SOCKS5_CONFFILE
Tells socks5 where to look for the configuration file.  The default is
socks5.cfg.  Obviously, for the desired behavior having this in that
config file would not work.  It should usually be set in the environment before
socks5 is run.  Useful if you want to run several servers on one machine, but
use different config files for each one.

SOCKS5_LOGFILE
Tells socks5 what is the log file name. The default is socks5.log

SEE ALSO
socks5cfg.txt


