So I'm writing this program that uses python and sockets to talk over the internet, but that's not the issue.
The issue is I wish to test how the program works in a realistic internet environment.
ie: My client connects to a proxy somewhere over seas, then the data comes back to my router to my other computer.
so I want my data to go overseas, then come back.
Anyway this can be done? or is this impossible? I've tried using proxy servers and I can't for the life of me get them to work!
It depends on the type of program you are writing, if you just want your program to connect to another instance of this same program at some destination ip.  Or are you writing a server application? If so, what client connects to this server?  I'm not certain you need to involve a proxy at all, TCP traffic will simply travel over the routers/switches it needs to get where it needs to go. 
If you can elaborate on your question, and specify if your writing a server that has a differentiated client, or just a desktop app that is both the client/server, that would be helpful.
Connect to your external IP to simulate the internet