Minecraft ignores java proxy parameters
The bug
As of snapshot 13w41b, Minecraft ignores the following JVM proxy parameters:
-DsocksProxyHost=* -DsocksProxyPort=*
How to reproduce
I assume the server list is not empty and the port 5678 is not used
- Create a new profile
- Choose 1.6.4 version and add the following JVM arguments:
-DsocksProxyHost=localhost -DsocksProxyPort=5678
- Play and look at the server list
→
There are communication errors (i.e. the proxy is used) - Quit
- Edit the profile, choose the version 1.7.2 and save
- Play and look at the server list
→
No communication error (i.e. the proxy is not used)
Linked Issues
is duplicated by3
Created Issue:
Minecraft ignore java proxy parameters
The java argument :
-DsocksProxyHost=* -DsocksProxyPort=*are not used by minecraft since the snapshot 13w41b.
Step to reproduce:
I assume the server list is not empty and the port 5678 is not used
- Create a new profile
- Choose 1.6.4 version
- Set in JVM arguments :
-DsocksProxyHost=localhost -DsocksProxyPort=5678 -Xmx1G- Save
- Play and Look at the server list :
There is communication errors (ie the proxy is used)- Quit
- Edit the profile
- Choose the version 1.7.2 and save
- Play and look at the server list :
No communication error (ie the proxy is not used)Environment
OS: 'Linux'
OS version: '3.11.6-1-ARCH'
Java version: '1.7.0_45'
64 bitsNo iptable
- Unresolved
- Open
- Minecraft - Public
- Unconfirmed
- 1.7 multiplayer proxy socks
- 1.7.2 1.7.1 13w43a 13w42b
relates to
duplicates
is duplicated by
is duplicated by
is duplicated by
The java argument :
-DsocksProxyHost=* -DsocksProxyPort=*are not used by minecraft since the snapshot 13w41b.
Step to reproduce:
I assume the server list is not empty and the port 5678 is not used
- Create a new profile
- Choose 1.6.4 version
- Set in JVM arguments :
-DsocksProxyHost=localhost -DsocksProxyPort=5678-Xmx1G- Save
- Play and
Look at the server list:
Thereiscommunication errors (iethe proxy is used)- Quit
- Edit the profile
- Choose the version 1.7.2 and save
- Play and look at the server list :
No communication error (iethe proxy is not used)The bug
The java argument:
-DsocksProxyHost=* -DsocksProxyPort=*are not used by minecraft since the snapshot 13w41b.
How to reproduce
I assume the server list is not empty and the port 5678 is not used
- Create a new profile
- Choose 1.6.4 version and add the following JVM arguments:
-DsocksProxyHost=localhost -DsocksProxyPort=5678- Play and look at the server list
→ There are communication errors (i.e. the proxy is used)- Quit
- Edit the profile, choose the version 1.7.2 and save
- Play and look at the server list
→ No communication error (i.e. the proxy is not used)
OS: 'Linux'
OS version: '3.11.6-1-ARCH'
Java version: '1.7.0_45'
64 bitsNo iptable
Minecraft ignores java proxy parameters
The bug
The java argumenst:
-DsocksProxyHost=* -DsocksProxyPort=*are not used by minecraft since the snapshot 13w41b.
How to reproduce
I assume the server list is not empty and the port 5678 is not used
- Create a new profile
- Choose 1.6.4 version and add the following JVM arguments:
-DsocksProxyHost=localhost -DsocksProxyPort=5678- Play and look at the server list
→ There are communication errors (i.e. the proxy is used)- Quit
- Edit the profile, choose the version 1.7.2 and save
- Play and look at the server list
→ No communication error (i.e. the proxy is not used)
The bug
The java argumenst:
-DsocksProxyHost=* -DsocksProxyPort=*
are not used by minecraft since the snapshot 13w41b.How to reproduce
I assume the server list is not empty and the port 5678 is not used
- Create a new profile
- Choose 1.6.4 version and add the following JVM arguments:
-DsocksProxyHost=localhost -DsocksProxyPort=5678- Play and look at the server list
→ There are communication errors (i.e. the proxy is used)- Quit
- Edit the profile, choose the version 1.7.2 and save
- Play and look at the server list
→ No communication error (i.e. the proxy is not used)The bug
As of snapshot 13w41b, Minecraft ignores the following JVM proxy parameters:
-DsocksProxyHost=* -DsocksProxyPort=*How to reproduce
I assume the server list is not empty and the port 5678 is not used
- Create a new profile
- Choose 1.6.4 version and add the following JVM arguments:
-DsocksProxyHost=localhost -DsocksProxyPort=5678- Play and look at the server list
→ There are communication errors (i.e. the proxy is used)- Quit
- Edit the profile, choose the version 1.7.2 and save
- Play and look at the server list
→ No communication error (i.e. the proxy is not used)
The bug
As of snapshot 13w41b, Minecraft ignores the following JVM proxy parameters:
-DsocksProxyHost=* -DsocksProxyPort=*How to reproduce
I assume the server list is not empty and the port 5678 is not used
- Create a new profile
- Choose 1.6.4 version and add the following JVM arguments:
-DsocksProxyHost=localhost -DsocksProxyPort=5678- Play and look at the server list
→ There are communication errors (i.e. the proxy is used)- Quit
- Edit the profile, choose the version 1.7.2 and save
- Play and look at the server list
→No communication error (i.e. the proxy is not used)The bug
As of snapshot 13w41b, Minecraft ignores the following JVM proxy parameters:
-DsocksProxyHost=* -DsocksProxyPort=*How to reproduce
I assume the server list is not empty and the port 5678 is not used
- Create a new profile
- Choose 1.6.4 version and add the following JVM arguments:
-DsocksProxyHost=localhost -DsocksProxyPort=5678- Play and look at the server list
→There are communication errors (i.e. the proxy is used)
- Quit
- Edit the profile, choose the version 1.7.2 and save
- Play and look at the server list
→No communication error (i.e. the proxy is not used)
No, this is not a duplicate of MC-38872. Talk about completely missing the point. This issue has nothing at all to do with whether java proxy parameters are ignored or not. I was just offering my command line with them in it so that you could see that I was giving minecraft every possible option to find out that it needs to use a proxy. I guess that's what I get for trying to offer as much information as possible.
The point of this ticket is that multiplayer functionality is not using the established proxy, socks5 or otherwise. Single player uses the proxy just fine. Multiplayer is not using the exact same proxy to connect to minecraft servers but is instead trying to connect directly.
So please, re-open this issue and un-duplicate it from MC-38872 and don't close it until multiplayer functionality is actually using the same proxies as single player.
Thanks.
It is not a duplicate since the arguments "-DsocksProxyHost=localhost -DsocksProxyPort=5678" work until 13w39b.
Moreover, it is not a launcher issue since minecraft (the game) is run with the correct arguments.
The only thing that change is the Minecraft version.
And, I can reproduce the issue without the launcher using either --proxyPort --proxyHost or -DsocksProxyPort/Host :
Minecraft 1.7.2 does not take into account the proxy settings.
Plus 13w39b (and previous) uses -DsocksProxyHost/Port but ignores --proxyHost/Port.
Reopened
Same Issue Win 8.1 x64. Minecraft 1.7.4. Java 7 u45 x64.
Socks proxy settings are simply ignored...
My connection slows down every connection out of port 80, 21, 22 etc etc.
So a minecraft server is pretty much unplayable (Ping is ~1000, data loss 60%) untill i use a proxy trough a ssh tunnel with my vps.
But if i shut down the proxy i can't even log in servers, i got auth failure error.
Oh, another Wyatt!
...anyway, PLEASE CONFIRM this bug. I can no longer SSH tunnel my minecraft client. More specifically it works to connect to the server hosted on the network local to the host I SSH into, but not any on external networks.
also, I have this problem with multiple OSes: I have tried this in Linux Mint 14 (based on Ubuntu 12.04) with 64-bit java 7, Mac OSX Snow Leopard (10.6.8) with both OpenJDK 7 and Apple's Java 6, in both 32-bit and 64-bit modes, Windows 8.0 32-bit, Windows 7 64-bit, Ubuntu 13.04 64-bit, and Linux Mint 16 64-bit (based on Ubuntu 13.04).
PLEASE, confirm this bug. I attempted the same thing with a 1.6.4 server last week, with multiple OSes, and all worked perfectly. 1.7 has broken this.
edit I have tried both a normal proxy and SSH tunnels. These are both broken. Please fix this!!!
To follow up, here's the arguments I used and the errors displayed:
-Xmx1G -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=8080 -DhttpProxyHost=127.0.0.1 -DhttpProxyPort=8080 -DhttpsProxyHost=127.0.0.1 -DhttpsProxyPort=8080
log:
[11:26:03 INFO]: Client> [11:26:03] Server Connector #1/ERROR: Couldn't connect to server
[11:26:03 INFO]: Client> java.net.ConnectException: Connection timed out: no further information: p.nerd.nu/198.24.131.140:25565
[11:26:03 INFO]: Client> at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:1.7.0_45]
[11:26:03 INFO]: Client> at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source) ~[?:1.7.0_45]
[11:26:03 INFO]: Client> at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:191) ~[NioSocketChannel.class:?]
[11:26:03 INFO]: Client> at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:228) ~[AbstractNioChannel$AbstractNioUnsafe.class:?]
[11:26:03 INFO]: Client> at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:497) ~[NioEventLoop.class:?]
[11:26:03 INFO]: Client> at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:447) ~[NioEventLoop.class:?]
[11:26:03 INFO]: Client> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:341) ~[NioEventLoop.class:?]
[11:26:03 INFO]: Client> at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) ~[SingleThreadEventExecutor$2.class:?]
[11:26:03 INFO]: Client> at java.lang.Thread.run(Unknown Source) ~[?:1.7.0_45]
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!
Is this still a concern in the current Minecraft version 14w11b / Launcher version 1.3.11 or later? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.
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.
Deleted account: 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.
Is this still a concern in the current Minecraft version 14w21b / Launcher version 1.4.4 or later? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.
Yes, socks5 proxy params still ignored in Launcher 1.4.4.
MCL-102is claiming that it works.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.
@Jim Ramsay: My comment was directed to fratermus' comment
Is this still a concern in the current Minecraft version 1.8.1 Prerelease 3 / Launcher version 1.5.3 or later? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.
Yes, I just checked it. I used a socks proxy to my VPS thru putty, downloaded version 1.8.1 pre-3 thru it . I attempted to join a server.and the server log join message showed my connection as coming from my home IP address, not from the VPS proxy. So yes this bug still affects 1.8.1 pre-3 If anyone wants specific logs, let me know.
This is indeed still an issue, just confirmed it with a 1.8.9 server.
how about 1.9-pre2?
I will check and update this comment.
Edit: This is still an issue with 1.9-pre2
This also affects release 1.9.
I'm also experiencing the same issue with 1.10.2 (with JRE 1.8.0_92).
I'm also experiencing the same issue with 1.7.10
I fear that this is intended behaviour. They lock out hundreds of Minecraft users for the sake of f***ing security.
I'm not just speaking of students or workers who want to play Minecraft, even if restricted / not allowed by their authorities.
I'm speaking of those, who are forced to use proxies by their home internet providers to access the internet at all!!!
Thank you Microsoft
Sry I mean Mojang
Notch would never have done this!
Vote for #netneutrality
Edit:
OS: Win 8.1 x64
Java: 1.8.0_25 x64
Using a socks proxy for the game traffic as well as the launcher is no less secure than playing minecraft via a VPN, and as far as the account system itself is concerned is no less secure then making a direct connection.
Without the security argument the only reason for not making a fix for this bug is that they are just too busy to be bothered with such trivial things, not realizing the living hell they are making some people's lives that are required to use a proxy for their traffic.
Failing that its just sheer laziness I guess :/
It is a security and maybe also a money issue. Behind proxies you can of course spoof IPs, locations, override restrictions (as mentioned) and more, maybe even the login system can be tricked. It's a fact that this is not a bug, because overriding the commandline proxy option must be programmed by hand an be hardcoded in Java...
I can't believe on this day they haven't added a way to play through a proxy in an easy and reliable way. I work on weekends and I usually don't have anything to do and all I want to do is play a bit of minecraft but I can't because I have to connect with a proxy.
@Guido Use the suggestion found on this comment: https://bugs.mojang.com/browse/MC-38872?focusedCommentId=133654&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-133654
Affects 1.11.2 & 17w06a.
Linux Mint 17 x64.
Hm, this issue is odd; MC itself actually supports a proxy argument (check net.minecraft.client.main.Main; there are --proxyHost, --proxyPort, --proxyUser, and --proxyPass arguments) but the launcher doesn't use them. The code that handles those options is probably what disables the normal method of specifying a proxy. But that these are inaccessible is weird... (Note: you can specify JVM arguments in the launcher, but not arguments to be passed to the game; those are set in the version JSON).
I try to connect the a minecraft server 1.16.2 to a proxy using following java arguments -DsocksProxyHost=proixy.domain.lan -DsocksProxyPort=3128
on the proxy server the log file say : "error:transction-end-before-headers"
but it completely ignore the following java arguments :
-Djava.net.useSystemProxyes=true
-Dhttp.proxyHost= proixy.domain.lan
-Dhttp.proxyPort=3128
-Dhttps.proxyHost= proixy.domain.lan
-Dhttps.proxyPort=3128
it would be nice to have option in there server properties or as command option to set up set proxy