A proxy is an intermidiate node in the network where other nodes have to connect to in order to get access to a given interface.
In most cases, this can be understood as a server where other computers have to connect to in order to gain internet access.
The proxy servers in most cases will forward a client's petitions to the internet and the responses it gets back to the client. But in some cases it can respond with data in it's cache or altering some of the packets it gets.
A proxy connection requires a specific protocol known by both the proxy server and the client connecting to it. One of the most commonly used proxy protocols is SOCKS both in it's version v4 and v5 (for authentification procedure on SOCKS v5 read this too).