Sam - November 9, 2017
Sometimes, we need to browse a site with our browser without anybody interfering or watching what we do. For example, we want a visit a site that blocks certain countries based on their IP range. If we set a server that has an IP that is “allowed”, we can use that server to serve as intermediary,so requests seems to come from the server’s IP address and not our(client’s) IP address. So it looks like this;
It would be the same as if we would like to buy an apple from the store(or anything else you can fancy), but we don’t want anybody to know. We could call a boy, whisper him what we want, and he would go to a store and buy an apple with the money we gave him. He would bring an apple to us, and nobody would know for whom he bought an apple for.
You have probably heard of or used a proxy server like Squid, which accepts client requests for a web page, fetches the web page for user,and then sends the requested page back to the client. It has fancy features such as client authentication, list of banned or allowed IP, even bandwidth throttling.
And then, there is something called SOCKS protocol which actually makes a tunnel via a proxy server,through which our requests are directed. It reaches the proxy server, which gets the web page on client’s behalf,and hands it back to him.It is not limited to HTTP traffic only, like Squid proxy server, but can proxy any TCP traffic. It has older version 4 and new version 5, which support some new capabilities, like client authentication,UDP packages and server-side named resolution. I will show how to set a SOCKS5 connection using a linux server in the cloud and your browsers.