Dial-up PPP Configuration

This information is mainly for people who do not have a wrapper
utility like kppp or pppconfig, or are not able to get those utilities
to work correctly. If you need to manually configure PPP to dial in to
your ISP, you will need the following information:

* The port that your modem is connected to: /dev/ttyS0-/dev/ttyS3,
which correspond to COM1-COM4 under MS-DOS.
* The phone number of your ISP's data connection.
* The user name and password that your ISP gave you.
* The IP addresses of the primary and possibly secondary Domain Name
Service that you will use when dialing in to the ISP. This assumes
that you will not be using a DNS that you installed on your

When you have all of this information, make sure that the programs
pppd and chat, at the very minimum, are installed correctly. In most
current distributions, they are installed in the /usr/sbin/ directory,
and you will need to be logged in as root to use them. In addition,
the following programs are also useful for configuring network
connections, determining network status, and diagnosing problems:
/sbin/ifconfig, /sbin/route, /bin/ping, /usr/sbin/traceroute.

These are the basic steps that you need to follow to configure PPP.
You must be logged in as root.

* Make sure that the serial port and modem are operating correctly.
Using a program like minicomm or kermit, you should be able to
send AT commands to the modem and receive the OK string in
response from the modem.
* Enter the primary and possibly secondary Domain Name Server IP
addresses in the /etc/resolv.conf file, using dotted quad
notation, with the nameserver label. For example:

order hosts,bind

The nameserver addresses in the example above are examples only.
They don't correspond to actual network hosts.
The first line, order hosts,bind, tells your networking software,
when it resolves network domain addresses, to first look in the
/etc/hosts file, and then use the bind service; i.e., the DNS
servers, which are specified on the lines that begin with
* Locate the chat script that PPP will use to dial the modem and
connect to your ISP. In many systems, this is either in the
/etc/chatscripts or /etc/ppp directory, and will be called
provider or something similar. You can store a chat script
anywhere, provided that you tell pppd to use it rather than the
default script. Refer to the chat and pppd manual pages, and the
information below, for details. Here is a sample chat script:


This is a chat program for a simple, script based login. The chat
program uses the pair of strings on each line as a match/response
pair. When it starts, it sends the string
"ATDTyour_isp's_phone_number," where you have substituted the
actual phone number of course. It then waits for the string ogin
(a substring of the word login) and sends your user name. It then
waits for word (a substring of password) and sends your password.
If your ISP uses a different login and password prompts, and any
additional prompts, you will need to edit the script accordingly.
Again, refer to the chat manual page for details.
If your ISP uses PAP or CHAP authentication, you will need to edit
the pap-secrets or chap-secrets files in /etc/ppp directory as
well. Refer to the manual pages for these files, as well as the
instruction in the files themselves.
* The configuration of pppd, the program that maintains the actual
connection, is usually contained in two or three separate files.
The first is usually /etc/ppp/options, which contains options that
all of your system's PPP connections will use. (Yes, you can have
more than one; as many as your computer has serial ports,
Here is a sample /etc/ppp/options file:

# /etc/ppp/options

asyncmap 0

# ------

The options may be given on one line or each on a separate line.
Many options files are much longer, and come with a description of
each option. Here, the options mean, in order, don't remap any
characters between the PPP client and server; always use password,
PAP, or CHAP authentication when making a connection; use the
modem's hardware handshake lines for flow control; lock the serial
port when in use so no other programs can access it; and do not
use the IPX network protocol.
* For connection set-up on each individual serial port or PPP host,
there will either be an /etc/ppp/options.ttyS1, for example,
options file for /etc/ttyS1, or a file for your ISP in the
/etc/ppp/peers directory. The default is often called
/etc/ppp/peers/provider. Here is a sample of the default provider

connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"

There might be an explanation of these and other options in the
/etc/ppp/peers/provider file itself. You can also refer to the
pppd manual page for details. Briefly, they mean: do not use PAP
authentication for this connection; use the chat program and the
/etc/chatscripts/provider script, which is described above, to
dial the phone and log in; set the network default route to the
PPP connection (so when your network software needs to resolve an
network address that is not on your local machine(s), it will use
the PPP connection to the Internet); use /dev/ttyS1 as the serial
port for the connection; set the modem speed to 38400; and keep
the pppd daemon running even if the connection fails.
* That is all of the configuration you need. To actually start and
stop PPP, there are often /usr/bin/pon and /usr/bin/poff scripts
(in Debian), or something similar, and they are usually very
simple, and only contain the command:

$ /usr/sbin/pppd call ${1:-provider}

This will start pppd and use the call option to call the server
that you type on the command line, or the provider given in the
/etc/ppp/peers/provider file if you do not specify a remote
server. After making the call and logging in (about 30 seconds),
you should be able to use the /sbin/ifconfig program to determine
that the connection really did establish a PPP interface (the
first will be ppp0, the second will be ppp1, etc., depending on
how many simultaneous PPP connections you have. If something goes
wrong, you can look at the /var/log/ppp.log file to determine what
happened. You can also view the log as the connection is being
made, by "tailing" it in another window; that is, viewing it as
pppd logs the connection's status information. To do this, use the
command (again, as root):

$ tail -f /var/log/ppp.log

On some systems the PPP output is directed to /var/log/messages,
in which case your system may not have a dedicated PPP log file.

You should be also able to ping one of your ISP's domain names (e.g.,
mail.isp.com) and receive a response.

These are the most basic steps for configuring a PPP connection. You
will also need to take into account what other network connections may
be present (for example, if there's an Ethernet connection that has
already been assigned the default route), as well as various security
measures at your ISP's end. If you're having trouble making the
dial-up connection, usually the best way to determine what may be
going wrong is to use Seyon, minicomm, kermit, or some other program
to dial and log in manually to the ISP, and determine just exactly
what you have to do to log in, then duplicate that in the PPP scripts.

Most Linux documentation also has additional instructions for
configuring PPP connections. Refer to ("Where Are the Linux FTP
Archives?") ("Where Is the Documentation?")

Suggest a Site