conquestd

Langue: en

Autres versions - même langue

Version: 327312 (ubuntu - 08/07/09)

Section: 6 (Jeux)

NAME

conquestd - a Conquest game server

SYNOPSIS

conquestd [OPTIONS]

DESCRIPTION

conquestd is a game server for Conquest. Clients, such as conquestgl and conquest are used to connect to a conquestd server to play the game.

OPTIONS

-d
Daemon mode.
-l
Listen for local connections only. When this option is supplied, only clients on the local host will be able to connect.
-p <port>
Listen for game connnections on port port. The default port is 1701.
-m
Notify the metaserver of the presence of your game server. When this option is specified, conquestd will notify the meta server (default conquest.radscan.com) of your server, so that other players can see it in the server list and connect to it. Do not use this option if your server is not actually available from the Internet.
-M <meta server>
Notify meta server instead of the default meta server running at conquest.radscan.com.
-N <my name>
Explicitly specify server name my name to the meta server when announcing your game. This is useful if your server is accessed with a different host name internal to your network, than the host name that an Internet client would need to use to connect.
-u <user>
Run as user user. This option is advised when running as root. It is generally not a good idea to run an Internet accessable game server as the root user :) Only the root user can use this option.

OVERVIEW

With version 8.0 of Conquest or better, a great deal of work has gone into making Conquest a true client/server game playable over the Internet (or just your local LAN).

Conquest has two main parts, the server component (conquestd) and the client (OpenGL version: conquestgl, curses version: conquest).

To run a server, you must run the conquestd program.

Clients (including ones on your local machine) then connect to your server and the game is played.

SETTING UP A SERVER

conquestd is used to provide a Conquest game. Even if all you want to do is play by yourself on your own machine, you will need to run conquestd in order to play.

If all you want to do is use conquest to play on someone else's server, then you do not need to be reading this document. :)

In it's simplest (and insecure) form, you can simply run:


       $ conquestd -d

This will start conquestd, which will fork itself into the background and run as your user id.

It will listen on the default port (1701) for client connections, and spawn a new conquestd for each client connection. It will be available to anyone who can connect to TCP port 1701 on your machine.

SECURITY NOTE: I would only run a server this way if no one else from the Internet will be able to connect (if you are behind a firewall for example). This is more INSECURE since conquestd will be running as your uid. Read further for a more secure way to run the server.

To support internet playes securely, start conquestd as root, and have it run as user 'nobody' by passing the -u nobody option on the command line. Of course you can create and use some other non-privileged, non-interactive user for this task as well.

Something like the following is a good idea:


        # conquestd -d -u nobody

This will have conquestd setuid() permanently to user 'nobody' before beginning operations. On most unix systems, user 'nobody' has no home directory, password, or privileges, and therefore is a safe user id to run under.

You must be the root user in order to use the '-u' option.

DO NOT run conquestd as the root user itself. Although the code *should* be safe, don't take my word for it.

NOTIFYING THE METASERVER

If you are going to run a server that will be available to the public via the Internet, you should pass the '-m' option to conquestd when you start it.

When running with the '-m' option, conquestd will contact the Conquest Meta Server running at conquest.radscan.com, and announce your server, so that other people will know about it.

Every 2 minutes or so, it will update the meta server with various particulars of your server (like how many players are currently connected, what flags you support, what your server name, version, and MOTD are, etc).

This way, other people can find out about your server and connect to it to play.

The list of currently active servers can be seen in the game by running your client (conquestgl or conquest) with the '-m' flag.

You can also point your web browser to:


     http://radscan.com/cgi-bin/conqmeta.pl

If you want to be primitive, you can see the current list of servers in raw format by simply:


     telnet conquest.radscan.com 1700

Of course, please make sure that your server is actually reachable from the Internet before notifying the Meta server.

FIREWALL CONSIDERATIONS

Most people that will run a server (or client) will also be using a firewall of some sort to protect their networks.

Inbound access:

If you wish to allow internet access to your server, you will need to allow inbound TCP _and_ UDP access to the game port (1701 by default).

Outbound access:

If you restrict outbound internet connections, you might want to allow the following outgoing ports:

1700/tcp - if you want clients to be able to query the metaserver for active servers.

1700/udp - if you want your own server to be able to announce it's availability to the metaserver at conquest.radscan.com.

EXPIRING USERS

By default, whenever a user logs into Conquest, an autoexpire is run to locate and 'resign' all inactive remote users.

A user is expired:

A) if the user is a non OPER or non robot user - no expiration is ever done on these users.

B) the user hasn't entered the game in 'user_expiredays' days, which is set in the system-wide conquestrc file.

C) the user isn't currently flying a ship.

If all of these conditions are met, the remote user is resigned from the game.

You can disable user expiration altogether by setting user_expiredays to 0.

You can configure this in the (O)ptions menu in conqoper.

EXAMPLES

conquestd -d
This is conquestd simplest (and insecure) form. It kicks off into the background (running as your UID) and serves a conquest game.
conquestd -d -u nobody
When started as the root user, this will have conquestd setuid to the user 'nobody' (a common, unprivileged account on unix systems) and begin serving connections. For an Internet accessable server, these are the recommended minimum options to use.
conquestd -d -u nobody -l
Run the server us user nobody, serving only local clients.
conquestd -d -u nobody -m -N conquest.radscan.com
Run the server us user nobody, announcing your server to the conquest meta server, and tell the meta server that Internet clients should use the hostname conquest.radscan.com to connect to your server.

SEE ALSO

conquest(6), conquestd(6), conqoper(6), conqdriv(6), conquestsh(6), conqmetad(6)

AUTHOR

Jon Trulson <jon@radscan.com>