Linux - Servers
Linux - Servers
Servers
A server is a computer or system that provides resources, data, services, or programs to other computers,
known as clients, over a network. Servers can be physical machines or virtualized instances running on a
cloud infrastructure. They play a crucial role in networking and computing by handling requests and
delivering responses.
Types of Servers:
1. Web Server – Hosts websites and serves web pages to users (e.g., Apache, Nginx).
2. File Server – Stores and manages files for network access.
3. Database Server – Manages and provides access to databases (e.g., MySQL, PostgreSQL).
4. Application Server – Hosts and runs applications for clients.
5. Mail Server – Manages and delivers emails (e.g., Microsoft Exchange, Postfix).
6. Proxy Server – Acts as an intermediary between clients and other servers.
7. DNS Server – Resolves domain names to IP addresses.
8. Game Server – Hosts multiplayer online games.
9. Cloud Server – Virtual servers hosted in the cloud (e.g., AWS, Google Cloud).
10. Print Server – Manages print requests in a network.
Clients send requests to the server (e.g., accessing a website, downloading a file).
The server processes the request and returns the appropriate response.
Communication happens over network protocols like HTTP, FTP, or TCP/IP.
1] DHCP Server:
The DHCP (Dynamic Host Configuration Protocol) is a network management protocol used to
automatically assign IP addresses and other network configurations to devices on a network. It eliminates
the need for manual configuration and ensures that devices can communicate efficiently.
1. DHCP Discover – A device (client) sends a broadcast request to find a DHCP server.
2. DHCP Offer – The DHCP server responds with an available IP address and other configuration
details.
3. DHCP Request – The client accepts the offer by sending a request to the server.
4. DHCP Acknowledge – The server confirms the assignment and provides additional network settings
like subnet mask, default gateway, and DNS servers.
2] DNS Server:
A DNS server, which stands for Domain Name System server, is a computer that translates human-
readable domain names (like "google.com") into machine-readable IP addresses (142.250.190.14).
Allowing your device to access websites on the internet by essentially acting like a phonebook for
the internet, allowing computers to locate and communicate with each other.
1. User Enters a Website URL – You type Ex- example.com in your browser.
2. DNS Query Initiated – Your computer asks the DNS resolver (usually provided by your ISP) for
the corresponding IP address.
3. Recursive Lookup – The resolver queries multiple DNS servers to find the IP address.
4. Response Received – The DNS resolver returns the IP address to your computer.
5. Website Loads – Your browser connects to the server using the retrieved IP address.
3] Squid Server:
A "Squid server" in Linux is a highly-used, open-source caching proxy server that acts as an
intermediary between web clients and web servers, storing frequently accessed web content locally to
improve loading speeds and reduce bandwidth usage by reusing cached data instead of fetching it from the
original source every time; essentially acting as a middleman to optimize web traffic.
1. Web Caching – Stores frequently accessed web pages to speed up future requests.
2. Bandwidth Optimization – Reduces internet bandwidth usage by serving cached content.
3. Access Control – Allows administrators to restrict access to certain websites or content.
4. Load Balancing – Distributes network traffic efficiently among multiple servers.
5. Security Enhancement – Hides internal network details and prevents direct exposure of client IPs.
6. Content Filtering – Can block specific domains, file types, or keywords.
4] Apache Server:
A Apache HTTP Server, commonly known as Apache, is one of the most widely used web
servers in Linux. It is open-source and maintained by the Apache Software Foundation. It allows users to
browse websites by establishing connections between the server and the browser.
5] Telnet Server:
Telnet (short for Teletype Network) is a network protocol used to remotely access and manage
devices over a TCP/IP network. It provides a command-line interface that allows users to execute commands
on a remote system as if they were physically present.
6] FTP Server:
A FTP server stand for (File Transfer Protocol) in Linux is a network protocol used to transfer files
between a client and a server over a TCP/IP network. It allows users to upload, download, and manage files
on a remote server.
How it works:
7] Samba Server:
A Samba is an open-source implementation of the SMB (Server Message Block) and CIFS
(Common Internet File System) protocols, which allows Linux/Unix systems to share files and printers
with Windows and other operating systems.
1. File & Printer Sharing – Enables file and printer sharing between Linux and Windows systems.
2. Cross-Platform Compatibility – Works with Windows, macOS, and other Unix-based systems.
3. Authentication & Access Control – Supports user authentication (local or via Active Directory).
4. Can Act as a Domain Controller – Can integrate with Windows Active Directory or work as a
standalone domain controller.
5. Open Source & Configurable – Highly flexible, with customizable permissions and security
settings.