1nxproxy(1) NX Proxy nxproxy(1)
2
3
4
6 nxproxy - NX Proxy Tool
7
9 nxproxy [<options>] <host>:<port>
10
11
13 nxproxy is a tool that allows one to tunnel X sessions through the NX
14 compression library. nxproxy is a backend application utilized by
15 various client application (Remmina, X2Go Client, PyHoca-Gui, Arctica
16 Client, TheQVD Client, etc.).
17
19 -C Specify that nxproxy has to run on the 'X client' side,
20 listening for connections and impersonating an X server.
21
22 -S Specify that nxproxy has to run in 'X server' mode, thus
23 forwarding the connections to daemons running on the client.
24
25 -h Print this message.
26
27 -v Print version information.
28
29 -d <int>
30 Set log level (0 for FATAL, 1 for ERROR, 2 for WARNING, 3 for
31 INFO, 4 for DEBUG). The default is 0.
32
33 -o <string>
34 Name of the log file. Default is stderr.
35
36 -f <string>
37 Specify log format. The characters in <string> define how the
38 loglines are formatted. The following characters are supported,
39 default is '0':
40
41 0 only the plain text without any additions. This is the
42 default.
43
44 u include time
45
46 l include loglevel
47
48 T include thread ids
49
50 L include the location of the log call in the source code
51
52 <host>:<port>
53 Put at the end, specifies the host and port of the listening
54 proxy.
55
56
58 Multiple nx/nx options can be specified in the DISPLAY environment or
59 on the command line, by using the nx/nx,option=value notation.
60
61 link=<string>
62 An indication of the link speed that is going to be used
63 between the proxies. Usually the compression and the other link
64 parameters depend on this setting. The value can be either
65 'modem', 'isdn', 'adsl', 'wan', 'lan', 'local' or a bandwidth
66 specification, like for example '56k', '1m', '100m', etc.
67
68
69 type=<string>
70 Type of session, for example 'windows', 'unix-kde'. 'unix-
71 application', etc.
72
73
74 display=<string>
75 Specify the real display where X connections have to be
76 forwarded by the proxy running on the client.
77
78
79 listen=<int>
80 Local port used for accepting the proxy connection.
81
82
83 loopback=<bool>
84 Bind to the loopback device only.
85
86
87 accept=<string>
88 Name or IP of host that can connect to the proxy.
89
90
91 connect=<string>
92 Name or IP of host that the proxy will connect to.
93
94
95 port=<int>
96 Remote port used for the connection.
97
98
99 retry=<int>
100 Number of connection attempts.
101
102
103 root=<string>
104 The root directory for the session. Usually is the C-* or S-*
105 in the .nx directory in the user's home, with '*' being the
106 virtual display.
107
108
109 session=<string>
110 Name of the session file. The default is the name 'session' in
111 the session directory.
112
113
114 errors=<string>
115 Name of the log file used by the proxy. The default is the name
116 'errors' in the session directory.
117
118
119 stats=<string>
120 Name of the file where are written the proxy statistics. The
121 default is a file 'stats' in the session directory. The proxy
122 replaces the data in the file whenever it receives a SIGUSR1 or
123 SIGUSR2 signal:
124
125 SIGUSR1: Gives total statistics, i.e. statistics collected
126 since the beginning of the session.
127
128 SIGUSR2: Gives partial statistics, i.e. statistics collected
129 since the last time this signal was received.
130
131
132 cookie=<string>
133 Use the provided cookie for authenticating to the remote proxy.
134 The same cookie is used as the fake value used for the X
135 authorization. The fake cookie is replaced on the X server side
136 with the real cookie to be used for the display, so that the
137 real cookie doesn't have to travel over the net. When not using
138 a proxy cookie, any host will be able to connect to the proxy.
139 See also the 'accept' parameter.
140
141
142 nodelay=<bool>
143 A boolean indicating if TCP_NODELAY has to be set on the proxy
144 link. Old Linux kernels had problems with handling TCP_NODELAY
145 on PPP links.
146
147
148 policy=<bool>
149 Let or not the agent decide when it is the best time to flush
150 the proxy link. If set to 0, the proxy will flush any encoded
151 data immediately. The option has only effect on the X client
152 side proxy.
153
154
155 render=<bool>
156 Enable or disable use of the RENDER extension.
157
158
159 taint=<bool>
160 Try to suppress trivial sources of X roundtrips by generating
161 the reply on the X client side.
162
163
164 delta=<bool>
165 Enable X differential compression.
166
167
168 data=<int>
169 Enable or disable the ZLIB data compression. It is possible to
170 specify a value between 0 and 9. Usually the value is chosen
171 automatically based on the requested link setting.
172
173
174 stream=<int>
175 Enable or disable the ZLIB stream compression. The value,
176 between 0 and 9, is usually determined according to the
177 requested link setting. Not fully implemented in nx-X11 Agent,
178 yet.
179
180
181 limit=<int>
182 Specify a bitrate limit allowed for this session.
183
184
185 memory=<int>
186 Trigger memory optimizations used to keep small the size of X
187 buffers. This is useful on embedded plat- forms, or where
188 memory is scarce.
189
190
191 cache=<int>
192 Size of the in-memory X message cache. Setting the value to 0
193 will disable the memory cache as well as the NX differential
194 compression.
195
196
197 images=<int>
198 Size of the persistent image cache.
199
200
201 shseg=<int>
202 Enable the use of the MIT-SHM extension between the nxproxy and
203 the real X server. A value greater than 1 is assumed to be the
204 size of requested shared memory segment. By default, the size
205 of the segment is determined based on the size of the in-memory
206 cache.
207
208
209 load=<bool>
210 Enable loading a persistent X message cache at the proxy
211 startup.
212
213
214 save=<bool>
215 Enable saving a persistent X message cache at the end of
216 session.
217
218
219 cups=<int>
220 Enable or disable forwarding of CUPS connections, by listening
221 on the optional port 'n'.
222
223
224 aux=<int>
225 Enable or disable forwarding of the auxiliary X channel used
226 for controlling the keyboard. The 'keybd=<int>' form is
227 accepted for backward compatibility.
228
229
230 smb=<int>
231 Enable or disable forwarding of SMB connections. The
232 'samba=<int>' form is accepted for backward compatibility.
233
234
235 media=<int>
236 Enable forwarding of audio connections.
237
238
239 http=<int>
240 Enable forwarding of HTTP connections.
241
242
243 font=<int>
244 Enable forwarding of reversed connections to a font server
245 running on the NX server.
246
247
248 file=<int>
249 Enable forwarding of file transfer connections.
250
251
252 mask=<int>
253 Determine the distribution of channel ids between the proxies.
254 By default, channels whose ids are multiple of 8 (starting from
255 0) are reserved for the NX client side. All the other channels
256 can be allocated by the nx-X11 Agent side.
257
258
259 timeout=t
260 Specify the keep-alive timeout used by proxies to determine if
261 there is a network problem preventing communication with the
262 remote peer. A value of 0 disables the check.
263
264
265 cleanup=t
266 Specify the number of seconds the proxy has to wait at session
267 shutdown before closing all channels. The feature is used by
268 the NX server to ensure that services are disconnected before
269 shutting down the link.
270
271
272 pack=<string>
273 Determine the method used to compress images.
274
275
276 product=<string>
277 The product id of the client or server. The value is ignored by
278 the proxy, but the client or server can provide it to
279 facilitate the support.
280
281
282 core=<bool>
283 Enable production of core dumps when aborting the proxy
284 connection.
285
286
287 options=<string>
288 Specify an additional file containing options that has to be
289 merged with option read from the command line or the
290 environment.
291
292
293 kill=<int>
294 Add the given process to the list of daemons that must be
295 terminated at session shutdown. Multiple 'kill=<int>' options
296 can be specified. The proxy will send them a SIGTERM signal
297 just before exiting.
298
299
300 strict=<bool>
301 Optimize for responsiveness, rather than for the best use of
302 all the available bandwidth.
303
304
305 encryption=<bool>
306 Should be set to 1 if the proxy is running as part of a program
307 providing encryption of the point to point communication.
308
309
310 These options are interpreted by the nx-NX Agent. They are ignored by
311 the proxy.
312
313 rootless=<bool>
314 geometry=<string>
315 resize=<bool>
316 fullscreen=<bool>
317 keyboard=<string>
318 clipboard=<int>
319 streaming=<int>
320 backingstore=<int>
321 composite=<int>
322 xinerama=<int>
323 shmem=<bool>
324 shpix=<bool>
325 kbtype=<string>
326 client=<string>
327 shadow=<int>
328 shadowuid=<int>
329 shadowmode=<string>
330 defer=<int>
331 tile=<string>
332 menu=<int>
333 magicpixel=<bool>
334 autodpi=<bool>
335 sleep=<int>
336
337
339 The nxproxy application (and also nxagent when using nxcomp support)
340 can be influenced by the following environment variables:
341
342
343
344 NX_ROOT The root NX directory is the place where the session directory
345 and the cache files are created. This is usually overridden by
346 passing the 'root=' option. By default, the root NX directory
347 is assumed to be the directory '.nx' in the user's home.
348
349
350 NX_SYSTEM
351 The directory where NX programs and libraries reside. If not
352 set, the value is assumed to be '/usr/NX'. Programs, libraries
353 and data files are respectedly searched in the 'bin', 'lib' and
354 'share' subdirectories.
355
356
357 NX_HOME The NX user's home directory. If NX_ROOT is not set or invalid,
358 the user's NX directory is created here.
359
360
361 NX_TEMP The directory where all temporary files are to be created.
362
363
364 NX_CLIENT
365 The full path to the <nxclient> executable. If the variable is
366 not set, the <nxclient> executable will be run assuming that
367 the program is in the system path. This can be useful on
368 platforms like Windows and the MacOS X where <nxclient> is
369 located in a different directory compared to the other
370 programs, to make easier for the user to execute the program
371 from the shell.
372
373
374 NX_SLAVE_CMD
375 The full path to the slave channel handler. When the slave
376 channel is enabled, the agent will listen on a port and forward
377 the connection to the NX_SLAVE_CMD program. This can be used to
378 implement agent/proxy communication for applications such as
379 serial port and USB forwarding.
380
381
383 HOME The variable is checked in the case NX_HOME is not set, null or
384 invalid.
385
386
387 TEMP The variable is checked whenever the NX_TEMP directory is not
388 set, null or invalid.
389
390
391 PATH The path where all executables are searched, except <nxclient>.
392 If NX_CLIENT is not set, also the client executable is searched
393 in the system path.
394
395
396 LD_LIBRARY_PATH
397 System-wide library search order. This should be set by the
398 program invoking the proxy.
399
400
401 DISPLAY On the X server side, the DISPLAY variable indicates the
402 location of the X11 server. When nxcomp is used as a transport
403 library, the DISPLAY may represent a NX transport specification
404 and options can passed in the form nx/nx,option=value...
405
406
407 XAUTHORITY
408 This is the file containing the X11 authorization cookie. If
409 not set, the file is assumed to be in the user's home (either
410 NX_HOME or HOME).
411
412
414 The nxproxy application has originally been derived from a software
415 project called DXCP. The company NoMachine turned DXCP into nxcomp with
416 nxproxy as executable around nxcomp.
417
418 The current maintenance of nxproxy (major version 3) is coordinated
419 between various projects, mainly by The Arctica Project, TheQVD (Qindel
420 Group) and the X2Go Project.
421
422 This manual has been written by Mike Gabriel
423 <mike.gabriel@das-netzwerkteam.de> for the X2Go project
424 (http://www.x2go.org) and later on improved for the Arctica Project
425 (https://arctica-project.org).
426
427
428
429Version 3.5.99.26 Feb 2021 nxproxy(1)