v2rayN으로 노드를 확인했고, OpenWrt 바이패스 라우터를 통해 LAN 기기를 연결하려는 사용자에게 적합한 글입니다. 테스트 기기 한 대의 게이트웨이를 먼저 지정한 뒤 Xray 아웃바운드, DNS, 투명 전달을 각각 확인합니다. 주 라우터와 바이패스 라우터의 역할을 정하고 REDIRECT와 TPROXY 중 선택할 기준을 파악하며, 언제든 되돌릴 수 있는 배포 순서를 세울 수 있습니다. 모든 기기에서 그대로 사용할 수 있는 범용 방화벽 원클릭 스크립트는 제공하지 않습니다.
1. 주 라우터, 바이패스 라우터, Xray의 역할부터 파악하기
주 라우터는 인터넷 연결, 가정 내 기본 게이트웨이, 주소 할당을 계속 담당합니다. OpenWrt 바이패스 라우터는 지정된 기기의 트래픽을 받아 직접 연결할지 Xray로 보낼지 결정합니다. Xray는 프록시 프로토콜과 라우팅 규칙을 처리하는 코어입니다. 프로세스가 실행된다고 해서 LAN 전체가 자동으로 투명 프록시 네트워크가 되는 것은 아닙니다.
단일 LAN 포트와 동일 서브넷을 사용하는 바이패스 라우터를 예로 들겠습니다. 주 라우터는 192.168.50.1, OpenWrt는 192.168.50.2, 테스트 PC는 192.168.50.100입니다. 이 주소는 설명을 위한 예시이므로 배포 전에 실제 로컬 네트워크에 맞게 변경하고, 주 라우터의 주소 풀에서 바이패스 라우터의 고정 주소를 제외해야 합니다.
| 구분 | 설정 예시 | 주요 역할 |
|---|---|---|
| 주 라우터 | 192.168.50.1 | 인터넷에 연결하고 기존 DHCP 서비스를 제공하며 관리 접속을 유지합니다. |
| OpenWrt 바이패스 라우터 | 192.168.50.2 | DNS 서비스와 Xray를 실행하고 전달 및 분기 규칙을 적용합니다. |
| 테스트 PC | 192.168.50.100 | 다른 기기는 그대로 두고 게이트웨이와 DNS만 먼저 변경합니다. |
| 바이패스 라우터의 기본 게이트웨이 | 192.168.50.1 | 바이패스 라우터와 프록시 서버가 인터넷에 연결되도록 설정합니다. |
테스트 PC가 해외 서비스에 접속할 때 예상 경로는 “PC → 바이패스 라우터 → Xray 아웃바운드 → 프록시 서버”입니다. 직접 연결되는 트래픽은 바이패스 라우터가 주 라우터로 전달합니다. 단일 LAN 포트 구성에서는 직접 연결의 응답이 주 라우터에서 PC로 바로 돌아와 비대칭 경로가 생길 수 있습니다. 듀얼 WAN 포트 게이트웨이용 방화벽 설정을 그대로 적용하면 안 됩니다.
2. 트래픽을 처리할 범위를 정한 다음 투명 프록시 여부 결정하기
먼저 해결하려는 문제가 무엇인지 확인하세요. PC 브라우저에서만 프록시가 필요하다면 v2rayN을 계속 사용하는 편이 관리하기 쉽습니다. SOCKS를 지원하는 프로그램 몇 개만 바이패스 라우터를 거치게 하려면 해당 프로그램에서 프록시 포트에 직접 연결하도록 설정할 수 있습니다. 기기마다 프록시를 설정하기 어려운 경우에는 투명 프록시가 적합하지만, 방화벽, 정책 라우팅, DNS를 추가로 관리해야 합니다.
단일 기기만 투명 프록시로 연결
권장먼저 PC 한 대만 연결하고 소스 주소로 투명 프록시 규칙의 대상을 제한하세요. 웹 페이지, UDP 앱, LAN 접속이 모두 정상인지 확인한 뒤 기기를 하나씩 추가하면 장애의 영향을 줄일 수 있습니다.
적합한 경우: 바이패스 라우터를 처음 배포하거나 가정 내 네트워크 안정성을 유지해야 할 때
명시적 프록시 포트
프로그램이 바이패스 라우터의 SOCKS 인바운드에 직접 연결하므로 기본 게이트웨이를 먼저 바꿀 필요가 없습니다. 노드와 Xray 설정을 확인할 수는 있지만 투명 전달 경로가 정상이라는 증거는 되지 않습니다.
적합한 경우: 프록시 설정을 지원하는 프로그램이 몇 개뿐이거나 배포 전에 계층별로 문제를 확인할 때
전체 네트워크 기본 연결
DHCP를 통해 바이패스 라우터를 게이트웨이로 지정해 여러 기기의 트래픽을 통합 처리합니다. 주소 임대 갱신, IPv6, DNS, 서비스 재시작, 장애 복구를 미리 점검해야 하며 이후 네트워크 설정 관리 부담도 커집니다.
적합한 경우: 단일 기기 테스트를 마쳤고 네트워크 설정을 장기간 관리할 수 있을 때
결론: 기존 게이트웨이는 유지하고 기기 한 대부터 변경하세요
첫 단계에서는 테스트 PC의 IPv4 게이트웨이와 DNS만 192.168.50.2로 변경하고, 주 라우터의 전체 네트워크 배포 설정은 수정하지 마세요. 바이패스 라우터에 연결할 수 없게 되면 PC를 주소 자동 받기로 되돌려 테스트를 취소할 수 있습니다.
3. 먼저 코어를 실행한 뒤 게이트웨이와 방화벽 연결하기
아래 메뉴는 일반적인 OpenWrt LuCI 인터페이스를 기준으로 합니다. 펌웨어 버전, 언어, 설치된 패키지에 따라 메뉴 이름이 다를 수 있습니다. OpenWrt 23.05 및 24.10 계열에서 흔히 사용하는 firewall4는 nftables를 기반으로 하므로 구형 iptables 전용 투명 프록시 스크립트와 혼용하면 안 됩니다. 설치 전에 프로세서 아키텍처, 사용 가능한 저장 공간, 커널 모듈 출처도 확인하세요.
-
네트워크 백업
「시스템」→「백업/업그레이드」에서 설정을 백업하고 파일을 다운로드하세요. 주 라우터와 바이패스 라우터의 주소를 기록하고, 주 라우터에 직접 연결할 관리 경로를 유지하세요. 유일한 원격 세션만으로 게이트웨이를 변경하는 위험은 피해야 합니다.
-
고정 주소 설정
「네트워크」→「인터페이스」→「LAN」→「편집」에서 바이패스 라우터의 고정 주소와 넷마스크, 주 라우터를 가리키는 IPv4 게이트웨이를 설정하세요. 「DHCP 서버」→「일반 설정」에서 「이 인터페이스 무시」를 선택해 주소가 중복으로 할당되지 않도록 합니다. 설정을 확인한 뒤 저장하고 적용하세요.
-
아웃바운드 연결 확인
시스템 아키텍처에 맞는 Xray를 사용하고 실제로 작동하는 아웃바운드 설정을 준비하세요. 먼저 LAN의 테스트 기기만 접속할 수 있도록 SOCKS 인바운드를 설정해 TCP 연결을 확인합니다. UDP를 테스트하려면 클라이언트, 인바운드, 원격 아웃바운드 경로가 모두 UDP를 지원해야 합니다.
-
DNS 설정
「네트워크」→「DHCP/DNS」→「일반 설정」에서 DNS 전달 대상을 확인하세요. 로컬
127.0.0.1:5353DNS 서비스를 사용한다면 LuCI에서는 보통127.0.0.1#5353형식으로 입력합니다. 해당 서비스가 실제로 수신 대기 중인지, dnsmasq로 다시 전달되지는 않는지 확인하세요. -
테스트 기기 연결
테스트 PC의 네트워크 설정에서 게이트웨이와 DNS를 변경한 다음 해당 PC에만 투명 프록시 규칙을 추가하세요. 인터페이스 간 전달 권한, 커널의 IP 전달 설정, 응답 경로를 확인한 뒤 직접 연결과 프록시 연결 대상을 각각 테스트합니다.
-
재시작 후 확인
현재 연결이 정상인지 확인한 뒤 방화벽을 다시 불러오고 Xray를 재시작한 다음 바이패스 라우터를 재부팅하세요. 규칙이 복구되는지, DNS를 사용할 수 있는지, 코어가 아직 시작되지 않았을 때 직접 연결 트래픽이 예상대로 처리되는지 확인합니다.
구독 링크를 Xray 실행 설정으로 바로 사용할 수는 없습니다. v2rayN은 구독 파싱, 노드 선택, 설정 생성을 담당하지만 코어를 직접 실행하려면 인바운드, 아웃바운드, DNS, 라우팅 설정을 모두 갖춰야 합니다. VMess 및 VLESS 노드의 전송 방식, TLS, 서버 이름, 관련 매개변수는 서버 측 설정과 일치해야 합니다. 서버 주소와 포트만 복사하지 마세요.
# 아래 경로는 Xray가 설치되어 있고 설정 파일이 실제로 /etc/xray/config.json에 있다고 가정합니다
xray version
xray run -test -config /etc/xray/config.json
# 시스템 아키텍처, 라우팅, 수신 대기 상태 확인
ubus call system board
ip -4 route show
netstat -lnptu
4. REDIRECT, TPROXY, 트래픽 마크 이해하기
투명 프록시는 스위치 하나로 끝나지 않습니다. 방화벽이 처리할 트래픽을 식별하고 Xray의 투명 인바운드가 이를 수신한 다음, 라우팅 규칙이 아웃바운드를 결정합니다. REDIRECT는 주로 TCP 리디렉션에 사용됩니다. TPROXY는 TCP와 UDP를 처리할 수 있지만 이에 맞는 투명 인바운드 설정, 정책 라우팅, 커널 지원이 필요합니다. 규칙 이름만 바꾸면 서로 대체되는 방식이 아닙니다.
| 방식 | 적용 범위 | 확인할 사항 |
|---|---|---|
| REDIRECT | 주로 TCP 투명 프록시에 사용 | 리디렉션 포트, 원래 대상 주소 확인, Xray 투명 인바운드 설정 |
| TPROXY | TCP 및 UDP 투명 프록시 | 투명 소켓, 패킷 마크, 정책 라우팅, 로컬 라우팅 테이블 |
| 명시적 SOCKS | 앱에서 프록시를 직접 설정 | 클라이언트 프록시 주소, 접근 제어, UDP 지원 여부 |
예를 들어 투명 인바운드 포트를 12345로 지정했다면 방화벽은 대상 트래픽을 해당 포트로 보내야 합니다. 이 포트는 원격 프록시 서버의 포트가 아닙니다. TPROXY에서 사용하는 마크와 정책 라우팅 테이블도 함께 설계해야 합니다. 기존 멀티 WAN, 다른 터널 또는 정책 라우팅 서비스가 사용하는 마크를 덮어쓰지 마세요.
- LAN과 특수 주소는 먼저 제외하세요: 라우터 관리, 프린터, 저장 장치, 브로드캐스트 통신은 유지해야 합니다. 이 트래픽을 모두 원격으로 보내면 안 됩니다.
- 프록시 서버 연결을 제외하세요: Xray가 서버에 연결하는 트래픽이 투명 프록시 규칙에 다시 걸리면 루프가 발생합니다. 배포 방식에 따라 아웃바운드 마크, 프로세스 식별 정보, 명시적인 주소 목록 등을 사용해 제외해야 합니다.
- 라우터 자체 트래픽은 별도로 처리하세요: 전달되는 트래픽은 보통 PREROUTING을 거치고 라우터에서 시작된 요청은 OUTPUT을 통과합니다. PC가 연결된다고 해서 바이패스 라우터의 구독 요청이나 DNS 업스트림도 연결된다는 뜻은 아닙니다.
- 동일 서브넷의 응답 경로를 확인하세요: 연결 추적과 방화벽 요구 사항에 맞게 소스 NAT 또는 라우팅을 설계하세요. 단일 LAN 포트 환경에서 항상 대칭 경로가 형성된다고 가정하지 마세요.
- 가속과 리디렉션을 확인하세요: 문제를 찾을 때 트래픽 오프로딩이 예상된 규칙을 우회하는지, ICMP 리디렉션으로 테스트 기기의 경로가 주 라우터로 바뀌는지 살펴보세요. 값을 변경하기 전에 기존 값을 기록하세요.
nft list ruleset으로 현재 규칙을 확인하고 ip rule show로 정책 라우팅을 확인한 다음 사용자 지정 테이블의 경로도 살펴볼 수 있습니다. nftables 규칙 전체를 바로 비우지 마세요. OpenWrt의 기본 방화벽과 원격 관리 보호까지 함께 제거될 수 있습니다.
5. DNS를 별도의 연결 경로로 다루기
웹 페이지가 열리지 않을 때는 먼저 도메인 조회 실패인지, 조회는 성공했지만 연결에 실패한 것인지 구분하세요. 게이트웨이를 바이패스 라우터로 바꿨다고 DNS도 자동으로 그 경로를 따르는 것은 아닙니다. 앱 내장 암호화 DNS, 브라우저의 보안 DNS, IPv6로 배포된 DNS 서버가 별도 경로를 만들 수 있습니다.
뒤의 두 포트는 설정 예시일 뿐 Xray의 고정 기본값이 아닙니다. 기존 수신 대기 포트를 확인한 뒤 사용하세요. 5353은 멀티캐스트 DNS에도 자주 사용되므로 바인딩 주소와 프로세스가 충돌하지 않는지 확인해야 합니다. LAN용 DNS 서비스는 보통 53번 포트에서 수신 대기하며, 내부 업스트림은 불필요한 서비스 노출을 피하도록 루프백 주소에만 바인딩할 수 있습니다.
- 요청이 도착하는지 확인하세요: PC에서
nslookup example.com 192.168.50.2를 실행해 바이패스 라우터가 응답하는지 확인합니다. 이 테스트는 지정된 DNS 서버만 검증하며 모든 앱이 해당 서버를 사용한다는 뜻은 아닙니다. - 업스트림 연결 경로를 확인하세요: 프록시를 통해 접속해야 하는 DNS 업스트림에는 명확한 아웃바운드 경로가 있어야 합니다. 프록시 서버 도메인을 조회하기 위한 초기 DNS 조회를 아직 연결되지 않은 프록시에 전적으로 의존해서는 안 됩니다.
- DNS 조회 루프를 확인하세요: dnsmasq가 로컬 DNS 서비스로 전달한 요청을 해당 서비스가 다시 dnsmasq에 보내면 안 됩니다. 루프가 생기면 조회가 오래 걸리거나 시간 초과가 발생하는 경우가 많습니다.
- 도메인 규칙과 IP 주소 규칙을 함께 확인하세요: 도메인 기준으로 트래픽을 분기한다면 Xray가 도메인 정보를 얻는 방법을 명확히 해야 합니다. 스니핑이 모든 앱에서 작동하는 것은 아니며 대상 IP만 전달받으면 원래 도메인을 알아내지 못할 수 있습니다.
- IPv6도 처리하세요: IPv4만 프록시로 연결하면 기기가 주 라우터에서 배포한 IPv6 기본 경로로 직접 인터넷에 접속할 수 있습니다. 먼저 테스트 기기에서 IPv4만 사용하도록 제한해 확인하고, IPv6 라우팅과 DNS는 별도로 설계하세요. 이를 노드 장애로 오인하지 마세요.
결론: DNS 조회 결과와 연결 결과를 따로 기록하세요
설정을 변경할 때마다 한 계층씩 확인하세요. 먼저 DNS가 주소를 반환하는지 기록하고, 그다음 요청이 통과한 아웃바운드와 핸드셰이크 결과를 확인합니다. 노드, DNS 업스트림, 투명 프록시 규칙을 한꺼번에 바꾸면 어떤 변경이 효과가 있었는지 알 수 없습니다.
6. 증상별로 문제를 확인하고 복구 경로 준비하기
로컬 관리 주소, 직접 연결해야 하는 대상, 프록시로 연결해야 하는 대상을 각각 하나 이상 준비하세요. Xray 접속 로그에서 인바운드, 대상, 아웃바운드 태그를 확인하고 시스템 로그와 대조합니다. 문제를 찾는 동안에는 로그 상세 수준을 일시적으로 높였다가 원인을 파악한 뒤 적절한 수준으로 되돌리세요. 로그에 접속 대상이 기록될 수 있으므로 공유하기 전에 주소, 인증 정보, 구독 정보를 지우세요.
게이트웨이를 바꾼 뒤 바이패스 라우터 관리 페이지에도 접속할 수 없나요?
먼저 PC를 기존 주 라우터 게이트웨이로 되돌리거나 주소 자동 받기로 설정하세요. PC와 바이패스 라우터 주소가 같은 서브넷인지 확인한 다음 192.168.50.2에 접속합니다. 고정 주소 충돌과 관리 서비스의 수신 대기 상태를 확인하고, Xray를 바로 다시 설치하지 마세요.
SOCKS 테스트는 되는데 투명 프록시는 작동하지 않나요?
테스트 PC의 기본 경로, 투명 인바운드 포트, 해당 방화벽 규칙의 카운터, TPROXY의 마크와 정책 라우팅을 차례로 확인하세요. Xray에 요청이 도착하지 않는다면 먼저 트래픽 유입 경로를 점검하세요. 원격 노드 설정을 반복해서 바꿀 필요는 없습니다.
웹은 열리는데 음성 통화나 게임은 연결되지 않나요?
먼저 TCP REDIRECT만 설정했는지 확인한 다음 UDP 투명 인바운드, 원격 UDP 지원, 방화벽 허용 여부를 점검하세요. 브라우저가 페이지를 불러왔다고 UDP도 프록시를 거친다는 뜻은 아니며 모든 앱이 같은 경로를 사용한다고 단정할 수도 없습니다.
전원을 껐다 켜면 다시 작동하지 않는 이유는 무엇인가요?
Xray 서비스의 시작 상태, DNS 업스트림 준비 시점, 방화벽을 다시 불러온 뒤 규칙이 적용됐는지 확인하세요. logread로 시작 오류를 확인하고 도메인 초기 조회도 다시 테스트합니다. 터미널에서 한 번 수동으로 실행한 뒤 재부팅하면 사라지는 규칙에 의존하지 마세요.
트래픽을 처리할 기기를 늘릴 때 DHCP 옵션 변경을 고려하세요. 일반적인 IPv4 DHCP 옵션에서 옵션 3은 기본 게이트웨이, 옵션 6은 DNS를 지정합니다. 두 옵션에 같은 기기를 지정할 필요는 없습니다. 설정을 바꾼 뒤 클라이언트가 임대 주소를 갱신해야 하며 기존 연결은 이전 경로를 계속 사용할 수도 있습니다. 임대를 갱신한 기기 한 대부터 확인한 다음 나머지를 처리하세요.
- 기존 게이트웨이, DNS, DHCP, 방화벽 설정을 보관하고 변경 사항을 기록하세요.
- 복구할 때는 먼저 테스트 기기의 게이트웨이와 DNS를 되돌린 다음 이번에 추가한 프록시 규칙을 제거하세요.
- OpenWrt의 기본 방화벽을 유지하고 규칙 전체 삭제로 복구를 대신하지 마세요.
- 직접 연결이 복구된 것을 확인한 다음 Xray와 DNS 서비스 설정을 계속 조정할지 결정하세요.
바이패스 라우터 배포에서 중요한 것은 규칙을 많이 추가하는 일이 아닙니다. 각 계층을 따로 검증할 수 있어야 합니다. 클라이언트가 실제로 트래픽을 바이패스 라우터에 전달하는지, 방화벽이 예상한 범위만 처리하는지, DNS 조회 루프가 없는지, Xray 아웃바운드가 작동하는지, 응답 경로가 설계와 일치하는지 확인하세요. 검증을 마친 뒤 데스크톱 클라이언트에서 작동을 확인한 노드 설정을 장기 운영 설정으로 옮기면 관리하기 쉽습니다.