EDIT : Added Authentication methods for dynamic ips
It has been more than a year since I have been using squid to mitigate all the proxy problems that come due to the proxy authentication.
This is the most effective and hassle free way to set proxy in Linux.
Steps:
Note : Replace 'squid' with 'squid3' if you are not using Ubuntu 16.04
1. Install squid
sudo apt-get install squid
2. Edit the squid configuration file.
sudo vim /etc/squid/squid.conf
(for Ubuntu 15.10 and older)
sudo vim /etc/squid3/squid.conf
3. Delete all the contents of that file and replace them with the configuration given below:
Replace 10.0.2.21 with your own ip address/ other ip addresses that you want to access this proxy from.
Change 202.141.80.22 with your Proxy server address.
Change username:password to your proxy username and password.
4. Save the file ( Esc and ":wq" for vim noobs)
5. Restart the squid server.
sudo service squid restart
(for Ubuntu 15.10 and older)
sudo service squid3 restart
6. Edit your Proxy Settings from the network manager.
7. Open your bash profile.
sudo vim ~/.bashrc
Append the following to the end of the file.
export http_proxy=http://127.0.0.1:3128
export https_proxy=http://127.0.0.1:3128
The above two things should effectively resolve all proxy problems ( Environment Variables inclusive. )
8. Source the bashrc
source ~/.bashrc
And with that you are done!
You have your own personal proxy server!
Say goodbye to proxy problems.
PS - For those of you on the more geeky side of things, what we have done with the above is create our own proxy server that caches another proxy server with authentication.
The proxy server we have made is effectively a non authentication proxy server for the ips in the allowed_ips acl.
If used a bit cleverly it might also help you get around some other big-'time' restrictions ;) .
Use wisely!