Short Tutorial for Beginners of DeleGate

This is a very short tutorial of DeleGate for beginners. See the reference manual (Manual.htm) and related documents for more details. A collection of usage examples at http://www.delegate.org/delegate/HowToDG.html might be helpful to see what you can do with DeleGate.

Minumum instruction

a. The simplest way to use DeleGate as a HTTP proxy, on the port 8080, is like this:
    delegated -P8080 SERVER=http
where -Pxxxx specifies the port number used to accept request from clients, and SERVER=yyyy specifies the protocol name used to communicate with clients.

b. The validity and custody of cached data can be controlled using EXPIRE and CRON parameters.

    EXPIRE=1d CRON="0 * * * * -expire 2d"
c. DeleGate implicitly allows only access from networks local to the host of DeleGate. You can explicitly specify hosts, networks, or domains to be allowed using a PERMIT parameter like this:
    PERMIT="*:*:host1,123.123.123.123/255.255.255.0,*.my.domain,!bad.my.domain"

A little advanced instruction

01. Execute DeleGate in debug mode (run in forground and put log to the console):
    delegated -v ...
02. Stop the DeleGate server running at the port 8080:
    delegated -P8080 -Fkill
03. Load and use configuration parameters at specified URL:
    delegated +=http://server/path/of/parameters.txt
04. Restrict network interface(s) to be used to accept clients' request:
    delegated -Phostname:8080 SERVER=http
05. Control the sequence of name resolution trials using multiple resolvers:
    RESOLV=dns,nis,file
06. Connect via Socks server(s) if the destination is not local to your site:
    CONNECT="cache,socks:*:!*.my.domain" SOCKS=sockshost
07. Forward any requests to another proxy:
    PROXY="proxyHost:8080:*"
08. Forward requests toward some destination servers to another proxy:
    PROXY="proxyHost:8080:!*.my.domain,!*.near.domain"
09. Relay an arbitrary TCP protocol to a specified server:
    SERVER=tcprelay://serverName:portNumber/
10. Forward arbitrary TCP protocols to another DeleGate:
    MASTER="delegateHost:8080:*"
11. Relay an arbitrary UDP protocol to a specified server:
    SERVER=udprelay://serverName:portNumber/
12. Bind the target server of DeleGate to provide the DeleGate as an origin server to clients:
    delegated -P80 SERVER=http://httpserver/
13. Restrict newsgroups to be provided to clients:
    delegated -P8119 SERVER=nntp://nntpserver/comp,misc,news
14. Merge multiple servers into a single virtual server using MOUNT parameter:
    SERVER=nntp MOUNT="= nntp://serv1/comp" MOUNT="= nntp://serv2/misc,news"
15. Gateway for HTTP clients to NNTP servers:
    SERVER=http MOUNT="/news1/* nntp://ns1/*" MOUNT="/news2/* nntp://ns2/*"
16. Use DeleGate as an origin HTTP server:
    -P80 SERVER=http MOUNT="/* /usr/local/www/*" REMITTABLE=file
17. Restrict destination hosts/nets/domains reachable via the DeleGate:
    PERMIT="*:*.reachable.domain:*"

Yutaka Sato <ysato AT delegate DOT org>