Jump to content

Minecraft Server

Hi all,

 

I'm currently completing a research project for school, and I've decided to make a Minecraft server.

To do this I'm seeking some wisdom from this community, I've just got some questions I need to ask:

 

  • Is it feasible to host a small (~20 player) Minecraft server using old 5 year old hardware, particularly using an i3-4170, and what would some potential bottlenecks be?
  • How much RAM would be needed for this server, and would I be able to use old DDR3 non-ecc memory? What advantages would ecc memory provide, and what other requirements would there be to be able to use ecc memory?
  • How much storage would you recommend for a survival server, and how much for a minigame server with lots of plugins?
  • What sort of upload and download speeds do I need for a stable user experience on the server?
  • What operating system should I use and why?
  • What firewall should I use? What rules would be necessary to setup, and what would be some good rules to setup for additional security?
  • How would I allow clients from the internet to connect? What would the process be (port forwarding etc.)?
  • What other measure can I take to further secure the server?

 

Thanks for taking the time to read through these questions, any help is greatly appreciated :)

 

Regards.

Link to comment
Share on other sites

Link to post
Share on other sites

well, im on linux(ubuntu, with gui), and would recommend it, uses less idle/ on fresh boot resources

 

you need a static ip. the server itself plain vanilla uses about 120-ish mb before a player joins, maybe 50mb per player. mods can use 500mb easily before a player joins.

 

i host on a quadcore celeron  with quadcore 1.1ghz, and sodimm ddr3 so yes should be okay.

 

steps

• download the minecraft server.jar file, and openjdk. i use jdk 8 but any version should do.

 

•put it where you want the server file to be stored. 

 

•cd into where the file is: in my case its

cd ~/Documents/mc2

 then start the server with some ram. 

• use /stop in the server gui, then add the server ip to server properties folder.

 

••The server must be stopped when you edit the properties.

 

~Suggestion 

for security, you could let your friends join/who you want, add them to whitelist, and then enable whitelist. 

 

 

 

 

 

° my server specs and ram estimate

 

i give 6gb of ram and get about 2% usage on vanilla 1.12.2 , so overkill but something like this should be a good estimate

 

120mb + (50mb*number of players) + some extra ram for varience.

 

my net speed is about 29 on speed test, and blocks respawn a second then break, so little faster than that. 

 

•Note

if you have the wrong ip the server will insta crash. you can change it in properties if this happens. host pc can't join the server in my expirence.

 

you need to right clock the .jar file and make it executable as program in properies. also theres a command you need to start the server with custom ram ammount. when i say cd and commands all thats done in terminal. leave the no gui out of the command. /stop in a linux terminal causes issues.

 

edit: 25565 is traditionally the minecraft port. 

 

main rig:

CPU: 8086k @ 4.00ghz-4.3 boost

PSU: 750 watt psu gold (Corsair rm750)

gpu:axle p106-100 6gbz msi p104-100 @ 1887+150mhz oc gpu clock, 10,012 memory clock*2(sli?) on prime w coffee lake igpu

Mobo: Z390 taichi ultimate

Ram: 2x8gb corsair vengence lpx @3000mhz speed

case: focus G black

OS: ubuntu 16.04.6, and umix 20.04

Cooler: mugen 5 rev b,

Storage: 860 evo 1tb/ 120 gb corsair force nvme 500

 

backup

8gb ram celeron laptop/860 evo 500gb

Link to comment
Share on other sites

Link to post
Share on other sites

Wow, thanks for the detailed information! I've got 100 down and 50 up, so I'm guessing that should be enough. What are your thoughts on Centos as an OS? I've heard it can be lighter on resources than Ubuntu, but 'm not entirely sure.

I also just wanted to ask you if you recommend any management software like Multicraft, I'm wanting to run multiple servers on the same machine, so I need a way to manage them both with automated start / stop scripts.

Why would I need a static IP? Is there any alternative?

Will opening a second server along with another port pose any security risks and how can they be mitigated? What software do you recommend to incorporate plugins into the server (spigot, paper etc.)?

 

Thanks again :)

 

P.S. Please let me know if I can directly quote your usernames in my research folio.

Link to comment
Share on other sites

Link to post
Share on other sites

not sure what plugins are. sorry, and i guess if you're comfortable with no gui, maybe could go vms per server? never tried it and may not be possible due to the port being taken by the first server. 25565 is the default, but there is a place in server properties to change.

 

if i had to guess, you download (ammount of servers you want open) .jar server files, and place them in diffrent places. make sure you cd into where the jar is or you'll wind up with all of them in ~

(~=home directory)

 

open one at a time, and stop it with /stop

 

edit the "server properties" per directory so they use diffrent ports. the gedit editor should work just fine. make sure when you use the custom ram server start commands you don't allocate something like 6gb to two when you have 8gb ram tho. 

 

if you mean mod packs by plugins, well to add them you need to download forge and install as server mode. i used either universal or i installer forgot which. don't forgot to make it executable. forge needs the jre as well. below is a link to forge. i'd recommend adding optifine to your vanilla server, if you want people who join to be able to have shaders. you'll need to manually create a mods folder in the directory containing your world. also would recommend giving yourself op via the server gui. 

 

/op (minecraft username) 

 

http://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.12.2.html

 

 

 

the mod pack versions must match exactly on joining end, and server side or can't be joined.

 

 

 

whitelist and enforce it once everyone you want on the servers joined at least once. if youre worried about security.

 

as @NZgamer pointed out port forwarding is needed, i don't have expirence there i just got a static ip subscription so can't help you there. 

 

below is the command i use to start a 1.12.2 server with 6gb ram. change the number accordingly, its in mib. 1024=1gb since i forgot the abbreviation mib may not be correct but numbers are. 

 

java -Xmx6144M -Xms6144M -jar minecraft_server.1.12.2.jar

main rig:

CPU: 8086k @ 4.00ghz-4.3 boost

PSU: 750 watt psu gold (Corsair rm750)

gpu:axle p106-100 6gbz msi p104-100 @ 1887+150mhz oc gpu clock, 10,012 memory clock*2(sli?) on prime w coffee lake igpu

Mobo: Z390 taichi ultimate

Ram: 2x8gb corsair vengence lpx @3000mhz speed

case: focus G black

OS: ubuntu 16.04.6, and umix 20.04

Cooler: mugen 5 rev b,

Storage: 860 evo 1tb/ 120 gb corsair force nvme 500

 

backup

8gb ram celeron laptop/860 evo 500gb

Link to comment
Share on other sites

Link to post
Share on other sites

Thanks for the advice @NZgamer, if you could help me out with that script that'd be great. Ideally it'd start and stop at specified times. I'm also wondering if there's a way to get the whole system to go into a hibernation mode of sorts during a specified time and start the servers again when it wakes up.

Also @Snowarch could you please explain what vms per server is? It sounds like something that could be useful.Thanks also for the info.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×