라우터에서 Xray를 실행할 수 있다고 해서 곧바로 LAN 트래픽을 처리하는 것은 아닙니다. 먼저 코어 실행, 앱 프록시, 투명 포워딩의 차이를 살펴보고 메인 라우터, 보조 라우터, 독립 프록시 서버의 장단점을 비교합니다. OpenWrt나 Linux 미니 PC를 고려하는 사용자라면 장치 사양과 테스트 구성, 복구 방법을 정하는 데 도움이 됩니다. 모든 기기의 기본 게이트웨이를 바로 변경하는 방식은 피하세요.
Xray 직접 실행: 코어, 관리 UI, 트래픽 진입점
Xray는 프록시 연결을 처리하는 코어이지, 라우터 펌웨어나 구독 관리 UI를 갖춘 데스크톱 프로그램이 아닙니다. v2rayN은 데스크톱에서 설정을 관리하고 코어를 실행합니다. 라우터에 Xray를 설치하면 설정 생성, 프로세스 관리, 네트워크 포워딩을 펌웨어 서비스나 관리자가 각각 처리해야 합니다. 실행 파일만 복사해도 관리 웹페이지가 생기지는 않습니다.
장치 자체에서 프록시를 사용할 수 있는 것과 다른 장치의 트래픽을 프록시로 전달하는 것은 별개입니다. 전자는 앱이 프록시 인바운드에 연결하면 되지만, 후자는 IP 포워딩, 방화벽, 정책 라우팅, DNS 설정도 필요합니다. 구독 URL은 Xray의 기본 JSON 설정이 아니므로 코어에 설정 파일처럼 전달할 수 없습니다.
- 명시적 프록시: 앱에서 SOCKS 또는 HTTP 프록시를 직접 지정합니다. 노드, 인증서, 원격 연결을 점검하기 좋고 LAN 전체를 변경할 필요가 없습니다.
- 투명 포워딩: 게이트웨이의 방화벽과 정책 라우팅으로 지정한 트래픽을 코어에 전달합니다. TCP, UDP, IPv6를 각각 확인해야 하며 브라우저에서 웹페이지가 열리는지만 확인해서는 안 됩니다.
- 설정 관리: 노드 정보를 코어 설정으로 변환하고, 설정 검사와 시작·재시작을 담당합니다. 관리 도구에서 지원하는 필드가 실제 코어 버전과 호환되는지 확인하세요.
메인 라우터와 보조 라우터: 장애 영향 범위부터 확인
메인 라우터는 보통 인터넷 연결, DHCP, NAT, 기본 게이트웨이를 담당합니다. 여기에 Xray를 설치하면 트래픽 경로가 단순해지지만, 방화벽을 잘못 재시작하면 모든 장치에 영향을 줄 수 있습니다. 보조 라우터를 별도 장치로 구성하면 독립적으로 재시작하고 원복하기 쉽습니다. 다만 같은 스위치에 연결하는 것만으로 트래픽이 자동으로 보조 라우터를 통과하지는 않습니다.
테스트 장치 한 대로 보조 라우터 사용하기
권장메인 라우터의 DHCP는 그대로 두고 테스트용 PC 한 대의 기본 게이트웨이만 보조 라우터로 지정하세요. 권장하는 것은 이런 검증 순서이지, 보조 라우터가 모든 네트워크에서 더 빠르다는 뜻은 아닙니다.
적합한 경우: 안정적인 메인 라우터를 유지하면서 단계적으로 연결하고 빠르게 원복하려는 경우.
메인 라우터에서 직접 실행
라우팅, DNS, 프록시 규칙을 한곳에서 관리할 수 있습니다. 업그레이드 전 네트워크와 방화벽 설정을 백업하고, 원격 연결이 끊겨도 장치에 접근할 수 있도록 로컬 관리 경로를 남겨 두세요.
적합한 경우: 펌웨어 복구에 익숙하고 메인 라우터의 CPU와 저장 공간이 충분한 경우.
독립 프록시 서버
미니 PC는 LAN에 프록시 포트만 제공하며 기본 게이트웨이 역할은 맡지 않습니다. 각 앱에 주소를 입력하면 되며, 프록시 설정을 따르지 않는 트래픽은 일반 경로로 인터넷에 연결됩니다.
적합한 경우: 일부 PC나 앱에서만 프록시를 사용하고 네트워크 전체를 일괄 처리할 필요가 없는 경우.
아래 주소는 구성 예시이며 그대로 사용해야 하는 고정값이 아닙니다. 보조 라우터 주소는 DHCP 할당 범위와 겹치지 않고 다른 장치에서 사용하지 않는 주소로 지정하세요. 네트워크 포트가 하나인 장치도 보조 라우터로 쓸 수 있지만, 응답 경로와 포워딩 규칙, 메인 라우터 동작을 함께 확인해야 합니다.
메인 라우터 LAN: 192.168.10.1/24
보조 라우터 LAN: 192.168.10.2/24
보조 라우터 기본 게이트웨이: 192.168.10.1
테스트 PC: 192.168.10.50/24
테스트 PC 기본 게이트웨이: 192.168.10.2
나가는 경로: 테스트 PC → 보조 라우터 → 메인 라우터 → 인터넷
다른 장치: 기본 게이트웨이는 계속 192.168.10.1
같은 서브넷의 보조 라우터에서는 응답 패킷이 메인 라우터를 통해 테스트 PC로 직접 전달될 수 있습니다. SNAT가 필요한지는 연결 추적 정보와 실제 네트워크 구성에 따라 판단하세요. 전역 NAT 규칙을 그대로 복사하지 마세요. 테스트 중에는 ICMP 리디렉션으로 PC의 이후 경로가 바뀌지 않는지도 확인해야 합니다. 처음에는 작동하다가 나중에 보조 라우터를 우회하는 상황을 방지할 수 있습니다.
장치 요구 사항: 아키텍처, 여유 메모리, 영구 저장 공간
다운로드 전에 CPU 아키텍처와 비트 수, 시스템 ABI를 확인하세요. ‘ARM’이라는 정보만으로 패키지를 선택해서는 안 됩니다. 세부 아키텍처와 명령어 집합을 확인하고, MIPS 장치는 엔디언과 빌드 조건도 점검하세요. 펌웨어가 실행된다고 해서 현재 Xray 빌드가 해당 장치의 커널과 실행 환경을 지원하는 것은 아닙니다.
위 메모리와 저장 공간은 관리하기 편리한 시작 기준이지 공식 최소 사양이나 처리량 보장 수치가 아닙니다. 규칙 데이터, 동시 연결, 로그, 펌웨어 서비스도 리소스를 사용합니다. 저메모리 장치에서는 여유 메모리와 부하가 높은 시간대의 사용량을 기준으로 판단하세요. 새 장치를 구매할 때는 실행 파일이 저장된다는 이유만으로 사양을 정하지 마세요.
| 점검 항목 | 점검 방법 | 판정 기준 |
|---|---|---|
| 시스템 아키텍처 | uname -m 실행 후 펌웨어 장치 정보 확인 | 제품 모델명만 보지 말고 비트 수, 명령어 집합, 빌드 대상을 확인합니다. |
| 메모리 여유 | free -m | 사용량이 많은 시간대에 가용 메모리를 확인하고 메모리 부족으로 프로세스가 종료되는지 점검합니다. |
| 저장 위치 | df -h | 재부팅 후 삭제되는 임시 디렉터리가 아닌 영구 파티션에 기록되는지 확인합니다. |
| 커널 환경 | uname -r 실행 후 펌웨어 모듈 확인 | 투명 포워딩에 필요한 TPROXY와 정책 라우팅 기능이 실제로 작동해야 합니다. |
성능은 네트워크 포트의 표기 속도만으로 판단할 수 없습니다. 프록시 암호화와 프로토콜 처리는 주로 CPU를 사용하므로 일반 NAT 포워딩 성능이 Xray 처리량을 의미하지는 않습니다. 부하 테스트 중 CPU 사용률, 온도, 지연 시간을 기록하세요. 기존 하드웨어 오프로드가 투명 포워딩 규칙을 우회할 수도 있으므로 문제를 진단할 때 관련 가속 기능을 잠시 끄고 비교해 보세요.
배포 순서: 단일 연결부터 확인한 다음 테스트 게이트웨이로 전환
다음 절차는 OpenWrt에서 네트워크를 관리하고 Xray를 독립 서비스로 실행하는 경우를 기준으로 합니다. LuCI 메뉴 이름은 버전과 테마에 따라 조금씩 다를 수 있습니다. 기본 Xray에는 LuCI 메뉴가 없으므로 코어 실행과 설정 검사는 터미널에서 진행합니다. 존재하지 않는 설정을 찾으려고 방화벽을 서로 다르게 수정하는 구성 요소를 여러 개 설치하지 마세요.
-
네트워크 설정 백업
LuCI에서 ‘시스템’ → ‘백업/업그레이드’를 열고 설정을 백업하세요. 메인 라우터의 관리 주소, LAN 주소, DHCP 범위를 기록하고 메인 라우터에 직접 접속할 수 있는 관리용 PC를 준비합니다.
-
고정 IP 주소 설정
보조 라우터에서 ‘네트워크’ → ‘인터페이스’ → ‘LAN’ → ‘편집’ → ‘기본 설정’으로 이동해 192.168.10.2와 같은 고정 주소를 설정하세요. DHCP 서버를 한 대만 사용하는 구성이라면 같은 화면의 ‘DHCP 서버’ → ‘기본 설정’에서 ‘이 인터페이스 무시’를 선택해 두 장치가 동시에 주소를 할당하지 않도록 합니다.
-
설정 파일 검사
코어 실행 파일을 확인한 다음 설정 파일을 검사하세요. 원격 주소, 포트, 인증 정보, TLS 매개변수는 서비스 제공업체의 정보를 입력합니다. 검사에 통과해도 설정을 불러올 수 있다는 뜻일 뿐, 원격 연결이 성공했다는 뜻은 아닙니다.
-
프록시 연결 테스트
먼저 127.0.0.1:10808에서 수신하는 SOCKS 인바운드를 사용해 라우터 자체에서 확인하세요. PC에서 직접 테스트하려면 지정한 LAN 주소에 바인딩하고 테스트 PC만 접근하도록 제한합니다. 프록시 포트를 WAN에 공개하지 마세요.
-
테스트 PC를 게이트웨이로 전환
프록시가 정상적으로 작동하는 것을 확인한 후 펌웨어에 맞는 투명 프록시 진입점, 포워딩, 정책 라우팅을 설정하세요. 테스트 PC의 네트워크 어댑터에서 IPv4 기본 게이트웨이를 192.168.10.2로 변경합니다. DNS는 별도로 지정하고 전체 네트워크에 배포되는 DHCP 설정은 아직 바꾸지 마세요.
아래에서는 실행 파일이 /usr/bin/xray에 설치되고 설정 파일이 /etc/xray/config.json에 저장된다고 가정합니다. 펌웨어 패키지를 사용하는 경우 실제 파일 경로를 기준으로 하세요. 일부 경량 펌웨어에는 curl이 기본 설치되어 있지 않으므로 먼저 사용 가능한지 확인해야 합니다.
/usr/bin/xray version
/usr/bin/xray run -test -config /etc/xray/config.json
curl --proxy socks5h://127.0.0.1:10808 \
--connect-timeout 10 --max-time 20 \
-I https://example.com/
socks5h는 대상 도메인의 이름 조회를 프록시에 맡기므로 로컬 DNS 문제와 프록시 연결 문제를 분리해 확인하는 데 적합합니다. 이 테스트는 명시적 프록시 연결만 확인합니다. 다른 앱이 투명 포워딩을 통해 처리되는지, UDP나 IPv6가 정상 작동하는지는 확인할 수 없습니다.
투명 포워딩과 DNS: 놓치기 쉬운 네 가지 점검 항목
기본 게이트웨이를 설정하면 IP 패킷이 다른 장치로 전달될 뿐입니다. 패킷이 Xray에 들어갈지는 방화벽 규칙과 정책 라우팅에 따라 달라집니다. DNS 요청의 경로는 단말의 DNS 설정, 라우터의 포워더, 코어의 DNS 규칙이 함께 결정합니다. 각 계층을 따로 확인해야 합니다.
- 자체 루프 방지: 코어에서 원격 서버로 나가는 연결이 다시 프록시 진입점으로 전달되지 않도록 해야 합니다. 프로세스 마크, 라우팅 마크, 대상 주소 제외 등 구현 방식은 다양하므로 실제 포워딩 구성에 맞춰 설정해야 합니다.
- LAN 접근 유지: 메인 라우터 관리 페이지, 프린터, 로컬 서브넷은 보통 직접 연결해야 합니다. 모든 사설 IP 주소를 무조건 리디렉션한 다음 예외 규칙을 하나씩 추가해 해결하려고 하지 마세요.
- UDP 별도 처리: TCP 리디렉션이 성공해도 UDP가 작동하는 것은 아닙니다. UDP 투명 포워딩에는 TPROXY와 정책 라우팅 지원이 필요할 수 있습니다. DNS의 53번 포트와 다른 UDP 앱도 각각 점검하세요.
- IPv6 확인: IPv4 게이트웨이만 변경해도 단말이 라우터 광고를 통해 메인 라우터의 IPv6 기본 경로를 사용할 수 있습니다. IPv6 정책을 별도로 구성하거나 통제된 테스트 환경에서 잠시 IPv6를 끄고 비교하세요.
테스트 PC의 DNS가 여전히 192.168.10.1이면 메인 라우터가 계속 이름을 조회할 수 있습니다. DNS를 192.168.10.2로 바꾸더라도 보조 라우터가 실제로 요청을 수신하고 의도한 상위 DNS 서버로 전달하는지 확인해야 합니다. 브라우저의 암호화 DNS가 시스템 DNS를 우회할 수도 있으므로 테스트 페이지 하나만으로 네트워크 전체의 DNS 경로가 올바르다고 판단하지 마세요.
자주 묻는 문제와 원복 방법: 네트워크부터 복구한 뒤 규칙 확인
시작할 때 실행 오류가 발생합니다. 설정을 바꾸면 해결될까요?
먼저 uname -m을 실행하고 빌드 대상을 확인하세요. 형식 오류나 잘못된 명령어 오류가 발생하면 아키텍처, 명령어 집합, 시스템 호환성을 먼저 점검합니다. 권한 오류라면 실행 권한과 해당 파티션의 실행 금지 설정을 확인하세요. 이 단계에서는 노드 설정을 반복해서 바꿀 필요가 없습니다.
보조 라우터에서는 인터넷이 되는데 PC에서는 안 되나요?
먼저 PC의 기본 게이트웨이가 실제로 192.168.10.2인지 확인한 다음, 보조 라우터의 IP 포워딩, 방화벽 포워딩 권한, 투명 프록시 진입점을 점검하세요. 명시적 SOCKS 테스트는 성공하지만 투명 프록시가 작동하지 않는다면 원격 노드를 바꾸기 전에 포워딩 경로부터 확인하세요.
Xray를 중지했더니 네트워크 전체가 끊겼습니다. 왜 그런가요?
리디렉션 규칙이 계속 연결을 중지된 진입점으로 보내면 이런 문제가 생길 수 있습니다. 먼저 테스트 PC의 기본 게이트웨이를 192.168.10.1로, DNS를 기존 값으로 되돌리세요. 그런 다음 관리 경로를 통해 해당 규칙을 해제합니다. 실제 배포 전에는 서비스가 중지됐을 때 네트워크가 원복되는지 확인해야 합니다.
같은 노드인데 PC에서는 빠르고 라우터에서는 느린가요?
먼저 같은 PC와 테스트 대상을 사용해 비슷한 시간대에 비교하고 무선 연결 차이를 제외하세요. 그런 다음 라우터의 CPU, 온도, 로그를 확인하고 MTU와 중복 포워딩 여부를 점검합니다. 기가비트 포트라고 해서 CPU가 병목이 아닐 것이라고 단정할 수 없습니다.
최소한 다음 네 가지를 기록해 검수하세요. 명시적 프록시 연결 성공 여부, 투명 TCP 연결 성공 여부, 실제 DNS 경로, 서비스를 중지한 뒤 직접 연결로 복구되는지 여부입니다. 적용 범위를 넓히기 전에 장치 한 대로 절전 모드 복귀, IP 주소 갱신, 라우터 재시작을 시험해 설정이 영구 저장되는지 확인하세요.
프록시를 사용할 단말이 한두 대뿐이라면 PC에서는 v2rayN을, Android에서는 코어 요구 사항에 따라 v2rayNG 또는 v2flyNG를 사용하는 편이 문제를 찾기 쉽습니다. 여러 장치를 통합 관리해야 할 때 게이트웨이 배포를 고려하세요. 각 필드의 자세한 의미는 프로토콜 및 코어 참고 자료를 확인하세요. 가정 내 네트워크 전체를 한 번에 설정하기보다 트래픽 진입 경로부터 명확히 하는 것이 중요합니다.