Advanced: server.properties IP and Port settings
Posted 04 January 2012 - 04:44 AM
*typed up quickly, may have some repetitive things in it*
So you're running a server. You've set the server-ip and life is good but you don't really know why you set it.
Here's a working example of how, why, and what should be set in the server.properties file for IP and port settings
Example environment: My Home server
Dual Process, Dual Core, HT Xeon 2.8ghz. (8 total cores)
18gB of ram
Dual 10/100/1000 NIC, 192.168.0.105 set to 10/10/1000, 192.168.0.101 set to 10/100 (this is important later)
2x74gig 15000rpm SAS RAID 1
2x1.5tB 7200rpm SATA RAID 1
Windows server 2008
Java 7 JDK
Headless server (Remote desktop only)
Server 1: Vanilla
Server 2: Vanilla Creative (Wife hates normal mode)
Server 3: bukkit testing and implementation (will eventually be live to replace the other 2 once mutiverse is working as I want)
1) Basic usage
For the average server operator, operating out of their own house, you can leave server-ip and the server-port at their default settings, blank and 25565.
In fact, putting the wrong IP or wrong port on these lines will cause severe errors and prevent the server from actively binding to the IP address and port needed to run.
For single server, single NIC usage, the two lines should look like this:
server-port=25565 (Unless you need a different port)
2) server-ip and server-port and their errors explained
This is the cause of most unable to bind errors, despite it showing up when the wrong IP is put into the server.properties file. What's happeneing is the server attempts to reserve itself a port on the supplied IP address. If it can't use the IP address, say, the wrong one was put in, it can't bind the port, so it will throw an error.
Also, if two servers are attempting to use the same port number, you will also receive this error. One server has already claimed it and won't give it up to share with another. This is a good thing. You don't want two servers trying to connect on the same port. Confusion would result.
On the default setting, blank, the minecraft server will listen on all available IP's on the computer. So in my case, a user on my LAN could connect to both .101 and .105 on my server if I left the ip blank.
Incorrectly configuring both settings will give you the same error. Unable to Bind.
3) server-ip and server-port advanced usage.
As you noticed early I have 3 servers running on one computer with two network cards. One of the issues I had running servers, which is important to note why I have it set a certain way, is that there's a driver bug with my NIC chipset that causes buffer issues while running it at 10/100/1000 and running a minecraft server. Users would get disconnected approximately every five to ten minutes for no reason. So I forced one NIC to run only at 10/100, the .101 card.
Each server has it's own directory on the RAID array.
In the server.properties for each, this is what I have (as well as server specific names, seeds, and other settings):
What I've done here is forced all servers to only listen on .101. This prevents anyone from using .105 to connect. In fact, it will show as unreachable if you try on .105 no matter where you are on the LAN. Also, this doesn't affect port forwarding at all. Port forwarding is setup so that 25565-25567 are all forwarded to .101, where the servers are listening.
Had I set two to the same port or had a used an IP other than 192.168.0.101, .105, I would receive the Unable to Bind Error.
4) Additional information
The server-ip settings is primarily intended for deployng multiple minecraft servers on a single computer through dedicated interfaces. For example, one card may be dedicated to serving files up on the internal network and you don't want to bog down the interface with non-file related data.
The port functionality gives you more control over setting where the server listens as today's computers have so many pieces of software it's entirely possible another piece of software would be running on that port already. Giving you the Unable to Bind error.
Unfortunately a bad setting in either server-ip or server-port throws the same error so it may not always be clear where the problem is.
Posted 04 January 2012 - 05:37 AM
Posted 04 January 2012 - 05:51 AM
The binding only happens while the server is running. As soon is the server is shut off the port resources is open again for another software to allocate.
Then, should you want to change the binding, you change the server-port setting. A running server must have a valid, bound port, otherwise it won't be able to properly communicate with the clients.
Posted 05 January 2012 - 01:44 AM
Posted 06 January 2012 - 02:05 AM
Posted 06 January 2012 - 02:29 AM
The most likely are the following 2:
The first is that there is already a server running on the port you want to use
So you have a server already running on 25565 and want to run a second, it cannot use 25565 as it's port, it must have a seperate port.
The second is that you are putting an IP address in the server.properties file that is not actually attached to you computer.
Say your computer IP is 192.168.0.100, you have a hamachiv VPN of 220.127.116.11, and you're external IP is 18.104.22.168.
If you assign 192.168.0.100 or 22.214.171.124 in your server.properties file it should be able to bind. However, if you put 126.96.36.199, as this IP address is not actually associated with your computer or hardware, it's associated with another piece of hardware, you cannot allocate a port resource on it. So you will get the bind error.
Two possible fixes, put the IP of your computer in server.properties, or leave the server-ip setting blank. You do not need to actually set this for the most part unless you're running a more complicated setup.
A third option is that you have insufficient privileges to bind a port, most likely, you won't be this option unless you aren't the computer owner/admin and someone else maintains it such as in a company.
Posted 08 January 2012 - 03:20 AM
I had to replace my Residential Gateway (2WIRE) from AT&T. This apparently nullified my previous *perfectly* working firewall exception for my little server for Minecraft. Unfortunately, I did not copy the previous setup from the old 2WIRE page before the equipment swap (someone else had set it up for me in 2010, and it worked fine until the hardware switch. So from the start I'm focusing on AT&T/2WIRE as the 'bad guy').
Flash forward--I have spent the last 7 hours pouring over posts from everywhere trying to find out why no one else in my group can get in to my server. (This is not a LAN situation.)
What I have done so far:
On the 2WIRE page, I selected Settings>Firewall>Applications, Pinholes and DMZ.
I chose my PC from the list, then under 'Edit firewall settings for this computer' selected 'Allow individual application(s)'.
Since Minecraft is not on the existing Application list, I chose 'Add a new user-defined application'.
In the next window, I defined the Application:
Application Profile Name: Minecraft Server
Port (or Range): From-25565 To-25565
Protocol Timeout: (defaults to 86400 seconds for TCP)
Map to Host Port: (defaults to above port)
Application Type: (I left this blank, although some some posts said to chose 'PPTP virtual private network server'. I could not find that this was required by Minecraft.)
I clicked 'Add to List', then 'Back'.
Minecraft Server is now in the Application List. I select it, then click 'Add', and it moves to the right hand window labeled 'Hosted Applications'. I then Saved.
After this, I obtained my new external IP address to give to my other players.
Based on everything I have looked up, they should be able to log into my server.
No luck. They have not been able to connect, and my server log does not even register any attempts by others to log in.
I've used canyouseeme.org and get this message for Port 25565:
Error: I could not see your service on 99.156.[xx].[xxx] on port (25565)
Reason: Connection timed out
However, from an AT&T forum, a moderator stated:
"CanYouSeeMe.org can only verify open ports for TCP, and only when the application is running (i.e. the game must be up and running). UDP ports are not verifiable by CanYouSeeMe.org (or any other port testing tool).
Furthermore, it should not be necessary to "open" these ports, as they are initiated from inside your network.
I would check your software firewall on the computer itself (Windows Firewall, ZoneAlarm, etc.) to make sure it's configured correctly, or turn it off temporarily as a troubleshooting step."
I question the other firewalls as being an issue; as I stated earlier, *nothing* had changed on my PC prior to the equipment swap, Minecraft server was working perfectly, yet somehow Port 25565 is locked up tight even with the exception setup on the 2WIRE page.
Additionally, I made no changes to the Minecraft server.properties file, as Port 25565 was already setup, and I left the server-ip= blank.
What, if anything, am I missing? Is 25565 the only Port that can be used for a single server instance? Do I go after AT&T on this or did I do something wrong above?
Any tips or suggestions will be greatly appreciated. I'm getting lonely in there by myself.
Thank you for taking time to read this.
Posted 09 January 2012 - 02:49 PM
Sounds like there may be a setting you had previously in your modem that you didn't catch this time around.
You might have to dig into that a little bit.
Posted 12 March 2012 - 09:31 PM
Posted 12 March 2012 - 09:39 PM
Please read the rules!
Global | Discussion | MnM | Other Platforms | Servers | Support | SyC | Off Topic
“Two things are infinite: the universe and human stupidity; and I'm not sure about the universe.” — Albert Einstein
"Never try to teach a pig to sing; it wastes your time and it annoys the pig." — Robert Heinlein
Posted 12 March 2012 - 09:44 PM
Try connecting to "localhost", as some routers do not support connecting to their own IP
Quote my post to make sure I see your reply - MCF Hosting Coordinator
Posted 12 March 2012 - 11:26 PM
Set the IP in the server.propertied to localhost, and use my normal IP, or somehting else?
Posted 13 March 2012 - 01:41 AM
Posted 13 March 2012 - 07:20 PM
The server (Bukkit) says 'craftbukkit-1.1-R6-20120301.142116-2'
Posted 13 March 2012 - 07:27 PM
Quote my post to make sure I see your reply - MCF Hosting Coordinator
Posted 13 March 2012 - 08:05 PM
Posted 20 July 2012 - 12:39 AM
Posted 20 July 2012 - 12:41 AM
everything on the internet has an ip, for a home hosted server you use the ip of your internet connection, which the google seach will tell you.