## This help page is incomplete

### Introduction

This module allows you to manage and setup internet services such as `telnet`, `ftp` and `finger`. Every internet service has a name, port number and protocol (such as `telnet` on `tcp` port 23). Many services also have a server program to handle network connections to that services.

Services with an associated program are controlled by the Unix `inetd` daemon, which listens for network connections on behalf of all its services. When a connection is received, the server program is started to handle data from the new connection.

Not all internet services are managed by this module. Servers that receive many connections such as HTTPD, SMB or NFS are run separately to avoid having to start a new process for each request. These services can be configured using other Webmin modules, such as Samba or Apache.

The main page for this module lists all the internet and RPC services on your system. Services with a program assigned are displayed in bold. The list of internet services, RPC services and programs are taken from the files `/etc/services`, `/etc/rpc` and `/etc/inetd.conf`.

### Creating a New Service

To create a new internet service, click on the `Create New Service` link below the list of active services. This will take you to a form in which the details of the new service can be entered :

- Service Name
  Every service must have a unique name and protocol pair. This means that two services can have the same name only if they use different protocols.

- Protocol
  The communications protocol used by this service. Almost all internet services use the `TCP` protocol, and the rest use `UDP`.

- Port
  Every service has a port number which must be unique within the protocol used by the service. The port number must be between 0 and 65535 for both `TCP` and `UDP`.

- Aliases
  A list of alternative names used to refer to this service. An alias cannot be already used as the name or alias of an existing service with the same protocol.

Internet service names can be used instead of hostnames in commands such as `telnet`. For example, you can type `telnet foo.bar.com smtp` to connect to port 25 on the host `foo.bar.com`, assuming the `smtp` internet service is defined correctly.

For services with an associated program, you must choose the `Use the program below` option ???

- Program
  Some rare services are handled internally by `inetd`. However, for almost all new services that you create the full path to the program to execute for the service should be given here.

- Arguments
  Command line arguments to pass to the program above. The first argument should be the program name, and the rest other parameters to pass.

- Wait mode
  This determines if `inetd` will wait until the program is complete before starting any others or not. For most services, this should be `Don't wait`.

- Execute as
  The username of the user the server program should be run as. Most servers will need to be run as `root`.

When a new service is added, it will not take effect immediately. You must click the `Restart Inetd` button on the main page for the addition to be applied.

### Editing an Existing Service

To edit a service, click on the service name from the list on the main page. This will display the same form used for creating a service to allow you to edit the service details. You can also click on the `Delete` button at the bottom of the page to delete the service.

Be careful when editing or deleting existing system services such as `telnet` or `ftp`. Changing these may make it impossible to login to your machine (or worse).

When a service is modified, it will not take effect immediately. You must click the `Restart Inetd` button on the main page for the changes to be applied.

### Creating and Editing RPC Programs

In general, you will never need to create or edit RPC programs on your system. However, if you do the procedure is similar to creating and editing internet services.

The form for editing and creating RPC programs will always contain at least the following fields :

- Program Name
  A unique name for this RPC program (within the same protocol).

- Number
  Every RPC program has a unique program number, determined when the program is written.

- Aliases
  Other names that can be used to refer to this RPC program.

Some operating systems (such as Solaris) allow a server program to be associated with an RPC service. This program will be run by `inetd` when it receives a request for the program.

If your system supports RPC server programs started by inetd, the following fields will also be visible :

- ???

Return to module