Discussion in 'Technic Discussion' started by Maciejo833, Dec 22, 2012.
Could this thing work?
It does, I think. A few people have been using Himatchi to play Technic SMP.
Yeah, this works. Completely. I've done it with a few friends lots of times.
Now all we need is the ability to open to your external IP without a VPN client like Hamachi.
Technic shows me ID problem with chicken core but both technics are completly new.
*new* After making ID dump map this error disapperas. 0.o
Minecraft will never have this feature, due to the fact it is out of scope of what it should do and close to impossible without being very intrusive (maybe not the right term). Please say if you want an explanation of why this is.
I would like an explanation, considering the Minecraft Server Software can easily accept external connections.
It has to do with something called NAT, or network address translation. Perhaps you remember the big commotion about running out of new IPv4 addresses a little while ago? NAT was the solution that staved off that "crisis" (and implementing a solution for same) for many years. Basically, there were several network blocks reserved for private use, 10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255 and 192.168.0.0 to 192.168.255.255. You may recognize these as containing almost all of the addresses ever assigned to your computer when connecting to a router. Basically, the router would connect directly to the internet and create a private network behind it using one of those address ranges.
Now if you're on the private side, this is fine and dandy. You send an IP packet out towards the internet, it gets to your router, which records where it comes from, switches the "from" address to it's own public IP and sends it out to the internet. When the other server sends a packet back to the router, the router looks up which inside address sent the packet to that server originally, sets the "to" field appropriately and sends it to the internal computer.
For a computer outside the private network however, it's a little harder. That computer can't point directly to a computer on the private network, as it has a private IP, which is being used many times on many private networks. Basically, the IP you have when connected to a router is not unique and you can't address packets to it from the outside. An external computer can only talk to the router. There are ways to host things inside a private network, VPN is one, port forwarding is another, but these things generally have to be configured on the router. That's why Minecraft can't make them happen.
NAT has been around for a long time, and not just because of IPv6.
I knew all that, but explain why the server software can accept external connections, then. I know that when your ports are forwarded correctly, the router will send the connection to the appropriate device, which is exactly what happens when you host a Minecraft Server using the official software. But why can't the client? Is it because the client sets itself to a specific IP and doesn't allow any other incoming connections?
Could have something to do with port forwarding having all connections come in on one address, the router's, while a VPN logically joins the networks.
Edit: also could have something to do with the open to lan feature choosing a random port to use rather than the normal minecraft port?
I was referring to how minecraft will not have the ability to set up port forwarding for you (not knowing how much networking knowledge you had, I was aiming low). I also took into account the possibility of an IPv6 tunnel being set up automatically to get incoming connections. Sorry for any misunderstanding.
The open to lan feature should work on the internet with the correct forwarding and firewall holes. Getting the port is the tricky bit. It should be obtainable from your operating system, or by using a network scanner (e.g. nmap) or sniffer (e.g. wireshark).
Perhaps they should run it like Terraria does - basically a shortcut to running a normal server. I remember a program that automatically port forwarded Minecraft, but it didn't work on all computers. I'll link you to it:
Minecraft Server Software still doesn't automatically forward your ports. Also, since Minecraft 1.4.5, you can choose your own port to open to LAN. It defaults at 25565.
So I think this is a case of Minecraft setting an IP and not allowing any other connections, just like specifying an IP in server.properties in Bukkit or a Minecraft Server.
On a related note, how are we going to host updated servers which are open to public now? We can't stay on Minecraft 1.2.5 and its old mods forever.
Separate names with a comma.