01 기본 포트 및 실행 필드
이 필드들은 config.yaml의 최상위에 위치하며 코어의 기본 동작 방식을 제어합니다.
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| port | 숫자 | 7890 | HTTP 프록시 리스닝 포트. |
| socks-port | 숫자 | 7891 | SOCKS5 프록시 리스닝 포트. |
| mixed-port | 숫자 | 없음 | HTTP와 SOCKS5를 모두 지원하는 혼합 포트로, 이 포트만 설정하고 시스템 프록시를 여기로 지정하는 것을 추천합니다. |
| allow-lan | 불리언 | false | LAN 내 다른 기기가 이 기기의 프록시 포트에 연결할 수 있도록 허용할지 여부로, 라우터나 공유 환경에서는 활성화가 필요합니다. |
| bind-address | 문자열 | * | allow-lan과 함께 사용하며, 리스닝할 네트워크 인터페이스 주소를 지정합니다. *는 모든 인터페이스를 리스닝한다는 의미입니다. |
| mode | 문자열 | rule | 동작 모드: rule(규칙에 따라 분기), global(모든 트래픽을 동일 노드로), direct(모두 직접 연결). |
| log-level | 문자열 | info | 로그 상세도: silent / error / warning / info / debug. |
| external-controller | 문자열 | 없음 | 외부 제어 API의 리스닝 주소(예: 127.0.0.1:9090)를 활성화합니다. Dashboard 패널은 이 인터페이스에 의존합니다. |
| secret | 문자열 | 없음 | external-controller 인터페이스에 접속하는 데 필요한 키로, LAN 내에서 이 인터페이스를 공개할 때 설정을 추천합니다. |
| ipv6 | 불리언 | false | IPv6 지원을 활성화할지 여부로, IPv6 아웃바운드 연결과 규칙 매칭을 포함합니다. |
팁:
port와 socks-port를 따로 설정하지 않고 mixed-port만 사용하는 것을 추천합니다. 기억해야 할 포트 번호를 하나 줄일 수 있습니다.02 proxies 노드 필드
각 노드는 proxies 목록의 한 항목으로, 프로토콜마다 공통 필드와 각각 전용 필드가 있습니다.
| 필드 | 적용 범위 | 설명 |
|---|---|---|
| name | 공통 | 노드 이름으로, 프록시 그룹과 화면 표시에서 고유 식별자로 사용되므로 중복되지 않도록 권장합니다. |
| type | 공통 | 프로토콜 종류: ss(Shadowsocks), vmess, trojan, snell, socks5 등. |
| server / port | 공통 | 노드 서버 주소와 포트. |
| cipher | ss / snell | 암호화 방식, 예: aes-256-gcm, chacha20-ietf-poly1305. |
| password | ss / trojan / snell | 연결용 비밀번호 또는 키. |
| uuid / alterId | vmess | VMess 프로토콜 전용 식별 필드. |
| udp | 공통 | UDP 전달을 활성화할지 여부로, 게임, 음성, DNS 등 UDP 트래픽이 프록시를 거칠 수 있는지에 영향을 줍니다. |
| tls / skip-cert-verify | trojan 등 | TLS 암호화를 활성화할지, 그리고 인증서 검증을 건너뛸지 여부(자체 서명 인증서를 사용할 때 필요할 수 있음). |
| network | vmess 등 | 전송 계층 프로토콜, 예: tcp, ws(WebSocket), grpc. |
# Trojan 노드 설정 예시
proxies:
- name: "HK-01"
type: trojan
server: example.com
port: 443
password: "your-password"
udp: true
skip-cert-verify: false03 proxy-groups 프록시 그룹 필드
| 필드 | 설명 |
|---|---|
| name | 프록시 그룹 이름으로, rules에서 목표 정책으로 참조됩니다. |
| type | select(수동 선택), url-test(자동 속도 측정으로 최적 선택), fallback(장애 조치), load-balance(부하 분산), relay(다단계 연결). |
| proxies | 해당 프록시 그룹에 포함된 노드 이름 목록으로, 다른 프록시 그룹의 이름을 참조해 중첩 구조를 만들 수도 있습니다. |
| url | url-test / fallback 유형에서 사용하는 속도 측정용 주소로, 보통 가벼운 가용성 확인용 인터페이스를 사용합니다. |
| interval | 자동 속도 측정 간격(초)으로, 시간이 되면 자동으로 다시 측정합니다. |
| tolerance | url-test 유형의 허용 오차(밀리초)로, 지연 시간 차이가 이 범위 안에 있으면 노드를 자주 전환하지 않습니다. |
| use | 수동으로 나열한 proxies가 아니라 특정 Proxy Provider가 제공하는 노드 목록을 참조합니다. |
# 자동 속도 측정 프록시 그룹 예시
proxy-groups:
- name: "PROXY"
type: url-test
proxies: ["HK-01", "SG-01", "JP-01"]
url: "http://www.gstatic.com/generate_204"
interval: 300
tolerance: 5004 rules 규칙 필드
규칙의 작성 방식은 유형,매칭 내용,목표 정책으로 통일되어 있으며, 위에서 아래로 순서대로 매칭되고 일치하면 멈춥니다.
| 규칙 유형 | 예시 | 설명 |
|---|---|---|
| DOMAIN | DOMAIN,ad.example.com,REJECT | 완전한 도메인 이름에 정확히 일치. |
| DOMAIN-SUFFIX | DOMAIN-SUFFIX,github.com,PROXY | 해당 도메인과 모든 서브도메인에 일치. 가장 많이 사용됨. |
| DOMAIN-KEYWORD | DOMAIN-KEYWORD,ad-track,REJECT | 도메인에 지정된 키워드가 포함되면 일치. |
| GEOIP | GEOIP,CN,DIRECT | 목표 IP가 속한 국가/지역으로 일치. |
| IP-CIDR / IP-CIDR6 | IP-CIDR,192.168.0.0/16,DIRECT | IPv4/IPv6 주소 대역으로 일치. |
| SRC-IP-CIDR | SRC-IP-CIDR,192.168.1.100/32,DIRECT | 요청을 보낸 소스 IP로 일치. LAN 내 여러 기기의 차등 분기에 주로 사용. |
| DST-PORT / SRC-PORT | DST-PORT,443,PROXY | 목표/소스 포트 번호로 일치. |
| PROCESS-NAME | PROCESS-NAME,chrome.exe,PROXY | 요청을 보낸 프로세스 이름으로 일치. 데스크톱만 지원. |
| RULE-SET | RULE-SET,reject,REJECT | 정의된 rule-providers 규칙 세트를 참조합니다. |
| MATCH | MATCH,PROXY | 기본 규칙으로, 마지막 줄에 두어야 합니다. |
05 rule-providers 규칙 세트 필드
규칙 세트는 대량의 규칙을 원격 파일에 통합 관리하고 클라이언트가 정기적으로 가져와 업데이트함으로써 수동으로 하나씩 작성하는 번거로움을 줄여줍니다.
| 필드 | 설명 |
|---|---|
| type | http(원격 URL) 또는 file(로컬 파일). |
| behavior | domain(도메인 목록), ipcidr(IP 대역 목록), classical(완전한 규칙 문법 혼합 목록). |
| url | type이 http일 때의 원격 주소. |
| path | 규칙 세트를 로컬에 캐시하는 파일 경로. |
| interval | 자동 업데이트 간격(초). |
# 원격 규칙 세트를 정의하고 rules에서 참조
rule-providers:
reject:
type: http
behavior: domain
url: "https://example.com/reject.txt"
path: ./ruleset/reject.yaml
interval: 86400
rules:
- RULE-SET,reject,REJECT
- MATCH,PROXY팁:규칙 세트의 실제 선택 방법과 업데이트 전략에 대해서는 블로그 글 「Rule Provider 규칙 세트 완전 가이드」를 참고하세요.
06 dns와 tun 필드
dns 설정 필드
| 필드 | 설명 |
|---|---|
| enable | 코어에 내장된 DNS 서버(시스템 DNS 대체)를 활성화할지 여부로, Fake-IP와 함께 사용할 경우 활성화를 추천합니다. |
| listen | 코어 DNS 서비스의 로컬 리스닝 주소, 예: 0.0.0.0:53. |
| enhanced-mode | fake-ip 또는 redir-host로, 도메인 해석 후 규칙 기반 분기와 어떻게 연동할지를 결정합니다. |
| fake-ip-range | Fake-IP에서 사용하는 가상 주소 대역으로, 보통 충돌을 피하기 위해 프라이빗 주소 대역을 사용합니다. |
| nameserver | 일반 해석에 사용하는 상위 DNS 서버 목록. |
| fallback | nameserver의 해석 결과가 오염으로 판정될 때 사용하는 백업 DNS 목록. |
tun 설정 필드
| 필드 | 설명 |
|---|---|
| enable | TUN 모드를 켤지 여부로, 관리자/root 권한이나 시스템에서 인증된 네트워크 확장이 필요합니다. |
| stack | 네트워크 스택 구현: gVisor(사용자 공간, 호환성이 더 좋음) 또는 System(시스템 공간, 성능이 더 높음). |
| auto-route | 시스템 라우팅 테이블을 자동으로 인계할지 여부로, 켜면 라우팅 규칙을 수동으로 설정할 필요가 없습니다. |
| auto-detect-interface | 아웃바운드 네트워크 인터페이스를 자동으로 감지해 가상 네트워크 어댑터와 물리 네트워크 어댑터 간의 라우팅 충돌을 방지합니다. |
팁:TUN 모드는 Fake-IP와 함께 사용하는 것이 가장 효과적입니다. 구체적인 활성화 방법과 자주 발생하는 문제는 고급 설정 가이드를 참고하세요.