Provided by: ser2net_2.10.1-1_amd64 bug

NAME

       ser2net - Serial to network proxy

SYNOPSIS

       ser2net [-c configfile] [-C configline] [-p controlport] [-n] [-d] [-b] [-v] [-P pidfile]

DESCRIPTION

       The ser2net daemon allows telnet and tcp sessions to be established with a unit's serial ports.

       The  program  comes up normally as a daemon, opens the TCP ports specified in the configuration file, and
       waits for connections.  Once a connection occurs, the program attempts to set up the connection and  open
       the  serial  port.   If  another  user  is already using the connection or serial port, the connection is
       refused with an error message.

OPTIONS

       -c config-file
              Set the configuration file to one other than the default of /etc/ser2net.conf

       -C config-line
              Handle a single configuration line.  This may be specified  multiple  times  for  multiple  lines.
              This  is  just  like  a  line in the config file.  This disables the default config file, you must
              specify a -c after the last -C to have it read a config file, too.

       -n     Stops  the  daemon  from  forking  and  detaching  from the controlling terminal. This  is  useful
              for running from init.

       -d     Like  -n,  but  also  sends  the system logs to standard output. This is most useful for debugging
              purposes.

       -P pidfile
              If specified, put the process id (pid) of ser2net in the pidfile, replacing whatever was  in  that
              file  previously.  A pidfile is not created by default, you must specify this to create one.  Note
              also that this filename must be specific with the full path, as ser2net will change  directory  to
              "/" when it becomes a daemon.  when it

       -u     If UUCP locking is enabled, this will disable the use of UUCP locks.

       -b     Cisco IOS uses a different mechanism for specifying the baud rates than the mechanism described in
              RFC2217.   This  option sets the IOS version of setting the baud rates.  The default is RFC2217's.
              Note that this capability is now handled automatically and this option is ignored.

       -v     Prints the version of the program and exits.

       -p controlport
              Enables the control port and sets the TCP port to listen to for the control port.  A  port  number
              may  be  of the form [host,]port, such as 127.0.0.1,2000 or localhost,2000.  If this is specified,
              it will only bind to the IP address specified for the port.  Otherwise, it will bind  to  all  the
              addresses on the machine.

              If  the  port  number  is  zero,  that  means  that  standard  in/out  will  be  used for the only
              input/output, and only one port should be specified in the config.  This way, it can be used  from
              inetd.

       -s signature
              Specifies the default RFC2217 signature.

CONTROL PORT

       The  control  port  provides  a  simple  interface for controlling the ports and viewing their status. To
       accomplish this, it has the following commands:

       showport [<TCP port>]
              Show information about a port. If no port is given, all ports are displayed.

       showshortport [<TCP port>]
              Show information about a port, each port on  one  line.  If  no  port  is  given,  all  ports  are
              displayed.  This can produce very wide output.

       help   Display a short list and summary of commands.

       exit   Disconnect from the control port.

       version
              Display the version of this program.

       monitor <type> <tcp port>
              Display  all  the  input  for a given port on the calling control port.  Only one direction may be
              monitored at a time.  The type field may be tcp or term and specifies whether to monitor data from
              the TCP port or from the serial port Note that data monitoring is best effort, if  the  controller
              port  cannot  keep  up the data will be silently dropped.  A controller may only monitor one thing
              and a port may only be monitored by one controller.

       monitor stop
              Stop the current monitor.

       disconnect <tcp port>
              Disconnect the tcp connection on the port.

       setporttimeout <tcp port> <timeout>
              Set the amount of time in seconds before the port connection will be shut down if no activity  has
              been seen on the port.

       setportconfig <tcp port> <config>
              Set  the  port  configuration  as  in  the device configuration in the /etc/ser2net.conf file.  If
              conflicting options are specified, the last option will be the one used.  Note that these will not
              change until the port is disconnected and connected again.  Options 300, 1200, 2400,  4800,  9600,
              19200,  38400,  57600, 115200 set the various baud rates.  The following speed may be available if
              your system has the values defined and your hardware supports it: 230400, 460800, 500000,  576000,
              921600,  1000000,  1152000, 1500000, 2000000, 2500000, 3000000, 3500000, 4000000.  EVEN, ODD, NONE
              set the parity.  1STOPBIT, 2STOPBITS set the number of stop bits.  7DATABITS,  8DATABITS  set  the
              number  of  data  bits.  [-]XONXOFF turns on (- off) XON/XOFF support.  [-]RTSCTS turns on (- off)
              hardware flow control.  [-]LOCAL ignores (- checks) the modem control lines (DCD, DTR, etc.)

       setportcontrol <tcp port> <controls>
              Modify dynamic port controls.  These do not stay between connections.  Controls are: DTRHI,  DTRLO
              Turns on and off the DTR line.  RTSHI, RTSLO Turns on and off the RTS line.

       setportenable <tcp port> <enable state>
              Sets the port operation state.  Valid states are: off to shut the TCP port down, raw to enable the
              TCP  port  transfer  all  I/O  as-is, rawlp to enable the TCP port input and device output without
              termios setting, and telnet to enable the TCP port is up run the telnet  negotiation  protocol  on
              the port.

CONFIGURATION

       Configuration  is  accomplished through the file /etc/ser2net.conf.  A file with another name or path may
       be specified using the -c option, or individual config lines may be specified with the -C  option.   This
       file consists of one or more entries with the following format:

              <TCP port>:<state>:<timeout>:<device>:<options>

       or

              BANNER:<banner name>:<banner text>

       or

              SIGNATURE:<signature name>:<signature text>

       or

              OPENSTR:<openstr name>:<openstr text>

       or

              CLOSESTR:<closestr name>:<closestr text>

       or

              CLOSEON:<closeon name>:<closeon text>

       or

              TRACEFILE:<tracefile name>:<tracefile>

       or

              CONTROLPORT:<port spec>

   FIELDS
       TCP port
              Name   or number of the TCP/IP port to accept connections from for this device.  A port number may
              be of the form [host,]port, such as 127.0.0.1,2000 or localhost,2000,  or  ::,2000.   If  this  is
              specified, it will only bind to the IP address specified for the port.  Otherwise, it will bind to
              all  the  ports on the machine.  You can specify an IPV6 address in the port, any colon before the
              comma is ignored for parsing fields.

       state  Either raw or rawlp or telnet or off.  off disables the port from accepting connections.   It  can
              be  turned  on  later  from  the  control port.  raw enables the port and transfers all data as-is
              between the port and the long.  rawlp enables the port and transfers all  input  data  to  device,
              device  is  open  without  any  termios  setting.  It  allow  to use /dev/lpX devices and printers
              connected to them.  telnet enables the port and runs the telnet protocol on the  port  to  set  up
              telnet parameters.  This is most useful for using telnet.

       timeout
              The  time (in seconds) before the port will be disconnected if there is no activity on it.  A zero
              value disables this function.

       device The  name  of  the  device  to connect to. This must be in the form of /dev/<device>.

       device configuration options
              Sets operational parameters for the serial port.  Values may be separated  by  spaces  or  commas.
              Options  300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 set the various baud rates.  The
              following speed may be available if your system has the values defined and your hardware  supports
              it:  230400, 460800, 500000, 576000, 921600, 1000000, 1152000, 1500000, 2000000, 2500000, 3000000,
              3500000, 4000000.  EVEN, ODD, NONE set the parity.  1STOPBIT, 2STOPBITS set  the  number  of  stop
              bits.   7DATABITS,  8DATABITS  set  the number of data bits.  [-]XONXOFF turns on (- off) XON/XOFF
              support.  [-]RTSCTS turns on (- off) hardware flow control.  [-]LOCAL ignores (- checks) the modem
              control lines (DCD, DTR, etc.)  [-]HANGUP_WHEN_DONE lowers (- does not lower)  the  modem  control
              lines  (DCD,  DTR,  etc.)  when the connection closes.  NOBREAK disables automatic clearing of the
              break setting of the port.  remctl allows remote control of the serial  port  parameters  via  RFC
              2217.   See the README for more info.  kickolduser sets the port so that the previous user will be
              kicked off if a new user comes in.  Useful if you forget to log off from  someplace  else  a  lot.
              <banner  name> displays the given banner when a user connects to the port.  <signature name> sends
              RFC2217 signature on clients request.  <openstr name> Send the given string to the device when the
              port is opened.  <closestr name> Send the given string to the device when the port is closed.

              tr=<filename> When the port is opened, open the given tracefile and store all data read  from  the
              physical  device  (and  thus  written to the user's TCP port) in the file.  The actual filename is
              specified in the TRACEFILE directive.  If the file already exists, it is appended.   The  file  is
              closed when the port is closed.

              tw=<filename> Like tr, but traces data written to the device.

              tb=<filename> trace both read and written data to the same file.  Note that this is independent of
              tr and tw, so you may be tracing read, write, and both to different files.

              [-]hexdump  turns on (- turns off) hexdump output to all trace files.  Each line in the trace file
              will be 8 (or less) bytes in canonical hex+ASCII format.  This is useful for  debugging  a  binary
              protocol.

              [-]timestamp  adds  (- removes) a timestamp to all of the trace files. A timestamp is prepended to
              each line if hexdump is active for the trace file.  A timestamped line is  also  recorded  in  the
              trace file when a remote client connects or disconnects from the port.

              [-][tr-|tw-|tb-]hexdump  turns  on  (-  turns off) hexdump output for only one trace file.  May be
              combined with [-]hexdump.  Order is important.

              [-][tr-|tw-|tb-]timestamp adds (- removes) a timestamp to only one the trace files May be combined
              with [-]timestamp.  Order is important.

              telnet_brk_on_sync causes a telnet sync operation to send a break.  By  default  data  is  flushed
              until the data mark, but no break is sent.

       banner name
              A name for the banner; this may be used in the options of a port.

       banner text
              The  text  to  display  as  the  banner.   It takes escape sequences for substituting strings, see
              "FILENAME, BANNER, AND STRING FORMATTING" for details.

       tracefile name
              A name for the tracefile, this is used in the tw, tr, and tb options of a port.

       tracefile
              The file to send the trace into.  Note that this takes escape sequences for substituting  strings,
              see  "FILENAME,  BANNER, AND STRING FORMATTING" for details.  Note that when using the time escape
              sequences, the time is read once at port startup, so if you use both tw and tr they will have  the
              same date and time.

       port spec
              The  control  port specification as defined by the [-p] option on the command line.  This lets the
              control port be specified in the configuration file.  The command line  will  override  this,  and
              only the first port specified is used.

       Blank lines and lines starting with `#' are ignored.

FILENAME, BANNER, AND STRING FORMATTING

       Filenames,  banners,  and open/close string may contain normal "C" escape sequences and a large number of
       other escape sequences, too:

         \a - bell
         \b - backspace
         \f - form feed
         \n - newline
         \r - carriage return
         \t - tab
         \v - vertical tab
         \\ - \
         \? - ?
         \' - '
         \" - "
         \nnn - octal value for nnn
         \xXX - hex value for XX
         \d - The device name (/dev/ttyS0, etc.)
         \p - TCP port number
         \B - The serial port parameters (eg 9600N81)
         \Y -> year
         \y -> day of the year (days since Jan 1)
         \M -> month (Jan, Feb, Mar, etc.)
         \m -> month (as a number)
         \A -> day of the week (Mon, Tue, etc.)
         \D -> day of the month
         \e -> epoc (seconds since Jan 1, 1970)
         \U -> microseconds in the current second
         \p -> local port number
         \d -> local device name
         \I -> remote IP address (in dot format)
         \H -> hour (24-hour time)
         \h -> hour (12-hour time)
         \i -> minute
         \S -> second
         \q -> am/pm
         \P -> AM/PM

       In addition, for backwards compatibility because filenames and banners used to have different formatting,
       \s is the serial port parameters if in a banner and seconds if in a filename.  Use of this is discouraged
       as it may change in the future.

       These sequences may be used to make the filename unique per  open  and  identify  which  port/device  the
       filename  was  for.   Note  that in filenames when using \d, everything up to and including last / in the
       device name is removed, because you can't have a / in a filename.  So  in  a  filename  /dev/ttyS0  would
       become just ttyS0.

SECURITY

       ser2net  uses  the  tcp  wrappers  interface to implement host-based security.  See hosts_access(5) for a
       description of the file setup.  Two daemons are used by ser2net, "ser2net" is  for  the  data  ports  and
       "ser2net-control" is for the control ports.

SIGNALS

       SIGHUP
            If ser2net receives a SIGHUP, it will reread it configuration file and make the appropriate changes.
            If  an  inuse  port  is  changed  or  deleted,  the  actual  change will not occur until the port is
            disconnected.

Error

       Almost all error output goes to syslog, not standard output.

FILES

       /etc/ser2net.conf

SEE ALSO

       telnet(1), hosts_access(5)

KNOWN PROBLEMS

       None.

AUTHOR

       Corey Minyard <minyard@acm.org>

Serial to network proxy                             06/02/01                                          ser2net(8)