# HOST SERVER MINECRAFT JAVA ĐƠN GIẢN
để tiện hơn, mình sẽ lưu ý với các bạn những thứ cần có trước khi vào hướng dẫn:
1. 1 máy tính chạy window (linux mình sẽ có 1 bài hướng dẫn khác), ram đâu đó tầm 1gb trở lên, cpu hơi khoẻ tí. Các bạn có thể thuê vps nếu như bạn không muốn host bằng máy đang dùng.
2. Password truy cập vào rourer mạng mà bạn đang dùng, vì khi host bạn chỉ chơi được trong mạng LAN, muốn công khai server lên internet thì bạn cần truy cập vào router mạng để trỏ về sever của các bạn, từ đó người khác ngoài mạng LAN sẽ truy cập được server thông qua ipv4, nếu bạn không thể truy cập được router thì bạn nên cân nhắc thuê 1 vps, hoặc dùng tunnel (mình sẽ hướng dẫn trong bài này luôn)
3. Phần mềm để chạy server, ở đây mình host server đơn giản nên sẽ dùng phần mềm của mojang luôn, các bạn truy cập vào đây để tải xuống https://piston-data.mojang.com/v1/objects/450698d1863ab5180c25d7c804ef0fe6369dd1ba/server.jar
4. Máy đã cài java và JDK Development Kit.
đó là những thứ cơ bản nhé, giờ thì mời các bạn đọc tiếp
## SET IP TĨNH CHO MÁY
Thường mặc định trên máy tính là ip động cho nên ta cần set cho nó 1 cái ip tĩnh.
các bạn truy cập như sau **Control Panel** -> **Network and Internet** ->**Network and Sharing Center**->**Change adapter settings**

nhấn chuột phải vào thiết bị mạng mà các bạn dùng và chọn **Properties**

nhấn đúp vào **Internet Protocol Version 4**

ở mục **ip address** các bạn để cho mình địa mà các bạn muốn ( lưu ý phải cùng form với mạng mà bạn kết nối), thường sẽ là **192.168.1.X**
mục **subnet mask** nó sẽ tự điền
cuối cùng là **default gateway**, các bạn điền địa chỉ của router ( tuỳ loại, thường sẽ là **192.168.1.1**) bạn có thể mở **cmd** lên và gõ **ipconfig** để kiểm tra
ở 2 dòng cuối các bạn có thể để theo mình
## TẠO FILE CHO SERVER
Ở đây mình sẽ tạo 1 file để lưu server

tiếp đó ta chuyển file code đã tải ở trên vào đây

tiếp đó tạo 1 file text và paste dòng này vào
`java -Xmx1024M -Xms1024M -jar server.jar`
giải thích sơ qua thì -Xmx1024M chính là dung lượng ram tối đa cho server và -Xms1024M là lượng ram tối thiếu, các bạn có thể setup tuỳ theo cấu hình máy
sau đó lưu lại và đổi đuôi của file thành **.bat**

nhấn đúp vào file trên để thực thi

Sau khi chạy file trên xong nó sẽ sinh ra thêm 1 vài thư mục và file, các bạn mở file **eula.txt** lên và chỉnh giá trị thành **true**

ở bước này nếu các bạn bấm vào file **run.bat** một lần nữa thì server có thể chạy ngay ở trong mạng LAN trên IP máy của bạn ở port 25565 , nhưng tiếp theo tôi sẽ hướng dẫn các bạn cách config
## CONFIG SERVER
Các bạn mở file **server.propeties** lên và chú ý những mục sau
**difficulty=**<độ khó bạn muốn>
**motd=**"tên server"
**online-mode=**(false nếu bạn muốn người chơi crack chơi được, mặc định là true)
**query.port=**(port của server, bạn có thể để theo ý mình nhưng tốt nhất ta nên để mặc định là **25565**)
bây giờ server đã sẵn sàng hoạt động, các bạn nhấn đúp vào file **run.bat**
sau khi thực thi file **run.bat** trông sẽ như thế này

ở task cmd là server console nơi để nhập các lệnh vào server còn task java trên chính là màn hình quản lý
lúc này server sẽ chạy trên mạng LAN và các máy cùng mạng sẽ truy cập được vào server thông qua ip tĩnh chúng đã set từ trước bằng cách nhập vào địa chỉ server trong game như sau: **IP:port**
nếu muốn chơi cùng bạn bè ngoài mạng các bạn có thể dùng **radmin vpn** nhưng trong bài viết này mình sẽ hướng dẫn các bạn cách public server ra không cần radmin hay hamachi
## PUBLIC SERVER RA NGOÀI MẠNG
Nếu các bạn không có vps thì cách tốt nhất vẫn là port forward qua router, nhưng nếu các bạn không thể truy cập vào router thì cũng vẫn sẽ có thêm 1 cách để các bạn tham khảo
trước khi bắt đầu ta cần tắt tường lửa cho port server mà các bạn đã set từ bước config:
1. vào mục search và tìm đếm cửa sổ firewall
2. trong mục inbound rules chọn new rule và 1 cửa sổ sẽ hiện lên
3. tích vào mục Port và nhấn next, ở cửa sổ tiếp chọn TCP và nhập port mà bạn đã config sau đó nhấn next
4. chọn allow the connection
5. tích chọn hết và nhấn next 
6. đặt tên là gì cũng được tuỳ các bạn
**thực hiện các bước trên tương tự với outbound rules**
có 2 cách để public server ra ngoài mạng: port foward, tunnel.
### PORT FORWARD
bạn cần đăng nhập vào router, mỗi router sẽ có 1 địa chỉ truy cập trong mạng nội bộ khác nhau, thường sẽ là **192.168.1.1**, tương tự đối với router của mình cũng sẽ là địa chỉ trên.
vào trình duyệt web và nhập địa chỉ vào
nhập user và pass vào, nếu các bạn là sinh viên ở trọ thì có thể xin chủ nhà (nếu được), còn nếu các bạn không có pass thì có thể qua cách 2
sau khi đăng nhập vào được các bạn tìm đến mục **NAT**
chọn vào virtual server và setup như sau:
- start port number và end port number các bạn để 25565 (port mặc định)
- Protocol là TCP
- Local IP Address là ip tĩnh đã set từ ở bước trên
- Start Port Number(Local) và End Port Number(Local) các bạn đều điền port server mà các bạn đã set trong file config

save lại và bây giờ server đã có thể truy cập từ máy người khác thông qua địa chỉ ipv4, để biết ipv4 các bạn có thể lên google và tìm what is my ip, mình xin phép che lại ip của mình nhé

ở máy của người khác, vào game và đến mục thêm máy chủ và nhập địa chỉ ipv4 vào, và chơi thôi