Remnawave 노드
Remnawave 노드는 Xray-core를 포함하는 경량 컨테이너입니다.
Remnawave 패널에는 Xray-core가 포함되어 있지 않으므로, Remnawave의 모든 기능을 사용하려면 별도의 서버에 Remnawave 노드를 설치해야 합니다.
Docker 설치
아직 설치되지 않았다면 Docker를 설치하세요.
sudo curl -fsSL https://get.docker.com | sh
1단계 — 프로젝트 디렉토리 생성
mkdir /opt/remnanode && cd /opt/remnanode
2단계 - 노드 추가
Nodes -> Management로 이동하고 + 버튼을 클릭하여 새 노드를 추가합니다.
양식을 작성합니다.
Node Port 필드에 주의하세요. Remnawave 패널에서 Remnawave 노드로의 내부 API 요청을 수신하는 데 사용됩니다. 다른 방식으로는 사용되지 않습니다.
Copy docker-compose.yml 버튼을 클릭하여 설정을 클립보드에 복사합니다.

3단계 — docker-compose.yml 파일 생성
cd /opt/remnanode && nano docker-compose.yml
클립보드에서 설정을 붙여넣고 저장합니다.
4단계 — 컨테이너 시작
다음 명령어를 실행하여 컨테이너를 시작합니다:
docker compose up -d && docker compose logs -f -t
5단계 - 완료
노드 생성 카드에서 Next를 클릭하고 원하는 Config Profile을 선택한 다음 Create 버튼을 클릭합니다.
노드 방화벽에서 NODE_PORT를 패널 IP에만 닫는 것을 잊지 마세요.
고급 사용법
수정된 geosite 및 geoip 파일 로드
- 이 예제는
*-zapret.dat파일과:zapret카테고리에 플레이스홀더 이름을 사용합니다. 실제 파일 이름과 카테고리는 다릅니다. - 서버(노드)에서 구성된 라우팅은 서버 측 트래픽을 제어하며 클라이언트의 DIRECT 연결에 영향을 주지 않습니다. 클라이언트 트래픽 라우팅을 관리하려면 클라이언트 측에서 라우팅을 구성하세요.
컨테이너 내부의 /usr/local/share/xray/ 디렉토리에 마운트하여 추가 geosite 및 geoip 파일을 추가할 수 있습니다.
전체 폴더를 마운트하지 마세요. 기본 Xray geosite 및 geoip 파일을 덮어씁니다. 대신 각 파일을 별도로 마운트하세요.
docker-compose.yml 파일에 다음을 추가합니다:
services:
remnanode:
container_name: remnanode
hostname: remnanode
image: remnawave/node:latest
restart: always
network_mode: host
environment:
- NODE_PORT=2222
- SECRET_KEY="supersecretkey"
volumes:
- './geo-zapret.dat:/usr/local/share/xray/geo-zapret.dat'
- './ip-zapret.dat:/usr/local/share/xray/ip-zapret.dat'
Xray 구성에서의 사용법:
"routing": {
"rules": [
// 다른 규칙들
{
"type": "field",
"domain": [ // geosite 파일 호출
"ext:geo-zapret.dat:zapret"
],
"inboundTag": [ // 선택사항
"VLESS_TCP_REALITY"
],
"outboundTag": "NOT_RU_OUTBOUND"
},
{
"type": "field",
"ip": [ // geoip 파일 호출
"ext:ip-zapret.dat:zapret"
],
"inboundTag": [ // 선택사항
"VLESS_TCP_REALITY"
],
"outboundTag": "NOT_RU_OUTBOUND"
}
// 다른 규칙들
]
}
노드 로그
호스트 파일 시스템에 마운트하여 노드 로그에 액세스할 수 있습니다.
로그 로테이션을 반드시 설정해야 합니다. 그렇지 않으면 로그가 디스크를 가득 채웁니다!
docker-compose.yml 파일에 다음을 추가합니다:
services:
remnanode:
container_name: remnanode
hostname: remnanode
image: remnawave/node:latest
restart: always
network_mode: host
environment:
- NODE_PORT=2222
- SECRET_KEY="supersecretkey"
volumes:
- '/var/log/remnanode:/var/log/remnanode'
Xray 구성에서의 사용법:
"log": {
"error": "/var/log/remnanode/error.log",
"access": "/var/log/remnanode/access.log",
"loglevel": "warning"
}
노드를 호스팅하는 서버에서 다음을 실행하여 /var/log/remnanode 폴더를 생성합니다:
mkdir -p /var/log/remnanode
logrotate를 설치합니다 (아직 설치되지 않은 경우):
sudo apt update && sudo apt install logrotate
logrotate 구성 파일을 생성합니다:
nano /etc/logrotate.d/remnanode
RemnaNode를 위한 다음 logrotate 구성을 붙여넣습니다:
/var/log/remnanode/*.log {
size 50M
rotate 5
compress
missingok
notifempty
copytruncate
}
logrotate를 실행하여 구성을 테스트합니다:
logrotate -vf /etc/logrotate.d/remnanode
노드용 XRay SSL 인증서
이 단계는 'VLESS-Vision-TLS'와 같은 TLS 전송을 구현하는 경우 필요합니다. Reality 전송의 경우에는 필요하지 않습니다.
Xray 구성에 인증서를 사용하는 경우, 패널에 마운트해야 합니다.
Docker 볼륨을 사용하여 폴더를 마운트하고 구성에서 내부 경로를 참조하세요.
컨테이너 내부에는 인증서를 위한 전용 (비어있는) 디렉토리가 있습니다:
/var/lib/remnawave/configs/xray/ssl/
docker-compose.yml 파일에 다음을 추가합니다:
remnawave:
image: remnawave/backend:latest
container_name: 'remnawave'
hostname: remnawave
restart: always
ports:
- '127.0.0.1:3000:3000'
env_file:
- .env
networks:
- remnawave-network
volumes:
- '/opt/remnawave/nginx:/var/lib/remnawave/configs/xray/ssl'
depends_on:
remnawave-db:
condition: service_healthy
remnawave-redis:
condition: service_healthy
패널이 노드에 구성을 푸시할 때, 마운트된 파일을 자동으로 읽어 인증서를 노드에 전송합니다.
Xray 구성에서의 사용법:
"certificates": [
{
"keyFile": "/var/lib/remnawave/configs/xray/ssl/privkey.key",
"certificateFile": "/var/lib/remnawave/configs/xray/ssl/fullchain.pem"
// 다른 필드들
}
]
.key 및 .pem 확장자에 주의하세요.