저번처럼 TCP UDP 포트 설정하기

 

sudo iptables -I INPUT -p tcp --dport 25565 -j ACCEPT
sudo iptables -I INPUT -p udp --dport 25565 -j ACCEPT

오라클 리눅스나 우분투 이미지는 기본적으로 엄격한 방화벽 설정

마인크래프트 포트(25565)를 허용하는 명령어

 

추가하고 확인

 

sudo iptables -I INPUT -p tcp --dport 25565 -j ACCEPT

-I INPUT: Insert의 약자로, INPUT 체인의 가장 맨 위에 추가하는 규칙

-p: protocol의 약자로 통신 방식을 설정

--dport: destionation port의 약자로, 목적지 포트 번호 설정

-j ACCEPT: jump의 약자로, 위 조건이 맞다면 패킷을 허용(ACCEPT)하라는 명령

 

# 규칙 목록 보기
sudo iptables -L -v -n --line-numbers

# 특정 규칙 삭제
sudo iptables -D INPUT [라인번호]

# 모든 규칙 초기화
sudo iptables -F

# 특정 IP 차단
sudo iptables -A INPUT -s [차단할IP] -j DROP

iptables 명령은 입력 즉시 적용이지만, 서버 재부팅 시 사라짐

반드시 netfileter-persistent save 명령을 통해 설정을 파일로 저장해야 재부팅 후에도 방화벽이 유지

 

sudo netfilter-persistent save
sudo netfilter-persistent reload

재부팅 후에도 유지하도록 설정을 저장하는 명령어

save는 현재 메모리상에 적용되어 있는 실시간 방화벽 규칙(iptables)을 파일로 저장

reload는 저장된 설정 파일(/etc/iptables/rules.v4)을 읽어와서 방화벽 시스템에 다시 로드

 

환경 설정 저장 및 로드

 

sudo apt update
sudo apt install openjdk-17-jre-headless -y
java -version

마인크래프트 서버를 실행하기 위해 필요한 엔진 설치 과정

최신 버전(1.20 버전 이상)의 마인크래프트 실행을 위해서는 Java 17 이상이 필요

└ 1.21 버전 이상은 Java 21을 권장

version 명령을 입력했을 때 버전 정보가 나오면 성공

 

중간에 확인 구문, sudo apt update로 oracle 커널이 업데이트 된 것을 적용해달라는 의미로 파악

 

재부팅할 시스템 확인

 

# 설치 자바 패키지 확인
dpkg --list | grep openjdk

# Java 17 삭제(예)
sudo apt purge openjdk-17-jre-headless openjdk-17-jre openjdk-17-jdk -y

# 잔여 설정 및 불필요 패키지 정리
sudo apt autoremove -y

버전 관리를 위한 삭제 명령어

 

# PaperMC
wget https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/196/downloads/paper-1.20.1-196.jar -O server.jar

# Fabric
wget https://maven.fabricmc.net/net/fabricmc/fabric-installer/1.0.1/fabric-installer-1.0.1.jar
curl -OJ https://meta.fabricmc.net/v2/versions/loader/1.21.11/0.18.4/1.1.1/server/jar

예를 들면 PaperMC의 서버 파일 다운로드

URL은 버전과 버킷 종류에 따라 달라짐

https://fabricmc.net/use/server/ 해당 사이트를 참고해도 가능

 

java -jar server.jar
nano eula.txt

초기 java 실행 시 라이선스 동의 파일이 생성

EULA 수정으로 eula=false를 eula=true로 수정한 뒤 저장

 

# start.bat 혹은 sh로 사용할 jar 실행 명령어
java -Xms4G -Xmx4G -jar server.jar nogui
java -Xms16G -Xmx16G -jar fabric-server-mc.1.21.11-loader.0.18.4-launcher.1.1.1.jar nogui

# 새 가상 화면 만들기
screen -S minecraft

# 가상 화면 접속하기
screen -r minecraft

# 가상 화면 나가기
Ctrl + A D

터미널을 종료해도 서버가 유지되게 하는 서버 백그라운드 구동

스크린을 생성하고 서버 메모리를 할당

 

실행 가능하게 모드 변경

 

정상적으로 eula.txt까지 설정하고 난 뒤 모습

 

# 포트 상태 확인
sudo netstat -tnlp | grep 25565
sudo ss -tunlp | grep 25565

# 리눅스 자체 방화벽(Uncomplicated FireWall) 내리기
# OCI 클라우드 방화벽과 리눅스 자체 방화벽 이중 방화벽 상태
sudo ufw disable

기타 확인 사항

 

pause-when-empty-seconds
접속 중인 플레이어가 없다면 서버를 일시 중지한다.(tick freeze와 같음) 초 단위로 조절한다.
0으로 설정하면 접속 중인 플레이어가 없어도 서버는 계속 돌아간다.

server.properties 변경 사항, 나무위키 링크 참고

 

멍청하게 Source Port Range를 All이 아니라 25565로 해두고 있어서 접속이 안 됐음

 

해결하고 나니 정상적으로 접속 완료

해당 포트 확인 사이트는 https://www.yougetsignal.com/tools/open-ports/ 링크 참고

 

정상 접속 확인

 

모드 다운 받아서 scp로 옮기기

 

mods 폴더로 옮겨주기

+ Recent posts