mojira.dev

Jim Ramsay

Assigned

No issues.

Reported

MC-39718 Multiplayer ignores Java -DsocksProxyHost -DsocksProxyPort after 1.7.2 upgrade Duplicate

Comments

This bug is not about the launcher, but the in-game server traffic. I haven't had a chance to try the latest yet, but is there some reason to believe it would actually work? My investigation into the cause of this issue previously demonstrated that it won't just "go away" without someone actually implementing a fix for it.

I don't think I'm able to update the affected versions, but I just tested with 14w11b and launcher 1.3.11, and can report the bug still stands. Server connections are not tunnelled through the java proxy hosts.

@unknown: Has Mojang added a channel handler that handles the proxy information? If they haven't changed the connection code, I would expect this bug to remain relevant.

Doing a little research here -> Looks to me like MC 1.7 started using 'netty' (io.netty.channel.Channel) for their multiplayer support... But as best I can see netty doesn't actually do Socks proxy client support (easily? At all? unclear). It certainly doesn't respect the same socksProxyHost / socksProxyPort info that the older /other

Further reading:
https://github.com/netty/netty/issues/1133
http://stackoverflow.com/questions/15269695/working-via-proxy-with-netty-3-4-2-final

Apparently the solution is for Mojang to write a channel handler that deals appropriately with the proxy information. Here's an example I found:
https://github.com/twitter/finagle/blob/master/finagle-core/src/main/scala/com/twitter/finagle/netty3/client.scala#L189

As a workaround for the short-term, you can still use individual port forwards in SSH to do this (if you're using an SSH tunnel that is). It's annoying because it makes it more difficult to manage your server list, but it actually works for me. Something like this:

ssh my.proxy.hostname.com -L25501:server.one.com:25565 -L25502:server.two.com:25565

Then while the tunnel is up, go into minecraft and add one server to localhost:25501 and another to localhost:25502 You'll have a tunneled connection to each of the servers using local port forwarding. Enjoy!