# /etc/services:
# $Id: services,v 1.22 2001/07/19 20:13:27 notting Exp $
#
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, most entries here have two entries
# even if the protocol doesn't support UDP operations.
# Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
# are included, only the more common ones.
#
# The latest IANA port assignments can be gotten from
#	http://www.iana.org/assignments/port-numbers
# The Well Known Ports are those from 0 through 1023.
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
# 
# service-name  port/protocol  [aliases ...]   [# comment]

tcpmux		1/tcp				# TCP port service multiplexer
tcpmux		1/udp				# TCP port service multiplexer
rje		5/tcp				# Remote Job Entry
rje		5/udp				# Remote Job Entry
echo		7/tcp
echo		7/udp
discard		9/tcp		sink null
discard		9/udp		sink null
systat		11/tcp		users
systat		11/udp		users
daytime		13/tcp
daytime		13/udp
qotd		17/tcp		quote
qotd		17/udp		quote
msp		18/tcp				# message send protocol
msp		18/udp				# message send protocol
chargen		19/tcp		ttytst source
chargen		19/udp		ttytst source
ftp-data	20/tcp
ftp-data	20/udp
ftp		21/tcp
ftp		21/udp
ssh		22/tcp				# SSH Remote Login Protocol
ssh		22/udp				# SSH Remote Login Protocol
telnet		23/tcp
telnet		23/udp
# 24 - private mail system
smtp		25/tcp		mail
smtp		25/udp		mail
time		37/tcp		timserver
time		37/udp		timserver
rlp		39/tcp		resource	# resource location
rlp		39/udp		resource	# resource location
nameserver	42/tcp		name		# IEN 116
nameserver	42/udp		name		# IEN 116
nicname		43/tcp		whois
nicname		43/udp		whois
tacacs		49/tcp				# Login Host Protocol (TACACS)
tacacs		49/udp				# Login Host Protocol (TACACS)
re-mail-ck	50/tcp				# Remote Mail Checking Protocol
re-mail-ck	50/udp				# Remote Mail Checking Protocol
domain		53/tcp		nameserver	# name-domain server
domain		53/udp		nameserver
whois++		63/tcp
whois++		63/udp
bootps		67/tcp				# BOOTP server
bootps		67/udp
bootpc		68/tcp				# BOOTP client
bootpc		68/udp
tftp		69/tcp
tftp		69/udp
gopher		70/tcp				# Internet Gopher
gopher		70/udp
netrjs-1	71/tcp				# Remote Job Service
netrjs-1	71/udp				# Remote Job Service
netrjs-2	72/tcp				# Remote Job Service
netrjs-2	72/udp				# Remote Job Service
netrjs-3	73/tcp				# Remote Job Service
netrjs-3	73/udp				# Remote Job Service
netrjs-4	74/tcp				# Remote Job Service
netrjs-4	74/udp				# Remote Job Service
finger		79/tcp
finger		79/udp
http		80/tcp		www www-http	# WorldWideWeb HTTP
http		80/udp		www www-http	# HyperText Transfer Protocol
kerberos	88/tcp		kerberos5 krb5	# Kerberos v5
kerberos	88/udp		kerberos5 krb5	# Kerberos v5
supdup		95/tcp
supdup		95/udp
hostname	101/tcp		hostnames	# usually from sri-nic
hostname	101/udp		hostnames	# usually from sri-nic
iso-tsap	102/tcp		tsap		# part of ISODE.
csnet-ns	105/tcp		cso		# also used by CSO name server
csnet-ns	105/udp		cso
# unfortunately the poppassd (Eudora) uses a port which has already
# been assigned to a different service. We list the poppassd as an
# alias here. This should work for programs asking for this service.
# (due to a bug in inetd the 3com-tsmux line is disabled)
#3com-tsmux	106/tcp		poppassd
#3com-tsmux	106/udp		poppassd
rtelnet		107/tcp				# Remote Telnet
rtelnet		107/udp
pop2		109/tcp		pop-2	postoffice	# POP version 2
pop2		109/udp		pop-2
pop3		110/tcp		pop-3		# POP version 3
pop3		110/udp		pop-3
sunrpc		111/tcp		portmapper	# RPC 4.0 portmapper TCP
sunrpc		111/udp		portmapper	# RPC 4.0 portmapper UDP
auth		113/tcp		authentication tap ident
auth		113/udp		authentication tap ident
sftp		115/tcp
sftp		115/udp
uucp-path	117/tcp
uucp-path	117/udp
nntp		119/tcp		readnews untp	# USENET News Transfer Protocol
nntp		119/udp		readnews untp	# USENET News Transfer Protocol
ntp		123/tcp
ntp		123/udp				# Network Time Protocol
netbios-ns	137/tcp				# NETBIOS Name Service
netbios-ns	137/udp
netbios-dgm	138/tcp				# NETBIOS Datagram Service
netbios-dgm	138/udp
netbios-ssn	139/tcp				# NETBIOS session service
netbios-ssn	139/udp
imap		143/tcp		imap2		# Interim Mail Access Proto v2
imap		143/udp		imap2
snmp		161/tcp				# Simple Net Mgmt Proto
snmp		161/udp				# Simple Net Mgmt Proto
snmptrap	162/udp		snmp-trap	# Traps for SNMP
cmip-man	163/tcp				# ISO mgmt over IP (CMOT)
cmip-man	163/udp
cmip-agent	164/tcp
cmip-agent	164/udp
mailq		174/tcp				# MAILQ
mailq		174/udp				# MAILQ
xdmcp		177/tcp				# X Display Mgr. Control Proto
xdmcp		177/udp
nextstep	178/tcp		NeXTStep NextStep	# NeXTStep window
nextstep	178/udp		NeXTStep NextStep	# server
bgp		179/tcp				# Border Gateway Proto.
bgp		179/udp
prospero	191/tcp				# Cliff Neuman's Prospero
prospero	191/udp
irc		194/tcp				# Internet Relay Chat
irc		194/udp
smux		199/tcp				# SNMP Unix Multiplexer
smux		199/udp
at-rtmp		201/tcp				# AppleTalk routing
at-rtmp		201/udp
at-nbp		202/tcp				# AppleTalk name binding
at-nbp		202/udp
at-echo		204/tcp				# AppleTalk echo
at-echo		204/udp
at-zis		206/tcp				# AppleTalk zone information
at-zis		206/udp
qmtp		209/tcp				# Quick Mail Transfer Protocol
qmtp		209/udp				# Quick Mail Transfer Protocol
z39.50		210/tcp		z3950 wais	# NISO Z39.50 database 
z39.50		210/udp		z3950 wais
ipx		213/tcp				# IPX
ipx		213/udp
imap3		220/tcp				# Interactive Mail Access
imap3		220/udp				# Protocol v3
link		245/tcp		ttylink
link		245/ucp		ttylink
rsvp_tunnel	363/tcp
rsvp_tunnel	363/udp
rpc2portmap	369/tcp
rpc2portmap	369/udp				# Coda portmapper
codaauth2	370/tcp
codaauth2	370/udp				# Coda authentication server
ulistproc	372/tcp		ulistserv	# UNIX Listserv
ulistproc	372/udp		ulistserv
ldap		389/tcp
ldap		389/udp
svrloc          427/tcp				# Server Location Protocl
svrloc          427/udp				# Server Location Protocl
mobileip-agent	434/tcp
mobileip-agent	434/udp
mobilip-mn	435/tcp
mobilip-mn	435/udp
https		443/tcp				# MCom
https		443/udp				# MCom
snpp		444/tcp				# Simple Network Paging Protocol
snpp		444/udp				# Simple Network Paging Protocol
microsoft-ds	445/tcp
microsoft-ds	445/udp
kpasswd		464/tcp		kpwd		# Kerberos "passwd"
kpasswd		464/udp		kpwd		# Kerberos "passwd"
photuris	468/tcp
photuris	468/udp
saft		487/tcp				# Simple Asynchronous File Transfer
saft		487/udp				# Simple Asynchronous File Transfer
gss-http	488/tcp
gss-http	488/udp
pim-rp-disc	496/tcp
pim-rp-disc	496/udp
isakmp		500/tcp
isakmp		500/udp
gdomap		538/tcp				# GNUstep distributed objects
gdomap		538/udp				# GNUstep distributed objects
iiop		535/tcp
iiop		535/udp
dhcpv6-client	546/tcp
dhcpv6-client	546/udp
dhcpv6-server	547/tcp
dhcpv6-server	547/udp
rtsp		554/tcp				# Real Time Stream Control Protocol
rtsp		554/udp				# Real Time Stream Control Protocol
nntps		563/tcp				# NNTP over SSL
nntps		563/udp				# NNTP over SSL
whoami		565/tcp
whoami		565/udp
submission	587/tcp		msa		# mail message submission
submission	587/udp		msa		# mail message submission
npmp-local	610/tcp		dqs313_qmaster	# npmp-local / DQS
npmp-local	610/udp		dqs313_qmaster	# npmp-local / DQS
npmp-gui	611/tcp		dqs313_execd	# npmp-gui / DQS
npmp-gui	611/udp		dqs313_execd	# npmp-gui / DQS
hmmp-ind	612/tcp		dqs313_intercell # HMMP Indication / DQS
hmmp-ind	612/udp		dqs313_intercell # HMMP Indication / DQS
ldaps		636/tcp				# LDAP over SSL
ldaps		636/udp				# LDAP over SSL
acap		674/tcp
acap		674/udp
ha-cluster	694/tcp				# Heartbeat HA-cluster
ha-cluster	694/udp				# Heartbeat HA-cluster
kerberos-adm	749/tcp				# Kerberos `kadmin' (v5)
kerberos-iv	750/udp		kerberos4 kerberos-sec kdc
kerberos-iv	750/tcp		kerberos4 kerberos-sec kdc
webster		765/tcp				# Network dictionary
webster		765/udp
phonebook	767/tcp				# Network phonebook
phonebook	767/udp
rsync		873/tcp				# rsync
rsync		873/udp				# rsync
telnets		992/tcp
telnets		992/udp
imaps	 	993/tcp				# IMAP over SSL
imaps	 	993/udp				# IMAP over SSL
ircs		994/tcp
ircs		994/udp
pop3s		995/tcp				# POP-3 over SSL
pop3s		995/udp				# POP-3 over SSL

#
# UNIX specific services
#
exec		512/tcp
biff		512/udp		comsat
login		513/tcp
who		513/udp		whod
shell		514/tcp		cmd		# no passwords used
syslog		514/udp
printer		515/tcp		spooler		# line printer spooler
printer		515/udp		spooler		# line printer spooler
talk		517/udp
ntalk		518/udp
utime		519/tcp		unixtime
utime		519/udp		unixtime
efs		520/tcp
router		520/udp		route routed	# RIP
ripng		521/tcp
ripng		521/udp
timed		525/tcp		timeserver
timed		525/udp		timeserver
tempo		526/tcp		newdate
courier		530/tcp		rpc
conference	531/tcp		chat
netnews		532/tcp		readnews
netwall		533/udp				# -for emergency broadcasts
uucp		540/tcp		uucpd		# uucp daemon
klogin		543/tcp				# Kerberized `rlogin' (v5)
kshell		544/tcp		krcmd		# Kerberized `rsh' (v5)
afpovertcp	548/tcp				# AFP over TCP
afpovertcp	548/udp				# AFP over TCP
remotefs	556/tcp		rfs_server rfs	# Brunhoff remote filesystem

#
# From ``PORT NUMBERS'':
#
#>REGISTERED PORT NUMBERS
#>
#>The Registered Ports are listed by the IANA and on most systems can be
#>used by ordinary user processes or programs executed by ordinary
#>users.
#>
#>Ports are used in the TCP [RFC793] to name the ends of logical
#>connections which carry long term conversations.  For the purpose of
#>providing services to unknown callers, a service contact port is
#>defined.  This list specifies the port used by the server process as
#>its contact port.
#>
#>The IANA registers uses of these ports as a convienence to the
#>community.
#
socks		1080/tcp			# socks proxy server
socks		1080/udp			# socks proxy server
h323hostcallsc	1300/tcp			# H323 Host Call Secure
h323hostcallsc	1300/udp			# H323 Host Call Secure
ms-sql-s	1433/tcp			# Microsoft-SQL-Server 
ms-sql-s	1433/udp			# Microsoft-SQL-Server 
ms-sql-m	1434/tcp			# Microsoft-SQL-Monitor
ms-sql-m	1434/udp			# Microsoft-SQL-Monitor		 
ica		1494/tcp			# Citrix ICA Client
ica		1494/udp			# Citrix ICA Client
wins		1512/tcp			# Microsoft's Windows Internet Name Service
wins		1512/udp			# Microsoft's Windows Internet Name Service
ingreslock	1524/tcp
ingreslock	1524/udp
prospero-np	1525/tcp			# Prospero non-privileged
prospero-np	1525/udp
datametrics	1645/tcp	old-radius	# datametrics / old radius entry
datametrics	1645/udp	old-radius	# datametrics / old radius entry
sa-msg-port	1646/tcp	old-radacct	# sa-msg-port / old radacct entry
sa-msg-port	1646/udp	old-radacct	# sa-msg-port / old radacct entry
kermit		1649/tcp
kermit		1649/udp
l2tp		1701/tcp	l2f
l2tp		1701/udp	l2f
h323gatedisc	1718/tcp
h323gatedisc	1718/udp
h323gatestat	1719/tcp
h323gatestat	1719/udp
h323hostcall	1720/tcp
h323hostcall	1720/udp
tftp-mcast	1758/tcp
tftp-mcast	1758/udp
hello		1789/tcp
hello		1789/udp
radius		1812/tcp			# Radius
radius		1812/udp			# Radius
radius-acct	1813/tcp	radacct		# Radius Accounting
radius-acct	1813/udp	radacct		# Radius Accounting
mtp		1911/tcp			#
mtp		1911/udp			#
hsrp		1985/tcp			# Cisco Hot Standby Router Protocol
hsrp		1985/udp			# Cisco Hot Standby Router Protocol
licensedaemon	1986/tcp
licensedaemon	1986/udp
gdp-port	1997/tcp			# Cisco Gateway Discovery Protocol
gdp-port	1997/udp			# Cisco Gateway Discovery Protocol
nfs		2049/tcp	nfsd
nfs		2049/udp	nfsd
zephyr-srv	2102/tcp			# Zephyr server
zephyr-srv	2102/udp			# Zephyr server
zephyr-clt	2103/tcp			# Zephyr serv-hm connection
zephyr-clt	2103/udp			# Zephyr serv-hm connection
zephyr-hm	2104/tcp			# Zephyr hostmanager
zephyr-hm	2104/udp			# Zephyr hostmanager
cvspserver	2401/tcp			# CVS client/server operations
cvspserver	2401/udp			# CVS client/server operations
venus		2430/tcp			# codacon port
venus		2430/udp			# Venus callback/wbc interface
venus-se	2431/tcp			# tcp side effects
venus-se	2431/udp			# udp sftp side effect
codasrv		2432/tcp			# not used
codasrv		2432/udp			# server port
codasrv-se	2433/tcp			# tcp side effects
codasrv-se	2433/udp			# udp sftp side effectQ
corbaloc	2809/tcp			# CORBA naming service locator
icpv2		3130/tcp			# Internet Cache Protocol V2 (Squid)
icpv2		3130/udp			# Internet Cache Protocol V2 (Squid)
mysql		3306/tcp			# MySQL
mysql		3306/udp			# MySQL
trnsprntproxy   3346/tcp			# Trnsprnt Proxy
trnsprntproxy   3346/udp			# Trnsprnt Proxy
rwhois		4321/tcp			# Remote Who Is
rwhois		4321/udp			# Remote Who Is
krb524		4444/tcp			# Kerberos 5 to 4 ticket xlator
krb524		4444/udp			# Kerberos 5 to 4 ticket xlator
rfe		5002/tcp			# Radio Free Ethernet
rfe		5002/udp			# Actually uses UDP only
cfengine	5308/tcp			# CFengine
cfengine	5308/udp			# CFengine
cvsup           5999/tcp	CVSup		# CVSup file transfer/John Polstra/FreeBSD
cvsup           5999/udp	CVSup		# CVSup file transfer/John Polstra/FreeBSD
x11		6000/tcp	X		# the X Window System
afs3-fileserver 7000/tcp			# file server itself
afs3-fileserver 7000/udp			# file server itself
afs3-callback   7001/tcp			# callbacks to cache managers
afs3-callback   7001/udp			# callbacks to cache managers
afs3-prserver   7002/tcp			# users & groups database
afs3-prserver   7002/udp			# users & groups database
afs3-vlserver   7003/tcp			# volume location database
afs3-vlserver   7003/udp			# volume location database
afs3-kaserver   7004/tcp			# AFS/Kerberos authentication service
afs3-kaserver   7004/udp			# AFS/Kerberos authentication service
afs3-volser     7005/tcp			# volume managment server
afs3-volser     7005/udp			# volume managment server
afs3-errors     7006/tcp			# error interpretation service
afs3-errors     7006/udp			# error interpretation service
afs3-bos        7007/tcp			# basic overseer process
afs3-bos        7007/udp			# basic overseer process
afs3-update     7008/tcp			# server-to-server updater
afs3-update     7008/udp			# server-to-server updater
afs3-rmtsys     7009/tcp			# remote cache manager service
afs3-rmtsys     7009/udp			# remote cache manager service
sd		9876/tcp   			# Session Director
sd		9876/udp   			# Session Director
amanda		10080/tcp			# amanda backup services
amanda		10080/udp			# amanda backup services
pgpkeyserver	11371/tcp			# PGP/GPG public keyserver
pgpkeyserver	11371/udp			# PGP/GPG public keyserver
h323callsigalt	11720/tcp			# H323 Call Signal Alternate
h323callsigalt	11720/udp			# H323 Call Signal Alternate
quake		26000/tcp
quake		26000/udp
wnn6-ds		26208/tcp
wnn6-ds		26208/udp
traceroute	33434/tcp
traceroute	33434/udp

#
# Datagram Delivery Protocol services
#
rtmp		1/ddp				# Routing Table Maintenance Protocol
nbp		2/ddp				# Name Binding Protocol
echo		4/ddp				# AppleTalk Echo Protocol
zip		6/ddp				# Zone Information Protocol
#
# Kerberos (Project Athena/MIT) services
# Note that these are for Kerberos v4, and are unofficial.  Sites running
# v4 should uncomment these and comment out the v5 entries above.
#
kerberos_master	751/udp				# Kerberos authentication
kerberos_master	751/tcp				# Kerberos authentication
passwd_server	752/udp				# Kerberos passwd server
krbupdate	760/tcp		kreg		# Kerberos registration
kpop		1109/tcp			# Pop with Kerberos
knetd		2053/tcp			# Kerberos de-multiplexor
#
# Kerberos 5 services, also not registered with IANA
#
krb5_prop	754/tcp				# Kerberos slave propagation
eklogin		2105/tcp			# Kerberos encrypted rlogin
#
# Unofficial but necessary (for NetBSD) services
#
supfilesrv	871/tcp				# SUP server
supfiledbg	1127/tcp			# SUP debugging
#
# Unofficial but useful/necessary other services
#
netstat		15/tcp				# (was once asssigned, no more)
fsp		21/udp		fspd		#
linuxconf	98/tcp				# Linuxconf HTML access
poppassd	106/tcp				# Eudora
poppassd	106/udp				# Eudora
smtps		465/tcp				# SMTP over SSL (TLS)
gii		616/tcp				# gated interactive interface
omirr		808/tcp		omirrd		# online mirror
omirr		808/udp		omirrd		# online mirror
swat		901/tcp				# Samba Web Administration Tool
rndc		953/tcp				# rndc control sockets (BIND 9)
rndc		953/udp				# rndc control sockets (BIND 9)
skkserv		1178/tcp			# SKK Japanese input method
rmtcfg		1236/tcp			# Gracilis Packeten remote config server
xtel		1313/tcp			# french minitel
support		1529/tcp	prmsd gnatsd	# GNATS, cygnus bug tracker
cfinger		2003/tcp			# GNU Finger
ninstall	2150/tcp			# ninstall service
ninstall	2150/udp			# ninstall service
afbackup	2988/tcp			# Afbackup system
afbackup	2988/udp			# Afbackup system
squid		3128/tcp			# squid web proxy
prsvp		3455/tcp			# RSVP Port
prsvp		3455/udp			# RSVP Port
postgres	5432/tcp			# POSTGRES
postgres	5432/udp			# POSTGRES
fax		4557/tcp			# FAX transmission service        (old)
hylafax		4559/tcp			# HylaFAX client-server protocol  (new)
sgi-dgl		5232/tcp			# SGI Distributed Graphics
sgi-dgl		5232/udp
noclog		5354/tcp			# noclogd with TCP (nocol)
noclog		5354/udp			# noclogd with UDP (nocol)
hostmon		5355/tcp			# hostmon uses TCP (nocol)
hostmon		5355/udp			# hostmon uses TCP (nocol)
x11-ssh-offset	6010/tcp			# SSH X11 forwarding offset
ircd		6667/tcp			# Internet Relay Chat
ircd		6667/udp			# Internet Relay Chat
xfs		7100/tcp			# X font server
tircproxy	7666/tcp			# Tircproxy
http-alt	8008/tcp
http-alt	8008/udp
webcache	8080/tcp			# WWW caching service
webcache	8080/udp			# WWW caching service
tproxy		8081/tcp			# Transparent Proxy
tproxy		8081/udp			# Transparent Proxy
jetdirect	9100/tcp	laserjet hplj	#
mandelspawn	9359/udp	mandelbrot	# network mandelbrot
kamanda		10081/tcp			# amanda backup services (Kerberos)
kamanda		10081/udp			# amanda backup services (Kerberos)
amandaidx	10082/tcp			# amanda backup services
amidxtape	10083/tcp			# amanda backup services
isdnlog		20011/tcp			# isdn logging system
isdnlog		20011/udp			# isdn logging system
vboxd		20012/tcp			# voice box system
vboxd		20012/udp			# voice box system
binkp		24554/tcp			# Binkley
binkp		24554/udp			# Binkley
asp		27374/tcp			# Address Search Protocol
asp		27374/udp			# Address Search Protocol
canna		5680/tcp
tfido		60177/tcp			# Ifmail
tfido		60177/udp			# Ifmail
fido		60179/tcp			# Ifmail
fido		60179/udp			# Ifmail

# Local services

