Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Packet Redirector

Packet Redirector는 특정 IP와 포트로 수신된 패킷을 실시간으로 다른 IP와 포트로 전달(포워딩)해주는 간단하고 가벼운 GUI 기반 프로그램입니다. UDP / TCP 모두 지원하며, 실시간 패킷 확인 기능 및 다국어 지원을 제공합니다.

소개

2.0 버전부터 Rust + egui로 다시 작성되었습니다. 결과물은 약 3.2 MB짜리 단일 실행 파일(PacketRedirector.exe) 하나이며, .NET 런타임을 비롯한 어떤 별도 설치도 필요하지 않습니다. 파일 하나만 복사해 두면 어디서든 바로 실행됩니다.


주요 기능

  • UDP / TCP 패킷 리다이렉팅 지원
  • TCP 양방향 통신 — 대상 서버가 보낸 응답이 원래 클라이언트에게 그대로 되돌아갑니다
  • 프로토콜 교차 변환 — UDP로 받아 TCP로 보내거나, TCP로 받아 UDP로 보낼 수 있습니다
  • 수신 및 송신 포트/프로토콜 지정 가능
  • 초당 수신 패킷 수 실시간 표시
  • 최근 수신된 패킷 메시지 확인 가능
  • 수정 가능한 다국어 UI (예: English / 한국어)
  • 외부 locales 폴더로 번역 추가/수정 — 재빌드 없이 언어를 늘릴 수 있습니다
  • 설정 자동 저장 및 복원 (config.json)

사용 방법

1. 실행

PacketRedirector.exe 실행 (설치 없이 바로 실행 가능)

2. 언어 선택

상단의 Language 드롭다운에서 언어 선택

3. 리다이렉팅 설정

항목 설명
Receive Protocol 수신 프로토콜 (UDP 또는 TCP)
Receive IP / Port 수신 IP 주소와 포트 (기본: 127.0.0.1 / 39539)
Send Protocol 송신 프로토콜 (UDP 또는 TCP)
Send IP / Port 전송할 대상 IP 주소와 포트

설정은 Start 실행 시, 언어 변경 시, 그리고 프로그램 종료 시 실행 파일과 같은 폴더의 config.json에 저장됩니다.

4. 실행/정지

  • Start 버튼 클릭 → 포워딩 시작
  • Stop 버튼 클릭 → 중단

5. 패킷 확인

  • 하단 Last Packet Message 패널을 열면 가장 최근 수신된 메시지를 확인할 수 있습니다.
  • 패널을 닫아두면 패킷 내용을 복사하지 않으므로 부하가 거의 없습니다.

다국어 설정

en.json, ko.json은 실행 파일 안에 내장되어 있어 별도 파일 없이도 동작합니다.

번역을 추가하거나 고치고 싶다면 실행 파일과 같은 폴더에 locales 폴더를 만들고 JSON 파일을 넣으면 됩니다. 파일 이름(확장자 제외)이 언어 ID가 되며, en.json / ko.json처럼 내장 언어와 이름이 같으면 내장 번역을 덮어씁니다.

PacketRedirector.exe
config.json
locales\
    ja.json      ← 새 언어 추가
    ko.json      ← 내장 한국어 번역 수정

예시 (locales/en.json):

{
  "lang": "English",
  "text": {
    "title": "Packet Redirector",
    "start": "Start",
    "stop": "Stop",
    "status_idle": "Ready",
    "packets_per_sec": "Packets/sec: {n}"
  }
}

{n}, {e}는 각각 패킷 수와 오류 메시지로 치환됩니다. 없는 키는 키 이름이 그대로 표시되므로 빠진 번역을 바로 알 수 있습니다.


빌드 방법

Rust(GNU 툴체인)만 있으면 됩니다. Visual Studio는 필요 없습니다.

rustup default stable-x86_64-pc-windows-gnu
cargo build --release

결과물: target\release\PacketRedirector.exe

참고: windows-targets 계열 크레이트가 import 라이브러리를 만들 때 GNU dlltool/as를 사용합니다. 빌드가 dlltool 오류로 멈추면 mingw-w64(예: winget install BrechtSanders.WinLibs.POSIX.MSVCRT)를 설치하고 그 mingw64\bin을 PATH에 추가하세요.


제한 사항

  • UDP → TCP는 데이터그램 경계를 보존하지 않습니다. 데이터그램 바이트가 그대로 스트림에 이어 붙어 전송되므로, 받는 쪽이 경계를 필요로 한다면 길이 접두사 같은 프레이밍을 직접 넣어야 합니다.
  • UDP 응답은 마지막 송신자에게만 돌아갑니다. 대상이 보낸 응답은 가장 최근에 패킷을 보낸 클라이언트 한 곳으로만 전달됩니다. 여러 클라이언트가 동시에 사용하는 환경에는 적합하지 않습니다.
  • UDP → TCP 연결이 끊겨 재연결된 경우, 응답 수신은 재시작 전까지 복구되지 않습니다.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages