Skip to main content
  1. Tutorials/

How To Install Squid Proxy on Ubuntu 12.10 x64

Tutorials DNS Scaling Ubuntu
Step 1 – Spin up a Ubuntu 12.10 x64 droplet>

Step 1 – Spin up a Ubuntu 12.10 x64 droplet #

Step 2 – Install Squid>

Step 2 – Install Squid #

apt-get install -y squid
update-rc.d squid3 defaults
Step 3 – Setup Access Restrictions>

Step 3 – Setup Access Restrictions #

Since this Squid proxy would allow anyone using it to make connections from your droplet’s IP address, you would want to restrict access to it.
You can register a free dynamic IP from services like noip.com

If you would like to use this Squid proxy from your phone, you would have to install a dynamic DNS update client.
You can use applications like Dynamic DNS Client for Android, or FreeDynPro for iOS.

Once you have a dynamic IP hostname, you can update it from your router at home, mobile device, or an API call.
This hostname should be added to /etc/squid3/squid.conf. Edit the file and add your hostname (nyproxy1.no-ip.org in our case):

acl myhost srcdomain nyproxy1.no-ip.org
http_access allow myhost

Setup a crontab that reloads Squid every hour, in case your IP address changes:

echo 0 */1 * * * service squid3 reload >> /var/spool/cron/root
Step 4 – Configure Squid Proxy>

Step 4 – Configure Squid Proxy #

By default, Squid listens on port 3128. If you would like to use a different port, modify /etc/squid3/squid.conf

http_port 3128

If you would like to browse through this Squid proxy and not have it detected as a proxy, setup anonymous settings by adding these lines to /etc/squid3/squid.conf:

via off
forwarded_for off

request_header_access Allow allow all 
request_header_access Authorization allow all 
request_header_access WWW-Authenticate allow all 
request_header_access Proxy-Authorization allow all 
request_header_access Proxy-Authenticate allow all 
request_header_access Cache-Control allow all 
request_header_access Content-Encoding allow all 
request_header_access Content-Length allow all 
request_header_access Content-Type allow all 
request_header_access Date allow all 
request_header_access Expires allow all 
request_header_access Host allow all 
request_header_access If-Modified-Since allow all 
request_header_access Last-Modified allow all 
request_header_access Location allow all 
request_header_access Pragma allow all 
request_header_access Accept allow all 
request_header_access Accept-Charset allow all 
request_header_access Accept-Encoding allow all 
request_header_access Accept-Language allow all 
request_header_access Content-Language allow all 
request_header_access Mime-Version allow all 
request_header_access Retry-After allow all 
request_header_access Title allow all 
request_header_access Connection allow all 
request_header_access Proxy-Connection allow all 
request_header_access User-Agent allow all 
request_header_access Cookie allow all 
request_header_access All deny all
Step 5 – Start Squid proxy service>

Step 5 – Start Squid proxy service #

service squid3 start
Step 6 – Modify your browser’s proxy settings>

Step 6 – Modify your browser’s proxy settings #

Step 7 – Verify Squid proxy works>

Step 7 – Verify Squid proxy works #

Navigate over to whatismyip.com

And you are all done!
By Bulat Khamitov