13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[태그:] 포트 포워딩

  • [네트워크 보안 트러블슈팅] OPNsense/pfSense 장애 진단 가이드

    [네트워크 보안 트러블슈팅] OPNsense/pfSense 장애 진단 가이드

    [네트워크 보안 트러블슈팅] OPNsense/pfSense 장애 진단 가이드

    홈랩이나 소규모 사무실에서 OPNsense/pfSense를 메인 방화벽으로 올려두면, 평소에는 정말 든든합니다. 근데 한 번 꼬이기 시작하면 이야기가 달라지죠. 인터넷은 살아 있는 것 같은데 특정 서비스만 안 되고, VPN은 붙었다 끊겼다 하고, 내부 DNS는 멀쩡한데 외부 접속만 실패하고요. 이런 상황에서 제일 무서운 건 설정을 이것저것 바꾸다가 문제를 더 키우는 겁니다. 그래서 오늘은 네트워크 보안 트러블슈팅 관점에서 OPNsense 문제 해결, pfSense 오류 확인, 방화벽 디버깅 순서를 어떻게 잡아야 하는지 제가 실제로 쓰는 방식대로 정리해보겠습니다.

    저도 처음엔 장애가 나면 로그부터 무작정 뒤졌었는데요. 실제로 써보니까 순서가 더 중요하더라고요. 물리 계층 → IP 계층 → 라우팅 → 방화벽 룰 → NAT → DNS → 애플리케이션 순서로 좁혀가면 생각보다 빨리 답이 나옵니다. 삽질 좀 했습니다 ㅎㅎ 그래서 이 글은 이론보다도, 막혔을 때 어디부터 봐야 하는지에 집중해보겠습니다.

    네트워크 보안 트러블슈팅을 위한 OPNsense/pfSense 홈랩 네트워크 아키텍처 이미지

    홈랩 네트워크에서 OPNsense/pfSense가 WAN, LAN, VLAN, VPN 사이에서 어떤 위치를 차지하는지 한눈에 보여주는 개요 이미지입니다.

    1. OPNsense/pfSense 장애가 유독 헷갈리는 이유

    방화벽 장비의 문제는 겉으로 보이는 증상과 실제 원인이 다른 경우가 많습니다. 예를 들어 사용자는 “인터넷이 안 된다”고 말하지만, 실제로는 DNS Resolver(디엔에스 리졸버, 이름 해석기)만 죽어 있는 경우가 있거든요. 반대로 ping은 되는데 웹만 안 열리면 TLS, MTU, 정책 기반 라우팅(Policy-based Routing) 문제일 수도 있습니다.

    • 증상은 단순한데 원인은 여러 계층에 걸쳐 있을 수 있습니다.
    • 룰(Rule), NAT, 게이트웨이(Gateway), DNS가 함께 얽히면 체감 난도가 확 올라갑니다.
    • 특히 홈랩 네트워크에서는 VLAN, WireGuard/OpenVPN, Reverse Proxy까지 얹히면서 더 복잡해집니다.

    혹시 이런 경험 있으신가요? 어제까지 잘 되던 포트 포워딩(Port Forwarding, 포트 전달)이 오늘 갑자기 안 됩니다. 근데 내부에서는 접속이 되고, 외부에서는 안 되고, 로그에는 딱히 에러도 안 보입니다. 이런 게 전형적인 방화벽 디버깅 케이스입니다.

    2. 계층별 문제 진단: 어디서 막히는지 먼저 파악하세요

    쉽게 말해 네트워크 보안 트러블슈팅은 “패킷(Packet, 네트워크 데이터 조각)이 어디까지 갔는지”를 찾는 과정입니다. 이걸 감으로 하면 오래 걸리고, 체크리스트로 하면 빨라집니다.

    구간 확인 질문 대표 도구 자주 나오는 원인
    물리/링크 인터페이스가 살아 있나? Interfaces, ifconfig 케이블, NIC 협상, VLAN 태그 오류
    IP/라우팅 목적지까지 경로가 있나? ping, traceroute, route 게이트웨이 오설정, 정적 라우트 누락
    방화벽 룰에서 막히나? Live View, pfctl, filter log 인터페이스 방향 착각, 룰 순서 문제
    NAT 주소 변환이 기대대로 되나? NAT rules, packet capture Outbound NAT 누락, Port Forward 불일치
    DNS 이름 해석만 안 되나? nslookup, drill, dig Resolver/Forwarder 설정 문제
    애플리케이션 포트/프로토콜만 안 되나? curl, nc, telnet 서비스 미기동, TLS, 리스닝 포트 오류

    여기서 중요한 포인트! 네트워크 보안 트러블슈팅은 “인터넷 됨/안 됨”으로 판단하면 안 됩니다. 반드시 출발지, 목적지, 포트, 프로토콜, 인터페이스, 시간대를 같이 적어두세요. 예를 들면 “VLAN 30의 192.168.30.10에서 TCP 443으로 외부 접속 실패, 오전 9시부터 시작” 이런 식입니다. 이 한 줄이 디버깅 속도를 정말 많이 올려줍니다.

    3. 실제로 하는 1차 점검 루틴 (방화벽 디버깅 기초)

    장애가 나면 저는 설정 화면부터 안 들어갑니다. 먼저 증상을 최소 단위로 쪼갭니다. 아래 순서가 기본입니다.

    1. 문제를 재현합니다. 어떤 클라이언트에서, 어떤 목적지로, 어떤 포트가 실패하는지 확인합니다.
    2. 게이트웨이 상태를 봅니다. WAN이 죽었는지, 특정 경로만 죽었는지 먼저 가릅니다.
    3. 클라이언트에서 기본 테스트를 합니다. IP ping, DNS 조회, TCP 포트 접속을 나눠봅니다.
    4. 방화벽 로그와 패킷 캡처를 같이 봅니다. 로그만 믿으면 놓치는 케이스가 꽤 있습니다.
    5. 최근 변경사항을 떠올립니다. 룰 추가, VLAN 수정, DHCP 변경, DNS 설정 변경이 있었는지요.

    실제로 써보니까 장애 원인의 절반 이상은 “최근 내가 바꾼 것”에서 나오더라고요. 저도 처음엔 인정하기 싫었는데, 결국 제 설정이 원인인 경우가 많았습니다.

    3-1. 클라이언트에서 먼저 보는 명령어

    ping -c 4 192.168.1.1
    ping -c 4 1.1.1.1
    nslookup example.com
    traceroute 1.1.1.1
    nc -vz example.com 443

    이 다섯 줄만 해도 꽤 많은 정보가 나옵니다. 첫 번째 ping이 실패하면 로컬 게이트웨이까지 못 가는 거고, 두 번째만 실패하면 WAN 또는 라우팅 문제일 가능성이 큽니다. nslookup이 실패하면 DNS 쪽을 보면 되고요. nc(netcat, 네트워크 디버깅 도구)로 443 포트 테스트까지 해보면 L3/L4를 빠르게 나눌 수 있습니다.

    3-2. 방화벽 자체에서 확인하는 명령어

    ifconfig
    netstat -rn
    pfctl -sr
    pfctl -ss
    tcpdump -ni em0 host 1.1.1.1
    tcpdump -ni em1 host 192.168.1.10

    인터페이스 이름은 환경마다 다르니 em0, em1은 실제 NIC 이름으로 바꿔서 보시면 됩니다. pfctl -sr은 로드된 필터 룰, pfctl -ss는 현재 상태 테이블(State Table, 연결 상태 추적 정보)을 보여줍니다. 상태 테이블에 세션이 생기지 않으면 룰 또는 경로 문제를 의심해볼 수 있습니다.

    네트워크 보안 트러블슈팅 중 OPNsense/pfSense 설정 화면과 게이트웨이 상태를 보여주는 이미지

    게이트웨이 상태, 인터페이스 상태, 실시간 로그, 패킷 캡처 흐름을 한 화면에서 정리한 설정 화면 예시 이미지입니다.

    4. [방화벽 디버깅] 규칙은 맞는데 트래픽이 안 지나갈 때

    이건 정말 자주 봅니다. 특히 OPNsense 문제 해결이나 pfSense 오류 문의에서 많이 나오는 패턴이 “Allow 룰을 넣었는데 왜 안 되죠?”입니다. 근데 자세히 보면 인터페이스 방향을 반대로 이해한 경우가 많아요.

    pf 기반 방화벽은 기본적으로 들어오는 방향(Inbound) 기준으로 룰을 평가합니다. 예를 들어 VLAN 20에서 인터넷으로 나가는 트래픽을 허용하려면, WAN이 아니라 VLAN 20 인터페이스에 룰이 있어야 하는 경우가 대부분입니다. 저도 예전에 WAN 쪽에만 룰을 만지다가 한참 헤맸습니다.

    • 룰은 어느 인터페이스로 들어오는가 기준으로 생각합니다.
    • 상단 룰이 먼저 매칭되므로 룰 순서를 꼭 확인합니다.
    • Floating Rule(플로팅 룰, 여러 인터페이스 공통 적용 룰)을 쓰는 경우 quick 옵션 해석도 주의가 필요합니다.

    점검 포인트

    1. 문제가 발생한 클라이언트가 어느 인터페이스에 속하는지 확인합니다.
    2. 그 인터페이스의 규칙에서 목적지/포트/프로토콜을 다시 봅니다.
    3. 상단에 더 넓은 차단 룰이 먼저 있는지 확인합니다.
    4. Live View에서 실제 차단 로그가 찍히는지 봅니다.
    5. 상태 테이블을 초기화해야 하는 상황인지 검토합니다.
    pfctl -k 192.168.20.10
    pfctl -Fs

    첫 줄은 특정 호스트 관련 상태를 끊고, 두 번째는 상태 테이블 전체를 비우는 명령입니다. 다만 운영 중인 환경에서는 전체 상태 초기화가 영향이 크니 조심하셔야 합니다. 저는 홈랩에서 테스트하다가 가족들 인터넷까지 잠깐 끊겨서 혼난 적도 있습니다 ㅎㅎ

    5. [pfSense 오류 해결] NAT와 포트 포워딩이 미묘하게 꼬일 때

    포트 포워딩(Port Forwarding, 외부 포트를 내부 서버로 전달) 장애도 단골입니다. 외부에서 내부 서비스로 들어오게 만들었는데 접속이 안 되면, 단순히 포워드 규칙만 볼 게 아니라 연관된 방화벽 규칙, 대상 IP, 내부 서버의 리스닝 상태, 헤어핀 NAT(Hairpin NAT, 내부에서 공인 주소로 다시 접근하는 구조)까지 같이 확인해야 합니다.

    제가 직접 해보니 여기서 제일 많이 헷갈리는 건 두 가지였습니다. 첫째, 내부 서버 서비스가 실제로 해당 포트에서 리스닝(listening, 접속 대기) 중인지 확인하지 않고 방화벽만 보는 경우. 둘째, 내부에서 공인 IP로 테스트하고 “안 된다”고 판단하는 경우입니다. 이건 NAT Reflection(내트 리플렉션, 내부에서 외부 주소로 우회 접속) 정책이 없으면 정상입니다.

    sockstat -4 -l
    nc -vz 192.168.10.20 443
    tcpdump -ni wan port 443
    tcpdump -ni lan host 192.168.10.20 and port 443

    이렇게 WAN과 LAN 양쪽에서 같은 포트를 잡아보면, 패킷이 들어오기만 하고 내부로 못 나가는지, 아예 바깥에서 안 들어오는지 분리할 수 있습니다. 방화벽 디버깅에서 패킷 캡처는 정말 강력합니다. 로그에는 안 보여도 캡처에는 보이는 경우가 꽤 있거든요.

    자주 실수하는 NAT 체크리스트

    • 포트 포워딩 대상 IP가 DHCP로 바뀌지 않았는지 확인
    • 자동 생성된 연동 룰이 실제로 활성 상태인지 확인
    • Outbound NAT(아웃바운드 NAT)가 수동 모드일 때 필요한 규칙이 빠지지 않았는지 확인
    • Split DNS 또는 NAT Reflection 정책이 환경에 맞는지 확인

    WAN에서는 패킷이 보이는데 LAN에서는 사라지는 상황, 또는 양쪽 모두 보이는 상황을 비교하는 패킷 캡처 예시 이미지입니다.

    6. [홈랩 네트워크 보안] DNS 문제를 방화벽 장애로 착각할 때

    이건 생각보다 더 많습니다. 사용자는 “인터넷이 안 된다”고 느끼는데, 실제로는 1.1.1.1 같은 IP ping은 잘 되고 도메인만 안 풀리는 경우죠. 그럼 방화벽 디버깅보다 DNS부터 봐야 합니다.

    OPNsense/pfSense에서는 보통 DNS Resolver나 DNS Forwarder 역할을 방화벽이 맡습니다. 그래서 이 서비스가 꼬이면 전체 장애처럼 체감됩니다. 특히 홈랩 네트워크에서 내부 도메인, 광고 차단 DNS, 로컬 호스트 오버라이드(Host Override)까지 쓰고 있으면 더 복잡해집니다.

    drill example.com
    drill @127.0.0.1 example.com
    drill @1.1.1.1 example.com

    같은 질의를 로컬 리졸버와 외부 공개 DNS에 각각 던져보면 차이를 바로 볼 수 있습니다. 로컬만 실패하면 방화벽 내 DNS 서비스 문제일 가능성이 높고, 둘 다 실패하면 WAN 또는 업스트림 문제일 수 있습니다.

    네트워크 보안 트러블슈팅에서 DNS는 별도 축으로 다뤄야 합니다. 왜냐하면 이름 해석이 안 되면 사용자는 모든 서비스가 죽은 것처럼 느끼기 때문입니다. 저도 예전에 Unbound 계열 설정을 건드린 뒤 내부 서비스가 전부 죽은 줄 알고 한참 헤맸는데, 결국 DNS 오버라이드 한 줄이 문제였던 적이 있습니다.

    7. 로그와 패킷 캡처는 같이 봐야 정확합니다

    로그(Log, 기록)는 왜 차단됐는지 알려주고, 패킷 캡처(Packet Capture)는 어디까지 갔는지 보여줍니다. 둘 중 하나만 보면 반쪽짜리 진단이 되기 쉽습니다. 특히 pfSense 오류를 좁혀갈 때는 상태 테이블과 캡처를 같이 보는 습관이 중요합니다.

    제가 자주 보는 항목

    • Live firewall log에서 차단 인터페이스와 규칙 정보
    • Gateway 모니터링 상태와 지연/손실 변화
    • DHCP Lease 변동 여부
    • ARP 테이블 이상 여부
    • 상태 테이블에 세션이 생성되는지 여부
    arp -an
    netstat -rn
    pfctl -ss | grep 192.168.30.10

    특정 클라이언트 기준으로 세션이 생성되는지 보는 것만으로도, 룰 매칭 이후까지는 갔는지 판단할 수 있습니다. 상태가 생기는데 응답이 없으면 반대 방향 경로, 업스트림 필터링, 서버 응답 문제 쪽으로 시선을 돌려야 합니다.

    여기서 팁 하나. 장애가 반복되면 체크리스트를 템플릿으로 만들어두세요.

    incident_note:
      source_ip: 192.168.30.10
      source_vlan: vlan30
      destination: example.com:443
      protocol: tcp
      first_seen: "09:10 UTC"
      last_change:
        - "Added VLAN rule"
        - "Modified DNS override"
      symptoms:
        - "Ping gateway success"
        - "Ping public IP failed"
        - "DNS lookup timeout"

    이런 식으로 적어두면 다음 삽질을 줄일 수 있습니다. 드디어 됐다! 하는 순간에 원인을 안 적어두면, 다음 달에 똑같이 다시 헤매게 되더라고요.

    네트워크 보안 트러블슈팅 결과로 정상 복구된 OPNsense/pfSense 상태 검증 이미지

    장애 해결 후 ping, DNS 조회, 상태 테이블, 서비스 접속이 모두 정상으로 돌아온 결과를 보여주는 검증 이미지입니다.

    8. 검증은 반드시 단계별로 해야 합니다

    설정을 고친 뒤 바로 “이제 됩니다”라고 끝내면 안 됩니다. 최소한 아래 항목은 다시 확인해야 합니다.

    1. 클라이언트에서 게이트웨이 ping 성공
    2. 공인 IP ping 또는 traceroute 정상
    3. DNS 조회 정상
    4. 문제였던 포트 접속 정상
    5. 방화벽 로그에 더 이상 의도치 않은 차단 없음
    6. 다른 VLAN 또는 다른 클라이언트에 부작용 없음

    특히 마지막이 중요합니다. OPNsense 문제 해결을 하다가 특정 대역만 살리고 다른 대역을 죽여버리는 경우가 의외로 많거든요. 그래서 저는 항상 “원래 안 되던 것”뿐 아니라 “원래 되던 것”도 같이 확인합니다. 이게 진짜 실무적인 검증입니다.

    간단한 결과 확인 예시

    ping -c 2 192.168.1.1
    ping -c 2 1.1.1.1
    nslookup example.com
    curl -I https://example.com

    curl까지 성공하면 적어도 웹 계층에서의 기본 통신은 확인한 셈입니다. 물론 실제 서비스가 API, 게임, VPN, VoIP라면 그 프로토콜 특성에 맞는 추가 검증이 필요합니다.

    9. 정리: 네트워크 보안 트러블슈팅의 핵심은 순서입니다

    오늘 내용의 핵심은 단순합니다. 네트워크 보안 트러블슈팅은 센스보다 순서가 중요합니다. 물리, IP, 라우팅, 룰, NAT, DNS, 애플리케이션 순서로 좁혀가면 됩니다. OPNsense/pfSense는 강력한 만큼, 설정 요소가 많아서 겉증상에 속기 쉽습니다. 그래서 더더욱 “패킷이 어디까지 갔는가”를 기준으로 봐야 하죠.

    제가 실제로 오래 써보니, 가장 시간을 아껴주는 건 세 가지였습니다. 첫째, 증상을 문장으로 정확히 적기. 둘째, 로그와 캡처를 같이 보기. 셋째, 최근 변경사항부터 의심하기. 이 세 가지만 지켜도 홈랩 네트워크 장애 대응 속도가 꽤 달라집니다.

    이전 글에서 VLAN 분리와 기본 방화벽 정책을 다뤘다면, 이번 글은 그 위에서 장애를 푸는 방법에 가까웠습니다. 다음 글에서는 WireGuard VPN과 정책 기반 라우팅이 섞일 때 생기는 디버깅 포인트도 따로 다뤄볼 예정입니다. 그쪽은 진짜 한 번 꼬이면 오래 갑니다.

    네트워크 보안 트러블슈팅 요약과 OPNsense 문제 해결 포인트를 정리한 인포그래픽 이미지

    장애 진단 순서, 자주 나오는 원인, 추천 도구를 한 장으로 요약한 인포그래픽 이미지입니다.

    자주 묻는 질문

    Q1. ping은 되는데 웹만 안 열리면 방화벽 문제인가요?

    반드시 그렇진 않습니다. TCP 80/443 차단, DNS 문제, MTU 문제, 서버 리스닝 문제, TLS 이슈까지 모두 가능성이 있습니다. ping 성공만으로 방화벽 정상이라고 보시면 안 됩니다.

    Q2. 포트 포워딩이 외부에서는 안 되고 내부에서는 되면요?

    내부 테스트가 사설 IP 기준인지, 공인 IP 기준인지 먼저 구분하셔야 합니다. NAT Reflection이나 Split DNS 구성이 없으면 내부에서 공인 주소 테스트는 실패할 수 있습니다.

    Q3. 로그에 아무것도 안 찍히면 어떻게 하나요?

    그럴 때일수록 패킷 캡처가 중요합니다. 아예 방화벽까지 패킷이 도달하지 않는지, 도달은 하는데 다른 인터페이스로 안 나가는지부터 확인해보세요.

  • [Game] 마인크래프트 서버 구축: 친구들과 함께 즐기는 완벽 가이드

    [Game] 마인크래프트 서버 구축: 친구들과 함께 즐기는 완벽 가이드

    마인크래프트 서버 구축: 친구들과 함께 즐기는 완벽 가이드

    🎮 친구들과 함께하는 마인크래프트, 직접 서버를 만들어볼까요?

    안녕하세요! 13년차 인프라 엔지니어입니다. 혹시 친구들과 마인크래프트(Minecraft) 멀티플레이를 즐기고 싶은데, 접속이 자꾸 끊기거나 원하는 모드를 적용하지 못해 답답했던 경험 있으신가요? 공식 렐름(Realms)은 비용이 들고, 매번 친구에게 접속을 부탁하기도 좀 그렇고요.

    저도 처음엔 그랬거든요. 로컬 서버로 잠시 열었다가 닫고, 친구들은 제가 게임을 켜야만 들어올 수 있어서 정말 불편하더라고요. ‘에이, 이참에 아예 나만의 전용 서버를 하나 만들어버리자!’ 하는 마음으로 홈랩(HomeLab)에 직접 마인크래프트 서버를 구축해봤거든요. 처음엔 삽질도 좀 했지만, 막상 해보니 생각보다 어렵지 않았고, 결과는 정말 뿌듯했습니다. 🤩

    이 글에서는 여러분이 저처럼 삽질하지 않고, 친구들과 함께 언제든 접속해서 즐길 수 있는 마인크래프트 서버 구축 방법을 처음부터 끝까지 자세히 알려드릴게요. 마인크래프트 서버 호스팅 없이도 나만의 게임 서버를 만드는 완벽 가이드입니다. 자, 그럼 시작해볼까요?

    💡 마인크래프트 서버, 대체 왜 필요할까요?

    마인크래프트 서버가 필요한 이유는 크게 두 가지거든요. 첫째, 안정적인 멀티플레이 환경을 제공하기 위함이고, 둘째, 다양한 커스터마이징(Customizing)을 가능하게 하기 위함입니다. 일반적인 로컬 호스트 방식은 게임을 연 사람의 컴퓨터가 꺼지면 모든 플레이어가 접속할 수 없게 되죠. 하지만 전용 게임 서버는 24시간 내내 운영되며, 언제든 친구들이 접속할 수 있어요. 저는 업무 중에 잠시 쉬면서 친구들이 제 서버에서 잘 놀고 있는지 확인하기도 합니다. ㅎㅎ

    여기서 중요한 포인트! 마인크래프트는 크게 Java Edition(자바 에디션)과 Bedrock Edition(베드락 에디션)으로 나뉜다는 거거든요. 이 글에서는 가장 보편적이고 커스터마이징이 자유로운 Java Edition 서버 구축에 초점을 맞출 겁니다. Java Edition 서버는 바닐라(Vanilla) 서버와 스피곗(Spigot), 페이퍼(Paper) 같은 최적화된 서버 소프트웨어로 나뉘는데, 저는 성능과 플러그인(Plugin) 호환성 때문에 PaperMC를 강력히 추천해요. 바닐라 서버보다 리소스(Resource) 사용량이 적고, 다양한 기능을 추가하기 훨씬 쉽거든요.

    친구들과 함께 즐길 마인크래프트 서버의 기본적인 아키텍처 구성도를 한눈에 살펴보세요. 직접 서버를 구축할 때 전체적인 흐름을 이해하는 데 도움이 됩니다.

    🛠️ 마인크래프트 서버 구축, 단계별로 따라하기

    이제 본격적으로 서버를 만들어볼 시간입니다. 제가 홈랩에서 리눅스(Linux) 환경으로 구축했을 때의 경험을 바탕으로, 일반적인 Windows 환경에서도 쉽게 따라하실 수 있도록 설명해 드릴게요.

    1. 마인크래프트 서버 실행 환경 준비

    마인크래프트 자바 에디션 서버는 이름처럼 Java 기반으로 작동합니다. 따라서 가장 먼저 Java 런타임 환경(Runtime Environment)을 설치해야 해요.

    1. 운영체제(OS) 선택: 저는 보통 안정성과 효율성 때문에 리눅스(Ubuntu Server)를 사용하지만, 처음이라면 익숙한 Windows 10/11 환경도 괜찮습니다.
    2. Java 설치: 마인크래프트 서버 버전에 맞는 Java Development Kit(JDK) 또는 Java Runtime Environment(JRE)를 설치해야 합니다. 최신 마인크래프트 버전(1.18 이상)은 일반적으로 Java 17 또는 Java 21을 요구하더라고요.

    💡 팁: 오라클(Oracle) JDK도 있지만, 저는 오픈소스인 OpenJDK를 선호합니다. 다음은 리눅스 환경에서 OpenJDK 17을 설치하는 예시입니다.

    
    sudo apt update
    sudo apt install openjdk-17-jre-headless # 서버용 JRE (헤드리스 버전)
    java -version # 설치 확인
    # openjdk version "17.0.X" 202X-XX-XX
    # OpenJDK Runtime Environment (build 17.0.X+X-XXXX)
    # OpenJDK 64-Bit Server VM (build 17.0.X+X-XXXX, mixed mode, sharing)
    

    Windows의 경우, OpenJDK 공식 웹사이트에서 설치 파일을 다운로드하여 설치하시면 됩니다.

    1. 서버 파일 다운로드: 저는 앞서 언급했듯이 성능이 뛰어난 PaperMC를 추천합니다. PaperMC 공식 다운로드 페이지에서 최신 안정화 버전의 jar 파일을 다운로드하세요.

    다운로드한 파일을 서버를 운영할 폴더(예: <code>C:\minecraft_server 또는 /home/user/minecraft_server)에 넣어줍니다.

    2. 마인크래프트 서버 설정 파일 생성 및 초기화

    서버 파일을 처음 실행하면 몇 가지 파일이 자동으로 생성됩니다. 이 중에서 가장 중요한 것은 eula.txt와 server.properties입니다.

    1. eula.txt 동의: 마인크래프트 최종 사용자 라이선스 계약(EULA)에 동의해야 서버가 실행됩니다. eula.txt 파일을 열어 eula=false를 eula=true로 변경하고 저장하세요.
    2. server.properties 설정: 이 파일은 서버의 모든 설정을 담고 있어요. 메모장이나 텍스트 편집기로 열어서 원하는 대로 수정하면 됩니다. 제가 주로 건드리는 핵심 설정들은 다음과 같습니다.
    
    # server.properties 예시 (주요 설정)
    
    enable-query=false
    motd=§aWelcome to §bMy Awesome Minecraft Server! §r(by 13-year Infra Engineer)
    pvp=true
    difficulty=easy
    gamemode=survival
    max-players=20 # 동시 접속 최대 플레이어 수
    server-port=25565 # 마인크래프트 기본 포트
    level-name=world # 월드 폴더 이름
    online-mode=true # 정품 유저만 접속 가능하도록 설정 (보안상 매우 중요!)
    allow-flight=false
    view-distance=10 # 시야 거리 (리소스 소모에 영향)
    # ... 기타 설정들은 필요에 따라 수정하세요.
    

    motd는 서버 목록에 표시되는 메시지인데, § 코드를 이용하면 색깔도 입힐 수 있어서 저는 꼭 활용하는 편입니다. online-mode=true는 반드시 유지하여 비정품(크랙) 유저의 접속을 막아야 하거든요. 보안상 정말 중요합니다!

    3. 마인크래프트 서버 실행 스크립트 작성

    서버를 매번 명령 프롬프트(Command Prompt)나 터미널(Terminal)에 직접 입력하는 건 번거롭죠. 간단한 스크립트 파일을 만들어서 편하게 실행할 수 있습니다.

    새로운 텍스트 파일을 만들고, 내용을 입력한 후 start.bat (Windows) 또는 start.sh (Linux)로 저장하세요.

    Windows (start.bat) 예시:

    
    @echo off
    java -Xms2G -Xmx4G -jar paper-1.20.4-XXXX.jar --nogui
    PAUSE
    

    Linux (start.sh) 예시:

    
    #!/bin/bash
    java -Xms2G -Xmx4G -jar paper-1.20.4-XXXX.jar --nogui
    

    여기서 -Xms2G -Xmx4G는 서버에 할당할 메모리(RAM)를 지정하는 부분입니다. -Xms는 최소 할당 메모리, -Xmx는 최대 할당 메모리거든요. 저는 보통 4GB 정도를 할당하는데, 친구들과 몇 명이 함께 플레이하는지, 어떤 플러그인을 사용할지에 따라 유연하게 조절해주세요. (최소 2GB는 권장합니다.) paper-1.20.4-XXXX.jar 부분은 다운로드한 PaperMC 파일 이름과 일치시켜야 합니다. Linux에서는 chmod +x start.sh 명령으로 실행 권한을 부여해야 한답니다.

    4. 마인크래프트 서버 방화벽 및 포트 포워딩 설정

    이제 서버는 준비되었지만, 외부에서 친구들이 접속하려면 몇 가지 네트워크(Network) 설정을 해줘야 합니다. 저는 이 부분에서 가장 많이 삽질했던 기억이 나네요. 😅

    1. 서버 PC 방화벽 설정: 서버가 실행되는 컴퓨터의 방화벽에서 마인크래프트 포트(기본 25565/TCP)를 허용해야 합니다.
      • Windows: [Windows Defender 방화벽]에서 [새 규칙]을 만들어 TCP 25565 포트를 허용하면 됩니다.
      • Linux: ufw 같은 방화벽 도구를 사용한다면 다음과 같이 설정합니다.
    
    sudo ufw allow 25565/tcp
    sudo ufw enable
    sudo ufw status
    
    1. 공유기(Router) 포트 포워딩(Port Forwarding) 설정: 이게 가장 중요합니다! 친구들이 여러분의 집 외부 IP(Public IP)로 접속했을 때, 공유기가 그 트래픽(Traffic)을 여러분의 서버 PC로 정확히 전달해주도록 설정해야 거든요.
      • 공유기 설정 페이지(보통 192.168.0.1 또는 192.168.1.1)에 접속합니다.
      • [NAT/라우터 관리], [포트 포워딩], [가상 서버] 등 메뉴를 찾아 들어갑니다.
      • 새 규칙을 추가하여, 외부 포트 25565, 내부 포트 25565, 프로토콜 TCP, 내부 IP 주소는 여러분의 서버 PC의 내부 IP 주소를 입력하세요. (예: 192.168.0.100)

    외부에서 마인크래프트 서버에 접속할 수 있도록 공유기(Router)에서 포트 포워딩(Port Forwarding)을 설정하는 화면 예시입니다. TCP 25565 포트가 서버 IP로 정확히 지정되었는지 확인해야 합니다.

    ⚠️ 경고: 간혹 DMZ(DeMilitarized Zone) 기능을 사용하라고 하는 경우도 있는데, 이는 서버 PC를 외부 네트워크에 완전히 노출시키는 것이므로 보안상 정말 위험합니다. 가급적 포트 포워딩만 사용하세요.

    ⚠️ 삽질 경험: “친구들이 접속이 안 돼요!”

    제가 겪었던 흔한 문제들과 그 해결책을 공유해 드릴게요. 아마 여러분도 비슷한 경험을 하실 수 있을 겁니다.

    • “친구들이 접속을 못 해요!”
      • 해결: 가장 흔한 문제는 역시 포트 포워딩과 방화벽입니다. 서버 PC의 방화벽이 25565 포트를 막고 있지는 않은지, 공유기에서 서버 PC의 내부 IP로 포트 포워딩이 제대로 되었는지 다시 한번 확인해보세요. CanYouSeeMe.org 같은 웹사이트에서 25565 포트가 열려 있는지 테스트할 수 있거든요.
      • 친구들에게 알려줄 IP 주소는 여러분의 외부(Public) IP 주소입니다. WhatIsMyIPAddress.com 같은 곳에서 확인하면 돼요.
    • “서버가 너무 느려요” 또는 “렉이 심해요”
      • 해결: 대부분 메모리 부족이거나 CPU 성능 문제입니다. start.sh (또는 .bat) 파일의 -Xmx 값을 충분히 늘려보세요. (예: -Xmx4G 또는 -Xmx6G)
      • server.properties 파일에서 view-distance 값을 줄이는 것도 도움이 돼요. (예: 10에서 7이나 8로)
      • 인터넷 업로드/다운로드 속도(Bandwidth)가 충분한지도 확인해보는 게 좋습니다.
    • “Java 버전 오류가 나요”
      • 해결: 마인크래프트 서버 버전과 호환되는 Java 버전을 사용해야 합니다. 예를 들어, 마인크래프트 1.17은 Java 16 이상, 1.18 이상은 Java 17 이상을 요구하더라고요. 설치된 Java 버전을 다시 확인하고, 필요하다면 올바른 버전으로 재설치하세요.

    ✅ 마인크래프트 서버 접속 및 플레이!

    모든 설정이 끝났다면, 이제 마인크래프트 클라이언트(Client)에서 서버에 접속해볼 시간입니다. 두근두근! 🎉

    1. 마인크래프트 게임을 실행합니다.
    2. [멀티플레이] 메뉴로 들어갑니다.
    3. [서버 추가] 또는 [직접 연결]을 선택합니다.
    4. 서버 주소(Server Address) 입력란에 다음 중 하나를 입력합니다.
      • 로컬 접속 (서버 PC에서 직접 접속): localhost 또는 서버 PC의 내부 IP (예: 192.168.0.100)
      • 외부 접속 (친구들 또는 다른 PC에서 접속): 여러분의 외부(Public) IP 주소 (예: 203.0.113.42)
    5. [서버 팩 불러오기] 또는 [서버 참가]를 클릭하면… 드디어 접속!

    성공적으로 마인크래프트 서버에 접속하여 플레이하는 게임 화면입니다. 친구들과 함께 만든 세상에서 모험을 시작할 준비가 되었습니다!

    🚀 게임 서버 안정적 운영: 다음 단계로 나아가기

    서버 구축에 성공했다면, 이제 더 안정적이고 재미있게 운영하기 위한 몇 가지 팁을 알려드릴게요. 저도 처음엔 몰랐다가 삽질하면서 배운 것들입니다.

    • 자동 백업(Automatic Backup): 월드를 잃는 것만큼 슬픈 일은 없죠. 플러그인을 사용하거나 간단한 스크립트를 짜서 주기적으로 월드 데이터를 백업하는 게 정말 중요합니다.
    • DDNS (Dynamic DNS): 가정용 인터넷은 대부분 유동 IP(Dynamic IP)를 사용합니다. IP 주소가 바뀌면 친구들에게 매번 새로운 IP를 알려줘야 하죠. No-IP나 DuckDNS 같은 DDNS 서비스를 이용하면 고정된 도메인(Domain) 주소로 서버에 접속할 수 있어서 훨씬 편리합니다.
    • 모니터링(Monitoring): 서버의 CPU, RAM 사용량을 주기적으로 확인해서 서버가 버벅거리지 않도록 관리해주세요. 리눅스에서는 htop이나 top 명령어를, Windows에서는 작업 관리자를 활용하면 좋습니다.
    • 플러그인/모드(Plugin/Mod): PaperMC 서버를 사용한다면 다양한 플러그인을 설치하여 게임 플레이를 더욱 풍부하게 만들 수 있어요. (예: EssentialsX, WorldEdit 등)

    안정적이고 효율적인 마인크래프트 서버 운영을 위한 핵심 팁들을 요약한 인포그래픽입니다. 백업, DDNS, 모니터링, 플러그인 활용 등 다음 단계를 위한 아이디어를 얻을 수 있습니다.

    맺음말: 나만의 게임 서버, 직접 만들어보니 뿌듯하죠?

    길고 긴 여정이었지만, 마침내 친구들과 함께 즐길 수 있는 나만의 마인크래프트 서버를 구축하는 데 성공하셨을 겁니다. 처음엔 복잡해 보여도, 하나하나 따라 하다 보면 충분히 해낼 수 있거든요. 저도 처음엔 낯선 리눅스 명령어와 포트 포워딩 때문에 머리를 싸맸지만, 결국 서버가 정상적으로 작동하고 친구들이 접속해서 즐거워하는 모습을 보니 그동안의 삽질이 모두 보상받는 기분이었습니다.

    이 경험은 단순히 게임 서버를 만드는 것을 넘어, 네트워크, 시스템 관리 등 인프라 엔지니어링의 기본적인 개념들을 직접 몸으로 익히는 소중한 기회가 될 거예요. 다음번에는 Docker(도커)를 활용해서 마인크래프트 서버를 좀 더 효율적으로 관리하는 방법이나, 유용한 플러그인들을 소개하는 글로 다시 찾아뵙겠습니다. 궁금한 점이 있다면 언제든 댓글로 남겨주세요! 감사합니다!

  • [Game] 팰월드 전용 서버 구축: 저사양 PC로 친구들과 함께 즐기는 완벽 가이드

    [Game] 팰월드 전용 서버 구축: 저사양 PC로 친구들과 함께 즐기는 완벽 가이드

    팰월드 전용 서버 구축: 저사양 PC로 친구들과 함께 즐기는 완벽 가이드

    안녕하세요, 13년차 서버실 지킴이 ’13년차의 서버실’입니다. 요즘 팰월드(Palworld)가 정말 핫하죠? 저도 밤낮으로 팰들을 잡으러 다니느라 정신이 없었어요. 친구들과 같이 하고 싶은데, 스팀(Steam) 기본 멀티플레이는 동접(동시 접속) 인원 제한도 있고, 호스트가 게임을 끄면 친구들도 다 나가야 하는 불편함이 있잖아요. 그런데 말입니다, 이럴 때 바로 필요한 게 팰월드 전용 서버(Dedicated Server)거든요!

    근데 ‘전용 서버’라고 하면 뭔가 거창하고, 고사양 PC가 필요할 것 같아서 지레 겁먹는 분들이 많으시더라고요. 저도 처음엔 ‘이거 홈랩에 있는 저사양 PC로 될까?’ 싶었거든요. 하지만 직접 삽질해보니, 생각보다 저사양 PC로도 충분히 친구들과 소규모로 즐길 수 있는 팰월드 전용 서버를 구축할 수 있었습니다!

    이번 글에서는 제가 직접 겪은 경험과 삽질기를 바탕으로, 여러분의 저사양 PC를 활용해서 팰월드 전용 서버를 구축하는 완벽 가이드를 알려드릴게요. 친구들과 밤새도록 팰월드를 즐길 준비 되셨나요? 그럼 시작해볼까요!

    이해하기 쉽게 팰월드 전용 서버와 클라이언트, 그리고 인터넷망의 관계를 도식화한 아키텍처 다이어그램입니다.

    팰월드 전용 서버, 왜 필요한가요?

    쉽게 말해 팰월드 전용 서버는 게임 호스트 역할을 전담하는 독립적인 프로그램이에요. 기존 스팀 멀티플레이는 친구 중 한 명이 게임을 켜고 ‘월드 호스트’ 역할을 하는 방식이잖아요? 이 방식의 문제는 호스트가 게임을 종료하면 다른 친구들도 모두 접속이 끊긴다는 거예요. 정말 답답하죠.

    반면 팰월드 전용 서버를 구축하면 어떻게 되냐고요? 여러분의 PC가 24시간 내내 게임 월드를 운영하게 돼요. 호스트가 게임을 하든 안 하든, 심지어 잠을 자고 있어도 친구들은 언제든지 접속해서 팰월드를 즐길 수 있거든요. 마치 온라인 게임 서버처럼 말이에요.

    팰월드 전용 서버의 최소 사양이 얼마나 되는지 궁금하시죠? 공식적으로는 명확히 제시되지 않았지만, 제 경험상 4코어 CPU, 8GB RAM 정도면 2~4명 정도의 소규모 인원은 충분히 감당할 수 있더라고요. 물론 인원이 늘어나면 더 많은 리소스(CPU, RAM)가 필요하겠지만, 저사양 PC로도 충분히 가능하다는 점이 정말 중요합니다!

    저사양 PC에 팰월드 전용 서버 설치하기

    자, 이제 본격적으로 팰월드 전용 서버를 구축해볼 시간입니다. 저는 윈도우(Windows) 환경 기준으로 설명하겠지만, 리눅스(Linux)도 명령어만 조금 다를 뿐 원리는 거의 같아요.

    SteamCMD 설치

    팰월드 전용 서버는 스팀 클라이언트(Steam Client)가 아니라, 스팀 커맨드라인 툴인 SteamCMD를 통해 설치하고 관리합니다. 좀 복잡해 보이지만 차근차근 해나가면 정말 쉬워요.

    1. SteamCMD 다운로드:
      먼저 SteamCMD를 다운로드 받아야 해요. 구글에 ‘SteamCMD’라고 검색하면 스팀 개발자 문서 페이지가 나올 겁니다. 거기서 윈도우용 ZIP 파일을 다운로드 받으세요.
      https://developer.valvesoftware.com/wiki/SteamCMD
    2. 폴더 생성 및 압축 해제:
      <code>C:\SteamCMD와 같이 짧고 관리하기 쉬운 경로에 폴더를 만들고, 다운로드 받은 ZIP 파일의 압축을 풀어주세요. 경로가 짧을수록 나중에 관리하기 편하거든요.
    3. SteamCMD 실행:
      압축을 푼 폴더 안에 있는 steamcmd.exe를 실행합니다. 처음 실행하면 필요한 파일들을 자동으로 다운로드 받고 업데이트할 거예요. 시간이 좀 걸릴 수 있으니 느긋하게 기다려주세요. Steam> 프롬프트가 뜨면 성공입니다!

    팰월드 전용 서버 설치

    이제 SteamCMD를 통해 팰월드 전용 서버를 설치해볼게요. 앞서 설명했던 SteamCMD 창에서 아래 명령어들을 순서대로 입력하면 돼요.

    1. 로그인:
      login anonymous

      익명으로 로그인합니다. 계정이 없어도 괜찮으니까 이렇게 진행하시면 돼요.

    2. 설치 경로 지정:
      서버 파일을 설치할 경로를 지정합니다. 저는 C:\PalworldServer에 설치할게요.

      force_install_dir C:\PalworldServer
    3. 팰월드 전용 서버 다운로드 및 설치:
      팰월드 전용 서버의 앱 ID는 2394010입니다. 이 ID를 사용해서 서버를 설치하면 돼요.

      app_update 2394010 validate

      이 명령어를 실행하면 팰월드 전용 서버 파일들이 지정한 경로에 다운로드됩니다. 파일 용량이 꽤 되니 역시 시간이 좀 걸릴 거예요. Success! 메시지가 뜨면 설치가 완료된 거랍니다!

    4. SteamCMD 종료:
      quit

      이제 SteamCMD는 종료해도 돼요.

    방화벽 및 포트 포워딩 설정

    이 부분이 정말 중요합니다! 외부에서 여러분의 팰월드 전용 서버로 접속하려면 반드시 이 설정을 해줘야 해요. 이 부분에서 대부분의 사람들이 막히더라고요.

    1. 윈도우 방화벽(Windows Firewall) 설정:
      • ‘Windows Defender 방화벽’을 검색해서 실행합니다.
      • ‘고급 설정’ -> ‘인바운드 규칙’으로 이동합니다.
      • ‘새 규칙…’을 클릭하고, ‘포트’를 선택한 후 ‘다음’을 누릅니다.
      • ‘UDP’를 선택하고 ‘특정 로컬 포트’에 8211을 입력합니다. (TCP가 아니라 꼭 UDP여야 해요!)
      • ‘연결 허용’을 선택하고 ‘다음’을 누릅니다.
      • ‘도메인’, ‘개인’, ‘공용’ 모두 선택하고 ‘다음’을 누릅니다.
      • 규칙 이름을 ‘Palworld Server UDP 8211’ 정도로 지정하고 ‘마침’을 누릅니다.

      이렇게 하면 윈도우 방화벽이 팰월드 전용 서버 트래픽을 허용하게 돼요.

    2. 공유기(Router) 포트 포워딩(Port Forwarding):
      이 설정은 공유기마다 인터페이스가 달라서 제가 정확한 스크린샷을 보여드리기는 어렵지만, 원리는 다 같아요. 따라가기만 하면 돼요.

      • 웹 브라우저에서 공유기 관리 페이지에 접속합니다. (보통 192.168.0.1이나 192.168.1.1 등)
      • 로그인 후 ‘NAT 설정’, ‘포트 포워딩’ 또는 ‘가상 서버’와 같은 메뉴를 찾으세요.
      • 외부 포트(External Port): 8211 (UDP)
      • 내부 포트(Internal Port): 8211 (UDP)
      • 내부 IP 주소(Internal IP Address): 팰월드 전용 서버를 돌릴 PC의 내부 IP 주소 (예: 192.168.0.100). 이 IP는 고정 IP로 설정해두는 것이 나중에 편해요.
      • 프로토콜(Protocol): UDP를 선택합니다. 꼭 TCP가 아니라 UDP여야 한다는 거 잊지 마세요!

      이 정보를 입력하고 규칙을 저장하면 완료돼요.

    일반적인 공유기 웹 인터페이스에서 포트 포워딩을 설정하는 화면의 예시입니다. 내부 IP, 외부 포트, 내부 포트, 프로토콜을 설정하는 부분이 중요합니다.

    팰월드 전용 서버 실행 및 설정

    이제 서버를 실행하고 기본적인 설정을 해볼 시간입니다. 거의 다 왔어요!

    1. 서버 실행 배치 파일 생성:
      팰월드 전용 서버를 쉽게 실행하기 위해 배치 파일(.bat)을 만들겠습니다. C:\PalworldServer 폴더 안에 start_server.bat 파일을 만들고 아래 내용을 넣어주세요.

      @echo off
      start PalServer.exe -publicip=당신의_공인_IP -port=8211 -players=4
      exit

      ⚠️ 주의사항: 당신의_공인_IP 부분은 여러분의 현재 공인 IP 주소를 입력해야 합니다. ‘내 아이피’ 등으로 구글에 검색하면 쉽게 찾을 수 있어요. 만약 공인 IP를 직접 입력하기 싫거나 IP가 자주 바뀌는 환경이라면 publicip 옵션은 생략해도 되긴 하는데, 외부 접속 시 문제가 생길 수 있으니 가급적 입력하는 것을 권장합니다.
      -players=4는 최대 동접 인원을 4명으로 제한하는 옵션입니다. 저사양 PC라면 이 값을 너무 높게 잡지 않는 것이 좋아요.

    2. 게임 설정 파일 수정 (선택 사항):
      팰월드 전용 서버의 세부 설정을 조정하려면 C:\PalworldServer\Pal\Saved\Config\WindowsServer\PalWorldSettings.ini 파일을 열어서 게임 설정을 변경하면 돼요. 처음에는 이 파일이 없을 수도 있는데, 서버를 한 번 실행하면 자동으로 생성됩니다.

      이 파일이 없을 경우, C:\PalworldServer\DefaultPalWorldSettings.ini 파일을 Pal\Saved\Config\WindowsServer 경로로 복사한 후 이름을 PalWorldSettings.ini로 변경하여 수정하세요.

      ; DefaultPalWorldSettings.ini 내용을 복사해서 수정합니다.
      [/Script/Pal.PalGameWorldSettings]
      OptionSettings=(
          Difficulty=None,
          DayTimeSpeedRate=1.000000,
          NightTimeSpeedRate=1.000000,
          ExpRate=1.000000,
          PalCaptureRate=1.000000,
          PalSpawnNumRate=1.000000,
          DamageRateAttack=1.000000,
          DamageRateDefense=1.000000,
          PlayerStomachDecreaceRate=1.000000,
          PlayerStaminaDecreaceRate=1.000000,
          PlayerAutoHPRegeneRate=1.000000,
          PlayerAutoSPRegeneRate=1.000000,
          PalStomachDecreaceRate=1.000000,
          PalStaminaDecreaceRate=1.000000,
          PalAutoHPRegeneRate=1.000000,
          PalAutoSPRegeneRate=1.000000,
          BuildObjectDamageRate=1.000000,
          BuildObjectDeteriorationDamageRate=1.000000,
          CollectionDropRate=1.000000,
          CollectionObjectHpRate=1.000000,
          CollectionObjectRespawnSpeedRate=1.000000,
          EnemyDropItemRate=1.000000,
          DeathPenalty=All, ; 사망 시 아이템 드롭 설정 (None, Item, ItemAndEquipment, All)
          EnablePlayerToPlayerDamage=False,
          EnableFriendlyFire=False,
          EnableInvaderEnemy=True,
          ActiveUNKO=False,
          CanPickupOtherPlayerDroptem=False,
          PalEggDefaultHatchingTime=72.000000, ; 알 부화 시간 (시간 단위)
          WorkSpeedRate=1.000000,
          bIsMultiplay=True,
          bIsPvP=False,
          bCanPickupPlayerCorpse=True,
          bEnableFastTravel=True,
          bIsStartLocationSelectByMap=True,
          bExistPlayerAfterLogout=False,
          bEnableDefenseOtherPalOnAttack=False,
          CoopPlayerMaxNum=4, ; Co-op 최대 플레이어 수 (전용 서버에서는 이 값보다는 start_server.bat의 -players 옵션이 우선시됩니다)
          ServerPlayerMaxNum=4, ; 서버 최대 플레이어 수
          ServerName="13년차의 서버실 Palworld", ; 서버 이름
          ServerDescription="13년차 인프라 엔지니어의 홈랩 서버입니다!", ; 서버 설명
          AdminPassword="YourAdminPassword", ; 관리자 비밀번호 (필수)
          PublicPort=8211,
          PublicIP="당신의_공인_IP", ; 여기도 공인 IP
          RCONEnabled=True,
          RCONPort=25575,
          Region="",
          bUseUPNP=False,
          bCanHostLocalOnly=False,
          bEnableNonLoginPenalty=True,
          bEnableFastTravelToDesert=True,
          bEnableFastTravelToSnow=True,
          MaxDroppableItemsNum=3000,
          bAutoResetGuildNoOnlinePlayers=False,
          DarknessDamageRate=1.000000,
          bCanPalCapturePlayer=False,
          bIsMotionBlur=False
      )

      주요 설정 항목들은 이렇습니다:

      • ServerName: 팰월드 전용 서버의 이름
      • ServerDescription: 서버 설명
      • AdminPassword: 관리자 비밀번호 (반드시 설정하세요!)
      • ServerPlayerMaxNum: 팰월드 전용 서버의 최대 플레이어 수 (여기서 설정해도 start_server.bat의 -players 옵션이 우선합니다.)
      • PublicIP: 위에서 배치 파일에 넣었던 공인 IP를 여기에도 넣어주는 것이 좋습니다.

      수정 후 파일을 저장하고 start_server.bat 파일을 실행합니다. 검은색 콘솔 창이 뜨면서 팰월드 전용 서버가 시작될 거예요.

    팰월드 전용 서버가 성공적으로 실행되어 콘솔 창에 로그가 출력되는 모습입니다. 에러 메시지 없이 정상적으로 시작되는 것을 확인합니다.

    주의사항 및 트러블슈팅 (삽질 경험 공유!) ⚠️

    저도 팰월드 전용 서버를 구축하면서 정말 여러 번 막혔거든요. 제가 직접 삽질하면서 겪었던 문제들과 해결책들을 알려드릴게요. 여러분은 저처럼 고생하지 마시길 바랍니다!

    • ⚠️ 서버가 시작되지 않아요!
      • SteamCMD 업데이트 문제: steamcmd.exe를 다시 실행해서 업데이트가 필요한지 확인해보세요. 혹시 설치 과정에서 중단되었을 수도 있거든요.
      • 종속성(Dependency) 누락: 윈도우 환경이라면 Visual C++ 재배포 패키지(Redistributable Package)가 설치되어 있는지 확인해 보세요. 팰월드를 포함한 대부분의 게임들은 이걸 필요로 하거든요.
      • 파일 경로 문제: force_install_dir 경로가 올바른지 다시 한번 확인해보세요. 혹시 경로를 잘못 입력했거나, 해당 폴더가 없을 수도 있습니다.
      • IP 주소 충돌/오류: start_server.bat 파일에 publicip를 잘못 넣었거나, 내부 IP가 바뀌었을 수도 있어요.
    • ⚠️ 친구가 팰월드 전용 서버에 접속을 못 해요!
      • 가장 흔한 문제: 포트 포워딩(Port Forwarding) 불량: 공유기 설정이 제대로 되었는지 다시 한번 꼼꼼히 확인하세요. UDP 8211 포트가 여러분의 서버 PC 내부 IP로 정확히 포워딩되어야 합니다. 이 부분이 잘못되면 외부에서 아예 접속이 안 돼요.
      • 윈도우 방화벽(Windows Firewall) 문제: 방화벽 규칙이 제대로 추가되었는지, 또는 아예 방화벽이 잠시 꺼져 있는지 확인해 보세요.
      • 공인 IP 문제: start_server.bat 파일의 publicip가 현재 여러분의 공인 IP와 일치하는지 확인하세요. 만약 공인 IP가 자주 바뀌는 환경이라면 매번 업데이트해야 할 수도 있어요.
      • 동접 인원 초과: start_server.bat의 -players 옵션이나 PalWorldSettings.ini의 ServerPlayerMaxNum 설정값을 확인하세요. 혹시 이미 최대 인원이 접속되어 있는 건 아닐까요?
    • ⚠️ 팰월드 전용 서버 성능이 너무 안 좋아요! (저사양 PC의 숙명)
      • 플레이어 수 제한: 저사양 PC에서는 동시 접속자 수를 2~4명 정도로 제한하는 것이 정말 중요해요. 무리하게 더 많은 인원을 받으려다 보면 게임이 끊길 수 있거든요.
      • 옵션 조정: PalWorldSettings.ini에서 PalSpawnNumRate, CollectionObjectRespawnSpeedRate 등의 값을 낮춰서 팰월드 전용 서버의 부하를 줄일 수 있습니다. 낮은 값일수록 덜 무거워요.
      • 백그라운드 프로그램 종료: 팰월드 전용 서버를 돌릴 PC에서 불필요한 다른 프로그램들을 모두 종료해서 리소스를 확보하세요. 웹 브라우저, 유튜브, 기타 게임 등을 다 닫으면 훨씬 나아요.
      • SSD 사용: 게임 월드 로딩과 저장 시 HDD보다 SSD가 훨씬 빠릅니다. 가능하면 팰월드 전용 서버를 SSD에 설치하세요.
    • ⚠️ 팰월드 전용 서버 저장 파일 위치:
      서버의 월드 데이터와 플레이어 데이터는 보통 C:\PalworldServer\Pal\Saved\SaveGames 경로에 저장됩니다. 정말 중요한 부분인데, 주기적으로 백업하는 습관을 들이세요! 나중에 팰월드 전용 서버가 갑자기 뻑 나도 백업 파일만 있으면 다시 복구할 수 있거든요. 저는 이전에 다른 게임 서버에서 백업 안 했다가 눈물을 머금고 처음부터 다시 시작한 적도 많습니다… (경험담!)

    친구들과 팰월드 즐기기! 🎉

    이제 팰월드 전용 서버가 잘 돌아가는지 확인해볼 시간입니다. 설레지 않나요?

    1. 게임 실행: 팰월드 게임을 실행합니다.
    2. 팰월드 전용 서버에 접속:
      • 메인 화면에서 ‘게임 시작’ -> ‘멀티플레이 참가(전용 서버)’를 선택합니다.
      • 하단에 있는 ‘Connect’ 버튼 옆에 여러분의 공인 IP 주소:8211을 입력합니다. (예: 123.45.67.89:8211)
      • ‘Connect’ 버튼을 클릭합니다.

      정상적으로 접속되면 드디어 여러분이 구축한 팰월드 전용 서버에 접속된 겁니다! 친구들도 같은 방식으로 접속하면 돼요. 접속이 성공하면 팰월드 전용 서버 콘솔 창에 접속 로그가 뜰 거예요. ‘드디어 됐다!’ 하는 쾌감이 정말 장난 아니더라고요.

    팰월드 게임 클라이언트에서 팰월드 전용 서버로 접속하는 화면입니다. 공인 IP 주소와 포트 번호를 입력하는 부분이 강조되어 있습니다.

    마무리: 팰월드 전용 서버, 이제 완벽해!

    이번 글에서는 저사양 PC로 팰월드 전용 서버를 구축하는 방법에 대해 자세히 알아봤습니다. SteamCMD를 이용한 설치부터 방화벽, 포트 포워딩 설정, 그리고 팰월드 전용 서버 실행 및 트러블슈팅까지, 제가 겪었던 모든 과정을 솔직하게 공유해드렸어요.

    사실 처음엔 저도 ‘이거 복잡해서 되겠어?’ 싶었는데, 하나하나 해나가다 보니 결국 성공했더라고요. 역시 인프라 엔지니어는 삽질 끝에 성장하는 법인가 봅니다. ㅎㅎ

    여러분도 이 팰월드 전용 서버 가이드를 따라 차근차근 진행하시면 분명 성공하실 수 있을 거예요. 친구들과 함께 밤새도록 팰월드를 즐기면서 정말 즐거운 추억 많이 만드시길 바랍니다!

    다음번에는 팰월드 전용 서버를 좀 더 안정적으로 운영하기 위한 백업 자동화나 모니터링 방법에 대해서도 다뤄볼 생각이에요. 기대해주세요!

    저사양 PC에서 팰월드 전용 서버를 효율적으로 운영하기 위한 핵심 팁들을 요약한 인포그래픽입니다.