Tool for port forward & intranet proxy, just like lcx/ew, but better
lcx and ew are awesome but can be improved.
when I first used them, I can’t remember these complicated parameters for a long time, such as tran, slave, rcsocks, sssocks… The work mode is clear, why do they design parameters like this(especially ew’s -l -d -e -f -g -h)
Besides, I think the net programming logic could be optimized.
For example, while running lcx -listen 8888 9999 command, the client must connect to :8888 first, then :9999, in iox, there’s no limit to the order in two ports. And while running lcx -slave 126.96.36.199 8888 188.8.131.52 9999 command, lcx will connect two hosts serially, but it’s more efficient to connect in concurrent, as iox does.
What’s more, iox provides a traffic encryption feature. Actually, you can use iox as a simple ShadowSocks.
And iox also provides UDP traffic forward.
Of course, because iox is written in Go, the static-link-program is a little large, raw program is 2.2MB (800KB after UPX compression)
It’s easy to understand: traffic between the be-controlled host and our VPS:8888 will be encrypted, the pre-shared secret key is ‘AAA’, iox will use it to generate seed key and IV, then encrypt with AES-CTR
NOTICE: When you make a multistage connection, the Remote2Remote-UDP-mode must be started last, which is the No.3 command in the above example
UDP forwarding may have behavior that is not as you expected. Actually, on GitHub now, there are only examples of forwarding a local listener to a remote host, so I can only implement them with my understanding