Table of Contents
Step 1 - Spin up a Ubuntu 12.10 x64 droplet
<img src="images/how-to-install-squid-proxy-on-ubuntu-12-10-x64-section-1.png; width="680">
Step 2 - Install Squid
apt-get install -y squid
update-rc.d squid3 defaults
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
<img src="images/how-to-install-squid-proxy-on-ubuntu-12-10-x64-section-1.png; width="680">
If you would like to use this Squid proxy from your phone, you would have to install a dynamic DNS update client.
<p>You can use applications like <i>Dynamic DNS Client for Android</i>, or <i>FreeDynPro for iOS</i></p>.
<img src="images/how-to-install-squid-proxy-on-ubuntu-12-10-x64-section-1.png; width="680">
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
<img src="images/how-to-install-squid-proxy-on-ubuntu-12-10-x64-section-1.png; width="680">
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
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
service squid3 start
Step 6 - Modify your browser's proxy settings
<img src="images/how-to-install-squid-proxy-on-ubuntu-12-10-x64-section-1.png; width="680">
Step 7 - Verify Squid proxy works
Navigate over to whatismyip.com
<img src="images/how-to-install-squid-proxy-on-ubuntu-12-10-x64-section-1.png; width="680">
And you are all done!