I'm having to support some legacy client code which makes a network connection to a server using a proprietary protocol over port 1234. A straight internet connection on the client machine works fine, but some people use it inside a corporate network with proxies. For the most part this works, but I need to make some changes to the client code and would like to test it using a proxy.
I've installed mitmproxy on a second workstation, and if I set my main workstation to use this proxy, all is fine—I can make secure web requests using a default browser, so I'm pretty sure I've got the proxy set up OK. It doesn't require any proxy authentication and just seems to work.
But, when I launch this particular app and configure it to use the proxy, I can see in its debug output that it is attempting to do so, but in the mitmproxy debug window, I just see:
192.168.0.28:59278: clientconnect
192.168.0.28:59278: ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)
192.168.0.28:59278: ProtocolException("ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)",)
192.168.0.28:59278: clientdisconnect
I'm assuming this is because the app isn't making 'properly formed' web requests, but using its own protocol over TCP. Am I right in thinking, if this is the case, that mitmproxy wouldn't be able to act as a proxy? If so, is there any other simple, ideally free proxy application I can use for testing? I did look at pfSense, but would need to set up a VM for that, and networking via a VM brings a whole new world of pain from previous experience :|.