To create or to enable a proxy server, the best language is C. As C is the very basic language and can work with sockets and IP protocols.
Before start coding you should know what type of protocol you are aiming at.
After you've decided the protocol, then you should learn the sockets API.
Once you have done that, there are three major steps, you have to use poll/select-based loop, fork off per-session processes or use threads to shuffle data.
Hope this helps.