Understanding various Servers
Servers are software programs that provide services to other systems (clients) over a network. Different
types of servers handle different tasks like assigning IP addresses, hosting websites, file sharing, etc.
1. DHCP Server (Dynamic Host Configuration Protocol)
• Purpose: Automatically assigns IP addresses, subnet mask, gateway, DNS servers to client
machines.
• Without DHCP → admin has to manually assign IP addresses.
• With DHCP → clients get IPs dynamically when they connect.
➢ Example workflow:
1. A client connects → sends DHCP request.
2. DHCP server replies with an IP address lease.
3. Client uses the assigned IP for network communication.
➢ Config files: /etc/dhcp/[Link]
➢ Example use: In colleges, offices, or ISPs to manage large number of client devices.
2. DNS Server (Domain Name System)
• Purpose: Converts domain names (like [Link]) into IP addresses (like [Link]).
• Computers communicate with IPs, but humans prefer names → DNS bridges this gap.
➢ Example workflow:
• User types [Link] → DNS server looks up the IP → Browser connects to that IP.
➢ Popular DNS server software: BIND (named).
➢ Config files: /etc/[Link]
➢ Example use: Hosting websites, internal company domains.
3. Squid Server (Proxy Server & Web Cache)
• Purpose: Acts as an intermediate server between clients and the internet.
• Stores (caches) frequently accessed web content → reduces bandwidth usage and speeds up
browsing.
• Can also be used for content filtering, access control, and monitoring user activity.
➢ Example use:
• Schools/companies use Squid to block sites (like social media), improve speed, and monitor
employee/student internet activity.
➢ Config file: /etc/squid/[Link]
4. Apache HTTP Server (Web Server)
• Purpose: Hosts websites and web applications.
• Delivers web pages (HTML, CSS, PHP, Python apps, etc.) to users through HTTP/HTTPS.
• Apache is one of the most widely used web servers in the world.
➢ Example use:
• When you visit [Link] Apache serves the website files stored in /var/www/html.
➢ Config files: /etc/httpd/conf/[Link] (RHEL/CentOS), /etc/apache2/ (Ubuntu/Debian).
5. Telnet Server
• Purpose: Allows users to remotely log in to a server and execute commands.
• Works on port 23.
• Sends data in plain text (not secure) → replaced mostly by SSH.
➢ Example use:
• Used earlier for remote administration.
• Now only used in testing or controlled lab environments.
➢ Command to connect:
telnet server-ip
6. FTP Server (File Transfer Protocol)
• Purpose: Transfers files between client and server.
• Works on ports 20 (data) and 21 (control).
• FTP allows uploading and downloading files.
➢ Common FTP server software: vsftpd, proftpd.
➢ Config file: /etc/vsftpd/[Link]
➢ Example use:
• Uploading website files to a hosting server.
• Sharing files in organizations.
Standard FTP is insecure (plain text passwords). Secure versions are:
• FTPS (FTP Secure)
• SFTP (SSH File Transfer Protocol)
7. Samba Server
• Purpose: Provides file and printer sharing between Linux and Windows systems.
• Implements SMB (Server Message Block) protocol.
• Allows Windows clients to access Linux directories as if they were shared folders.
➢ Example use:
• In a mixed environment (Windows + Linux), Samba makes Linux act as a file/print server.
➢ Config file: /etc/samba/[Link]
Comparison table
Server Purpose Example Use
DHCP Assigns IP addresses dynamically ISP assigning IPs to customers
DNS Resolves domain names to IP addresses [Link] → [Link]
Squid Proxy server & caching, access control Block social media, speed up browsing
Apache Web server to host websites Hosting [Link]
Telnet Remote login (insecure, plain text) Old remote admin, testing
FTP Transfer files (upload/download) Uploading website files
Samba File & printer sharing (Linux ↔ Windows) Sharing folders across OSes