オプション
-P option -- DeleGateの入り口ポート番号
== -Pport[,port]*
port == [host:]portNum[/udp][/admin][/protocolName]
portNum == number[-number]
このオプションは、DeleGateが、
クライアントからの要求を受ける、入り口ポート番号を指定します。
一般的な例として、"-P8080" は、ホストマシンが持っている、
どのネットワークインターフェースでも、8080番の TCP ポートで、
要求を受けることを意味します。ホストが、複数のインターフェースや複数の
IPアドレスを割り当てた、ひとつの物理インターフェースを持つ場合、
例えば "-Plocalhost:8080" のように、書式 -Phost:portNum で、
それらのひとつを選択できます。
DeleGate サーバーは、-Pport,port,... により、
複数のポートや、(有限の) 複数ネットワークインターフェースで受けることができます。
host を指定しない場合、IPv4 アドレスのみが受理されます。
-P8080 は、 "-P0.0.0.0:8080" の省略形です。
ここに IPv6 アドレスを指定するには、IPv6 アドレス表記のコロン":" を
アンダースコア"_" に置き換えます。
例) "-P__:8080" は、IPv6 におけるワイルドカードアドレス"::" の
8080番ポートで受理することを意味します。必要なら、"-Pfe80__12_34%en0:8080"
のように "%" を付けることでスコープIDを指定できます。
注)SRCIF で、
出力側接続のソースアドレスの選択方法を見てください。
入り口ポートは、デフォルトで、SERVER=protocol パラメーターにより、 UDP ベースアプリケーションプロトコル (dns, icp, cuseeme, udprelay) が指定された場合を除き、TCP ポートが作成されます。 また、-Pport/udp のように "/udp" が後置される場合、 SERVER で指定したプロトコルとは無関係なものとなります。
例えば "-P21/ftp,80/http/,1080/socks" のように、"/protocolName" を指定した場合、DeleGate は、SERVER パラメーターで指定されたデフォルトのプロトコルというよりも、 指定したポートで指定したアプリケーションプロトコルで動作します。
このオプションは、以下の場合を除き、*必ず* 指定しなければなりません。
DeleGate が、inetd(8) から、起動される場合や、
ほとんどの、-Ffunction オプションを利用する場合、
または、SERVER="tunnel1" により、トンネルサーバー
として動作している場合には、無視されます。
-Q option* -- DeleGate への入口ポート
== -Qport
-Q オプションは、複数の入力ポートを複数のオプションに分離して指定するのに使えます。
例)"-Q21 -Q80 -Q1080" のオプションセットは、単一のオプション "-P21,80,1080" と同じです。
-f option -- フォアグラウンドで実行
== -f[v]
指定した場合、DeleGateは、現在の 制御 tty と接続を保ちながら、
フォアグラウンドで動作するので、tty からの SIGINT により、
終了し、また、現在のディレクトリー
(ワークディレクトリー から移動せず)にとどまります。
-fv オプションで、LOGFILE への出力は、コンソールにも表示されます。
-r option -- 再起動
指定した場合、同一の入り口ポートで動作中の DeleGate が存在する場合、
この DeleGate が起動する前に、終了させます。
起動前に、-Fkill を実行するのと同じ効果があります。
-v option -- ログレベルを制御
== -v[vdtsau]
指定した場合、DeleGateは、-f のように、フォアグラウンド動作で、
制御 tty 上にログを表示し、
LOGFILE および PROTOLOG には、
書きこみません。-v より詳細なログは、
-vvオプションを使用することで得られます。
同様に、ログファイルに書きこむログの詳細さは、
-vd/-vt/-vs オプションで、制御できます。
-vd は、デバッグ情報を含む詳細なログを作成し、
-vt は、簡潔となり、
-vs は、ログを停止し、静かにします。このオプションは、LOGFILE="" と同様です。
他のオプション -va は、緊急停止(emergency shutout)
を引き起こす、ABORT が発生した場合のみに出力される、
最も詳細なログレベル (-vd) においても隠されているログを生成します。
-vu は、一般的なレベルのログを出力します。
-d option -- サブコンポーネントのデバッグ
== -d[hst]
-dh HostList 突き合わせの詳細ログを有効にする。
-ds bind(), accept(), connect() を含む、ソケット操作ログを有効にする。
-dt 各スレッドの活性を、そのスレッド ID をともなう詳細なログを有効にします。
-D option -- サブコンポーネント無効化
== -D[t]
-Dt スレッド (SSL と gzip で) を使うプロセスのスレッドの使用を抑制します。
-S option -- SIGCHLD シグナルを監視します
指定した場合、DeleGate のゾンビプロセスは、
SIGCHILD シグナルを監視して、直ちにお掃除されます。
このオプションは、今後のリリースでは、デフォルトとなるかも知れません。
-T option -- システムコールトレース
== -T[xsdt]*
指定した場合、DeleGate プロセス内で発生したシグナルは、
"ptrace(2)" を使用して親 DeleGate で監視され、TRACELOG に記録されます。
-Tx を指定した場合、DeleGate プロセスは、
"execve(2)" システムコールが実行されようとしたとき、トラップを発生させ、終了します。
これは、セキュリティ強化のため有効な、侵入者の手段ともなる、
予期しない execve() を防ぎます。この -T オプションは、子プロセスにおいて発生した
イベントに直ちに応答するための、-Sオプションを自動的に有効にしますが、"-Ts" のように、
"s" を加えることでそれを無効にできます。
"-Txd" のように、"d" フラグを追加した場合、詳細なログを作成し、
"-Txt" のように、"t" フラグを追加した場合、ログは簡潔になります。
-F option -- 特殊機能
== -Ffunction
指定した場合、DeleGateは、DeleGate サーバーというよりも、
function に指定したプログラムとして動作します。
例:"delegated -Fkill -Pport"は、port
で動作している DeleGate を終了することを意味します。
"-Fimp" は、DeleGate の実行ファイルに埋め込まれたパラメーターを編集し、
権限と機能を制御 (DeleGate で誰が何をできるか) し、さらに、
実行ファイルのパラメーター固定値(上書き不可)を設定します。
使用法は、"delegated -Fimp -h" で表示されます。
-Fcgi では、DeleGate は HTTP サーバーから起動される cgi プログラムとして機能します。
利用可能な機能 は、-Fhelp で見られます。
-- option -- コマンドライン引数を隠す
指定した場合、"--" より前のコマンドライン引数は、ほとんどの Unix システムにおいて、
ps(1) コマンド(pstat(2)システムコールを使う)で見えます。
使わない場合、引数は、デフォルトで隠されます。
parameter == name=value
他のオプションは、パラメーター と呼び、
name=value 形式で、指定します。
パラメーターは、コマンドライン引数と同様に、環境変数として指定することもできます。
name パラメーターでは、name より前に、
環境変数 DG_name が取り込まれます。
"-" が前置きされた、上記にリストされたコマンドラインオプションは、
例:DGOPTS="-P8080;-v" のように、パラメーターとして指定することもできます。
conditional parameter == (condition)parameter
いくつかのパラメーターと -v オプションは、"(condition)"
を parameter の前に置くことで、条件付の制限をかけることができます。
現在、condition は、HostList で述べられる、
クライアントホストのリストです。
例えば、"(.localnet)-vs" は、クライアントがローカルネットワークからの場合、
ログを抑圧することを示します。
次のパラメーターは、この方法で条件付にできます:
BASEURL, DELAY, DELEGATE,
FCL, FSV, FFROMCL, FFROMSV, FTOCL, FTOSV,
LOGFILE, MAXIMA, RIDENT, TIMEOUT 。
この機能は、UDP ソケットに対しては動作しません。
-e option == -ename=value
これは、name=value と同様に見えますが、
ここでの、name=value
ペアーは、環境変数として、フィルタープログラムや、
CGI プログラムのような、子プロセスに受け継がれます。