summaryrefslogtreecommitdiff
path: root/man/minecproxy.conf.xml
blob: 65eaeac7d710354378eab414277bf42e630b39b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<!-- SPDX-License-Identifier: GPL-2.0 -->

<refentry id="minecproxy.conf">

  <refentryinfo>
    <title>minecproxy.conf</title>
    <productname>minecproxy</productname>
    <authorgroup>
      <author>
        <contrib>Developer</contrib>
        <firstname>David</firstname>
        <surname>Härdeman</surname>
      </author>
    </authorgroup>
  </refentryinfo>

  <refmeta>
    <refentrytitle>minecproxy.conf</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>minecproxy.conf</refname>
    <refpurpose>Basic settings for <command>minecproxy</command></refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>minecproxy.conf</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>
    <para>
      <filename>minecproxy.conf</filename> provides the ability to
      control some basics of <command>minecproxy</command>.
      The file is expected to be in the main configuration directory
      of <command>minecproxy</command> (see 
      <citerefentry><refentrytitle>minecproxy</refentrytitle><manvolnum>1</manvolnum></citerefentry>)
      and uses a plain text ini-style format simlar to what
      <application>systemd</application> uses.
    </para>
    <para>
      The file has a single section titled [MinecProxy], and comments
      can be prefixed with <emphasis>#</emphasis>. The defaults should
      be fine for the majority of users, meaning that no further
      configuration is necessary and this file can be omitted.
    </para>
  </refsect1>

  <refsect1>
    <title>Options</title>
    <para>The following options are understood:</para>
    <variablelist>

      <varlistentry>
        <term><option>IGMP=</option></term>
        <listitem><para>
	  Instead of constanly announcing the configured 
	  <application>Minecraft</application> servers, listen to
	  the multicase messages sent by <application>Minecraft</application>
	  clients when they are looking for servers (i.e. joining
	  a certain multicast group) and only then start sending announce
	  messages on the local network. This cuts down on the network
	  traffic (<remark>this feature should be considered
	  experimental</remark>).
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>IGMPIface=</option></term>
        <listitem><para>
	  The name of the network interface (e.g. <quote>eth0</quote>
	  to use when listening for <acronym>IGMP</acronym> messages
	  (default: all).
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>AnnounceIntervalSec=</option></term>
        <listitem><para>
	  The number of seconds to wait between sending successive
	  announce messages on the local network.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>ProxyConnectionIntervalSec=</option></term>
        <listitem><para>
	  The number of seconds to wait between performing
	  connection attempts when a client is connecting to a proxy
	  type server (see
          <citerefentry><refentrytitle>minecproxy.mcserver</refentrytitle><manvolnum>5</manvolnum></citerefentry>
	  for a discussion of server types). Mostly useful when
	  <command>minecproxy</command> is in the process of starting
	  up a server.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>ProxyConnectionAttempts=</option></term>
        <listitem><para>
	  How many connection attempts to perform (with a wait
	  of <option>ProxyConnectionIntervalSec=</option> seconds in
	  between each attempt) before giving up.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>SocketDefer=</option></term>
        <listitem><para>
	  Takes a boolean argument specifying whether to set the
	  <literal>TCP_DEFER_ACCEPT</literal> option on proxy
	  sockets. Said option allows <command>minecproxy</command>
	  to defer accepting connections until the client starts
	  sending data, which conserves resources (see
          <citerefentry><refentrytitle>tcp</refentrytitle><manvolnum>7</manvolnum></citerefentry>
	  for further details).
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>SocketFreebind=</option></term>
        <listitem><para>
	  Takes a boolean argument specifying whether to set the
	  <literal>IP_FREEBIND</literal> option on proxy
	  sockets. Said option allows <command>minecproxy</command>
	  to listen to addresses which are not configured at
	  the time <command>minecproxy</command> is started, which
	  allows <command>minecproxy</command> to be started before
	  the network has been configured, at the cost of not being
	  able to catch incorrectly defined addresses (see
          <citerefentry><refentrytitle>ip</refentrytitle><manvolnum>7</manvolnum></citerefentry>
	  for further details).
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>SocketKeepalive=</option></term>
        <listitem><para>
	  Takes a boolean argument specifying whether to set the
	  <literal>SO_KEEPALIVE</literal> option on proxy
	  sockets. Said option allows <command>minecproxy</command>
	  to detect dead clients earlier, which might conserve resources (see
          <citerefentry><refentrytitle>tcp</refentrytitle><manvolnum>7</manvolnum></citerefentry>
	  for further details).
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>SocketIPTOS=</option></term>
        <listitem><para>
	  Takes a boolean argument specifying whether to set the
	  <literal>IPTOS_LOWDELAY</literal> option on proxy
	  sockets. Said option informs the kernel that delays
	  should be minimized, as the <application>Minecraft</application>
	  traffic is interactive (see
          <citerefentry><refentrytitle>ip</refentrytitle><manvolnum>7</manvolnum></citerefentry>
	  for further details).
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>SocketNoDelay=</option></term>
        <listitem><para>
	  Takes a boolean argument specifying whether to set the
	  <literal>TCP_NODELAY</literal> option on proxy
	  sockets. Said option allows packets to be forwarded as soon
	  as possible, which should benefit interactive traffic, such
	  as <application>Minecraft</application> connections (see
          <citerefentry><refentrytitle>tcp</refentrytitle><manvolnum>7</manvolnum></citerefentry>
	  for further details).
        </para></listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>Example</title>
<programlisting>
<![CDATA[
[MinecProxy]
IGMP=true
IGMPIface=eth0
AnnounceIntervalSec=5
ProxyConnectionIntervalSec=3
ProxyConnectionAttempts=20
SocketDefer=true
SocketFreebind=true
SocketKeepalive=true
SocketIPTOS=true
SocketNoDelay=true
]]>
</programlisting>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>minecproxy</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>minecctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>minecproxy.mcserver</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>