Squid is a powerful caching and forwarding web proxy that can improve performance and control web access. This guide will walk you through the steps to install and configure Squid on Ubuntu.

Step 1: Update Your System

Before installing any new packages, it’s a good idea to ensure your system is up to date. Open a terminal and run the following commands:

sudo apt update
sudo apt upgrade

Step 2: Install Squid

Install Squid using the apt package manager:

sudo apt install squid

Step 3: Configure Squid

The main configuration file for Squid is located at /etc/squid/squid.conf. You will need to edit this file to customize your Squid proxy settings.

Open the configuration file in a text editor:

sudo nano /etc/squid/squid.conf

Here are some basic configurations you might want to set:

Change the HTTP Port

By default, Squid listens on port 3128. You can change this if needed:

http_port 3128

Allow Access

You can define which IP ranges are allowed to use the proxy. For example, to allow access from a specific IP range (e.g.,, add the following lines:

acl localnet src
http_access allow localnet

Deny All Other Access

For security reasons, it’s important to ensure all other access is denied:

http_access deny all

Customize Logging

Specify the log file location and format:

access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log

Set Cache Directory

Configure the cache directory and size:

cache_dir ufs /var/spool/squid 100 16 256

DNS Servers

Specify DNS servers if the default ones are not suitable:


Step 4: Start and Enable Squid Service

Start the Squid service and enable it to start on boot:

sudo systemctl start squid
sudo systemctl enable squid

Step 5: Verify Squid Status

Check the status of the Squid service to ensure it is running correctly:

sudo systemctl status squid

Step 6: Adjust Firewall Rules

If you have a firewall enabled, you need to allow traffic on the Squid port (default 3128):

sudo ufw allow 3128/tcp
sudo ufw reload

Step 7: Test the Proxy

To verify that Squid is working, configure a web browser to use the proxy server. Set the browser’s proxy settings to the IP address of your Squid server and port 3128.

Alternatively, you can test using curl:

curl -x http://your-squid-ip:3128 http://www.example.com

Optional: Advanced Configurations


If you require user authentication, you can configure Squid to use various authentication methods like basic auth, LDAP, etc.

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

Content Filtering

You can integrate Squid with content filtering software like SquidGuard for additional functionality.

Access Control

Squid offers robust access control lists (ACLs) for fine-grained control over who can access the proxy and what they can access.

After making changes to the configuration file, always restart Squid to apply the changes:

sudo systemctl restart squid


You have successfully set up and configured Squid on your Ubuntu system. Squid is a versatile tool that can be customized to meet a wide range of needs, from simple caching to complex access controls and content filtering. By following this guide, you should have a solid foundation to build upon.

Leave a Reply

Your email address will not be published. Required fields are marked *