conquestd is a game server for Conquest. A client, such as conquest is used to connect to a conquestd server to play the game.
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 (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.
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.
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 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.
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.
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 conquest.conf 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.
conquest(6), conquestd(6), conqoper(6), conqdriv(6), conqmetad(6)
See README in the conquest distribution (usually installed in <conquest install prefix>/etc/) for information and tips on how to play.
See INSTALL for instructions on unpacking, compiling, and installing conquest, as well as information on terminfo requirements (for the curses client) and other system specific issues.
See README.cygwin for information on building/using conquest on MS Windows systems.
See HISTORY for the latest news and modification history.
See CONQINIT.TXT for information on CQI, and the format of the conqinitrc and texturesrc files.
Copyright (C)1994-2018 by Jon Trulson <jon@radscan.com> under the MIT License.