우수한 소프트웨어와 실용적인 튜토리얼
HomeProxy를 사용하여 처음부터 인터넷을 서핑하는 방법
Sing-Box는 일반적으로 사용되는 유연한 프록시 클라이언트입니다.라우터네트워크 프록시 구성은 Sing-Box 클라이언트에서 수행되며, HomeProxy는 사용자에게 사용하기 쉬운 프록시 관리 인터페이스를 제공합니다. Sing-Box 클라이언트와 HomeProxy를 결합하면 사용자는 라우터에 글로벌 프록시를 구현하여 LAN에 연결된 모든 장치가 동일한 프록시 서비스를 공유하도록 할 수 있습니다. 구성 과정에는 Sing-Box 클라이언트 설치, 프록시 프로토콜 및 서버 정보 설정, 그리고 HomeProxy에서 프록시 관리 및 모니터링이 포함됩니다. 이 솔루션은 네트워크 개인 정보 보호를 향상시킬 뿐만 아니라 지리적 제한을 우회하고 네트워크 연결 속도를 최적화합니다.
luci-app-homeproxy는 OpenWrt 23.05 이상에서 실행 가능한 Sing-Box 클라이언트입니다. homeproxy를 기반으로 재개발된 버전입니다. homeproxy의 포크(fork)로, 선택자, URL 테스트, 규칙 세트 및 충돌 기능을 지원하며, 사용자 지정 라우팅에 특화되어 있습니다.
Socks5, HTTP(S)와 호환섀도우삭스, Vmess, Trojan, Wireguard, Hysteria(2), Vless, ShadowTLS, TUIC 및 기타 프로토콜을 지원하고 유연한 규칙 구성을 통해 정책 프록시를 구현합니다.
OpenWrt 플랫폼을 위한 단일 박스 프록시 도구인 HomeProxy는 뛰어난 성능, 풍부한 프로토콜 지원 및 세부적인 전환 전략 구성을 갖춰 점차 라우터 프록시 도구 중 가장 선호되는 도구가 되었습니다.
HomeProxy 설치
HomeProxy 라우팅 시스템 버전은 OpenWrt 23.05 이상 또는 ImmortalWrt 23.05 이상이 필요하며, 방화벽 4만 지원합니다. 이 칩은 ARM64/AMD64를 지원합니다.
다운로드 주소:https://github.com/douglarek/luci-app-homeproxy/releases/tag/2024050500
HomeProxy 설치는 비교적 간단합니다. 해당 "ipk" 소프트웨어 패키지를 다운로드한 후, 라우터의 "시스템" -> "소프트웨어 패키지" 인터페이스로 이동하여 "소프트웨어 패키지 업로드"를 클릭하고 다운로드한 ipk 파일을 라우터에 업로드하여 설치합니다. HomeProxy 자체는 다른 종속 소프트웨어 패키지가 필요하지 않으며 직접 설치할 수 있습니다. 하지만 프록시 모드로 작동하기 때문에 "ip-full"과 "kmod-tun"을 사용해야 하며, 그렇지 않으면 제대로 작동하지 않습니다. 라우터의 소프트웨어 패키지 관리 도구를 사용하여 목록을 업데이트하고 이 두 소프트웨어 패키지를 직접 설치하세요.
HomeProxy가 성공적으로 설치되면 라우터 서비스 메뉴에 "HomeProxy" 메뉴 항목이 추가됩니다. 설치 후에도 표시되지 않으면 라우터를 다시 시작하세요.
홈프록시 구성
HomeProxy의 메인 인터페이스에 들어가면 위에서 아래로 두 줄의 탭 레이블이 표시됩니다. 첫 번째 줄은 "클라이언트 설정", "노드 설정", "서버 설정", "서비스 상태"이고, 두 번째 줄은 첫 번째 레이블 행의 세부 설정입니다.
메인 인터페이스는 HomeProxy의 실행 상태를 표시합니다. "제어판 열기" 버튼을 클릭하면 Clash 웹 UI 패널과 유사한 웹 도구인 metacubexd 콘솔이 열립니다. 이 콘솔은 HomeProxy의 실행 상태뿐만 아니라 노드 및 라우팅 규칙과 같은 정보를 표시하는 데 사용됩니다.
"클라이언트 설정" 탭은 sing-box가 프록시 클라이언트로 사용될 때 구성 항목을 설정하는 데 사용되며, 이는 HomeProxy의 핵심 기능이기도 합니다.
"노드 설정" 탭은 프록시 노드를 추가하는 데 사용되며, 수동이나 구독을 통해 추가할 수 있습니다.
"서버 설정" 탭은 싱글박스 프록시 서버의 구성 항목을 설정하는 데 사용됩니다. 라우터를 프록시 서버로 설정하기 위해 프록시 프로토콜을 시작하고 추가할 수 있습니다.
"서비스 상태" 탭에서는 실시간 로그를 표시하고 연결 테스트를 수행하여 과학적으로 인터넷에 성공적으로 접속할 수 있는지 확인할 수 있습니다.
클라이언트로서 HomeProxy의 구성 논리는 먼저 노드를 추가한 다음 클라이언트를 구성하고 마지막으로 구성이 제대로 작동하는지 확인하기 위해 연결 테스트를 수행하는 것입니다.
노드 추가
"노드 설정"에는 "노드"와 "구독"이라는 두 개의 탭이 있으며, 이를 통해 노드를 수동으로 추가하거나 구독을 통해 추가할 수 있습니다.
"구독" 탭에는 구독 노드를 추가하기 위한 몇 가지 구성 항목이 있습니다. "구독 주소"에 프록시 공항의 구독 주소를 추가하면 구독 주소가 구성 항목에 추가됩니다. "자동 업데이트", "프록시 업데이트 사용", "안전하지 않은 연결 허용"과 같은 설정은 실제 사용 필요에 따라 확인하고 완료하면 됩니다. 모든 구독을 추가한 후 "저장 및 적용"을 클릭하면 구독 주소에 있는 프록시 노드가 노드 목록에 추가됩니다.
"노드" 탭에는 싱글박스 구성의 "아웃바운드" 항목에 해당하는 모든 프록시 노드가 나열됩니다.
이 시점에서 공유 링크를 가져오거나 수동으로 추가하여 노드 콘텐츠를 추가할 수도 있습니다.
입력 상자에 노드 이름을 입력한 후 "추가" 버튼을 클릭하여 노드를 수동으로 추가합니다.
"유형" 드롭다운 박스에서 노드의 프로토콜 유형을 선택한 후, 프로토콜에 해당하는 설정 항목에 맞춰 해당 구성 내용을 입력하고, 마지막으로 "저장"을 클릭하면 수동 노드 추가가 완료됩니다.
"Selector"와 "URLTest"는 sing-box가 지원하는 두 가지 유형의 그룹 노드로, 각각 프록시 수동 선택과 자동 테스트 선택입니다. 그룹 노드는 여러 기존 노드를 하나의 가상 노드로 그룹화하고, 해당 선택 전략을 통해 그룹에서 특정 노드를 선택하여 최상의 결과를 얻습니다. 그룹 노드는 실제 상황에 따라 추가됩니다. 노드가 적거나 세부적인 라우팅 전략이 있는 경우에는 설정하지 않을 수도 있습니다.
드롭다운 상자의 "직접 연결" 항목이 HomeProxy의 "아웃바운드" 구성 항목에 사용되는 경우 노드에 "직접 연결" 유형의 노드를 추가해야 합니다. 그렇지 않으면 sing-box가 아웃바운드 경로를 찾을 수 없어 HomeProxy가 실패하고 실행이 중지됩니다.
클라이언트 설정
클라이언트 구성은 HomeProxy에서 가장 복잡한 부분인데, 그 이유는 단일 박스 구성이 너무 세부적이기 때문입니다. 실제로 HomeProxy는 구성을 여러 범주로 분류하여 구성의 복잡성을 크게 줄였습니다. 몇 가지 기본 설정 항목만 주의하면 모든 기능을 갖춘 클라이언트 구성을 독립적으로 완료할 수 있습니다.
그림 1에서 볼 수 있듯이 HomeProxy의 클라이언트 설정에는 "라우팅 설정", "라우팅 노드", "라우팅 규칙", "규칙 세트", "DNS 설정", "DNS 서버", "DNS 규칙", "액세스 제어" 및 "제어판"의 9개 항목이 포함되어 있습니다.
HomeProxy의 클라이언트 설정은 라우팅, DNS, 제어판의 세 부분으로 나눌 수 있으며, 규칙 세트는 라우팅과 DNS 모두에서 사용되는 규칙 항목입니다. HomeProxy에는 다음과 같은 기본 제공 규칙 세트가 있으므로, 특별한 필요가 없다면 규칙 세트 부분을 설정하지 않고 기본 제공 규칙 세트를 바로 사용할 수 있습니다.
- hp-geoip-cn
- hp-geoip-private
- hp-지오사이트-cn
- hp-geosite-microsoft-cn
- hp-지오사이트-넷플릭스
- hp-geoip-netflix
"규칙 세트"는 라우팅 규칙과 DNS 규칙에 대한 조건 항목이므로 먼저 설정해야 하며 나머지 내용은 왼쪽에서 오른쪽으로 설정하며 기본적으로 큰 문제는 발생하지 않습니다.
규칙 세트를 수동으로 추가하려면 "규칙 세트" 탭의 입력 상자에 규칙 세트 이름을 입력한 다음, 추가 버튼을 클릭합니다. 그러면 규칙 세트 추가 페이지가 나타납니다.
규칙 세트에는 로컬 규칙 세트 파일과 인터넷에서 제공되는 규칙 세트 파일, 즉 로컬과 원격의 두 가지 유형이 있습니다. 로컬 규칙 세트는 파일 경로를 필요로 하는 반면, 원격 규칙 세트는 규칙 세트 파일에서 액세스하는 URL과 지정된 아웃바운드 노드를 필요로 합니다. 규칙 세트 파일은 소스 주소 형식과 바이너리 형식으로 구분되는데, 소스 주소 형식은 텍스트 형식, 바이너리 파일 형식을 나타내며 규칙 세트 파일 자체와 관련이 있습니다. 형식이 올바르지 않으면 HomeProxy는 해당 규칙을 참조한 후 실행을 중단합니다. 규칙 세트를 추가하려면 인터넷에서 해당 규칙 세트 파일을 찾아 추가할 수 있습니다.
규칙 집합을 추가하면 라우팅 및 DNS 설정을 진행할 수 있습니다.
먼저 경로를 설정합니다. 경로 설정 항목은 경로 설정, 경로 노드, 경로 규칙의 세 부분으로 나뉩니다. 이 중 경로 설정은 단일 박스 경로 구성의 기본 규칙 설정입니다. 경로 노드는 경로 규칙에서 사용할 프록시 노드를 경로 항목으로 식별하는 콘텐츠입니다. 경로 규칙은 규칙 조건에 따라 다양한 트래픽에 대한 해당 접근 규칙을 설정하여 트래픽 분산 목적을 달성하고 프록시 사용 경험을 향상시킵니다.
라우팅 설정은 다음과 같이 설명됩니다.
- 라우팅 모드: HomeProxy의 작동 모드입니다. 사용자 지정 라우팅 모드만 사용할 수 있습니다.
- 라우팅 포트: 프록시 가능한 포트 트래픽을 지정하는 데 사용됩니다. 모든 포트를 선택하거나 기본 공통 포트만 사용할 수 있습니다.
- 프록시 모드: HomeProxy의 작동 모드를 지정하는 데 사용됩니다. 기본값은 모든 TCP/UDP를 전달하며, 5030, 5031, 5333 트래픽을 전달합니다. 물론, Sing-Box에 대한 충분한 이해를 바탕으로 다른 모드를 사용할 수도 있습니다.
- IPv6 지원: HomeProxy가 IPv6 네트워크를 지원하는지 여부를 설정하는 데 사용됩니다. 이 설정은 해제하는 것이 좋습니다. 여기서 "지원 안 함"을 설정해도 이후 IPv6 라우팅 규칙 설정에는 영향을 미치지 않습니다.
- 중국 트래픽 우회: 방화벽 규칙을 사용하여 트래픽 NAT를 방화벽을 통해 직접 전달하여 HomeProxy의 성능 소모를 줄일지 여부를 설정합니다. 필요에 따라 활성화 여부를 선택하세요.
- 대상 주소 덮어쓰기: 스니핑된 도메인 이름을 사용하여 연결 대상을 덮어쓸지 여부를 설정하고, DNS 오염을 방지합니다. 필요에 따라 활성화 여부를 선택할 수 있지만, 활성화하지 않는 것이 좋습니다.
- 기본 아웃바운드: 기본 아웃바운드 트래픽 경로를 설정하는 데 사용됩니다. 이 경로는 아웃바운드 트래픽이 모든 라우팅 규칙과 일치하지 않을 때 백업으로 사용되는 아웃바운드 경로입니다. 기본 동일 스테이션 옵션이 "비활성화"되어 있으면 HomeProxy가 작동하지 않습니다.
그 후, 라우팅 노드를 설정합니다. 추가된 라우팅 노드는 라우팅 설정의 기본 아웃바운드 항목에 드롭다운 목록으로 표시됩니다. 하지만 시스템에는 기본적으로 직접 연결과 차단, 두 개의 라우팅 노드가 포함되어 있습니다. 이는 매우 까다롭습니다. 라우팅 노드가 올바르게 설정되지 않으면 HomeProxy가 전혀 시작되지 않고 로그에도 알 수 없는 내용이 표시되므로 설정 시 세부 사항에 더욱 주의하시기 바랍니다.
앞서 언급했듯이 라우팅 노드는 프록시 노드와 라우팅 노드 간의 연결을 설정하는 프로세스입니다. 모든 프록시 노드는 해당 라우팅 노드를 설정하고 이를 아웃바운드 경로로 사용할 수 있습니다. 이미 추가된 라우팅 노드는 노드 목록에 표시됩니다. 새 노드를 추가해야 하는 경우 입력란에 라우팅 노드 이름을 입력하고 "추가" 버튼을 클릭하면 다음과 같은 "노드 추가" 페이지가 나타납니다.
라우팅 노드를 추가할 때는 아웃바운드 프록시 노드를 선택하고 나머지는 기본값으로 유지한 후 '저장'을 클릭하여 라우팅 노드를 추가합니다. 특별한 요구 사항이 있는 경우 설정을 조정할 수 있지만, 이는 sing-box 구성 파일을 완전히 이해한 후에 이루어져야 하며, 그렇지 않으면 실수하기 쉽습니다.
라우팅 노드가 설정되면 라우팅 규칙을 설정할 수 있습니다. 라우팅 규칙을 추가하려면 입력란에 라우팅 규칙 이름을 입력하고 '추가'를 클릭하여 라우팅 규칙 설정 페이지로 이동하세요. 설정할 수 있는 옵션이 많으므로, 이 예시에서는 규칙 세트에서 중국 본토 IP와 웹사이트만 선택하고, 일치하지 않는 콘텐츠는 '선택 방지' 기능을 사용하여 표시하며, 프록시 아웃바운드에는 "route_Default" 라우팅 노드를 사용합니다.
라우팅 규칙을 설정한 후 "저장" 버튼을 클릭하여 라우팅 규칙을 추가합니다. 성공적으로 추가된 라우팅 규칙은 라우팅 페이지에 나열됩니다.
라우팅 규칙에는 순서가 있습니다. 위의 규칙들은 단일 박스 구성 항목의 차단, 직접 연결 및 다양한 유형의 아웃바운드 노드에 따라 먼저 매칭됩니다. 아웃바운드 유형인 직접 연결을 사용하는 규칙의 경우, 아웃바운드 노드를 직접 연결로 설정하여 라우팅 규칙을 설정해야 합니다. 이 예에서는 빠른 트래픽을 차단하도록 규칙을 설정했지만, 규칙을 적용하기 위해 차단 노드를 설정할 필요는 없습니다.
더 자세한 라우팅 규칙은 개인의 필요에 따라 설정할 수 있습니다. 복잡한 라우팅 규칙 조건의 조합에 따라, 정확한 우회를 위해 애플리케이션별로 다른 아웃바운드 경로를 설정할 수 있습니다. 이 예시에서는 더 자세한 설정을 제공하지 않습니다. 일반적인 규칙 설명은 빠른 트래픽 차단, 중국 본토의 웹사이트 및 IP, 그리고 규칙 세트에 포함된 사설 IP는 직접 접근, 기타 트래픽은 프록시를 통해 접근하는 것으로 요약할 수 있습니다. 이 프록시 접근은 노드 그룹을 사용하여 URL 테스트를 통해 최적의 노드를 선택합니다.
그런 다음 DNS를 설정하세요. 프록시는 많은 DNS 쿼리를 수행해야 하고, DNS는 여러 서버를 사용할 수도 있으므로 신중하게 설정해야 합니다.
DNS를 설정하려면 먼저 해결 전략 및 기타 콘텐츠를 설정해야 합니다.
DNS 확인 전략과 기본 DNS 서버를 설정한 후, 필요에 따라 DNS 캐시 비활성화 여부를 선택하세요. 모든 설정이 완료되면 구성을 저장하여 기본 DNS 항목을 설정하세요.
국내 DNS 서버는 일부 웹사이트의 잘못된 확인에 문제가 있으므로, 일반적으로 해외 서버의 도메인 이름 요청을 처리하기 위해 여러 대의 DNS 서버를 설정해야 합니다. DNS 서버 탭을 열고 입력란에 DNS 서버 이름을 입력한 후, "추가" 버튼을 클릭하여 DNS 서버 설정 페이지로 이동합니다.
이 예제에서는 GOOGLE TCP DNS 서버(DoT)를 추가합니다. 일반 DNS 요청은 UDP를 통해 전송되므로, 아웃바운드 경로가 프록시 노드이고 해당 프록시 노드가 UDP 전달을 지원하지 않으면 도메인 이름 확인이 실패합니다. 따라서 TCP를 사용하여 DNS 서버에 연결합니다. 구성 항목의 "주소 확인자"는 도메인 이름이 DNS 서버로 사용되는 상황(예: https://dns.alidns.com/dns-query)을 처리하기 위한 것입니다. 따라서 이 DNS 서버의 도메인 이름을 확인하려면 주소 확인자를 사용해야 합니다.
모든 DNS 서버가 성공적으로 추가되면 해당 정보가 DNS 서버 탭 목록에 표시됩니다.
마지막으로 DNS 규칙을 설정합니다. DNS 규칙은 DNS 서버에 접속할 때 사용되는 라우팅 규칙과 확인 규칙입니다. 라우팅 설정과 마찬가지로, 정확한 DNS 규칙 항목을 설정하려면 여러 조건을 적절히 조합해야 합니다. 모든 규칙이 설정되면 DNS 탭 목록에 표시됩니다. DNS 규칙 설정의 내용은 라우팅 규칙과 유사하므로 여기서는 자세히 설명하지 않겠습니다.
위 설정을 완료하면 HomeProxy의 주요 설정이 완료됩니다. 접근 제어 및 제어판은 웹 UI 페이지를 통해 설정됩니다. 특별한 설정이 없으면 기본값을 그대로 사용하세요.
HomeProxy 사용
HomeProxy의 사용 방법은 다른 프록시 클라이언트와 다르지 않으며, 시작 후 정상적으로 사용할 수 있습니다.
서비스 상태 탭으로 이동하면 HomeProxy와 sing-box의 동작 로그를 볼 수 있으며, 내부 및 외부 네트워크 웹사이트의 테스트 버튼을 클릭하면 프록시가 제대로 작동하는지 확인할 수 있습니다.
sing-box를 호출하는 HomeProxy의 수신 정보를 확인하면 5330, 5331, 5333 포트를 수신하고 있음을 알 수 있습니다. 이 중 5330은 HTTP와 SOCKS 프록시를 모두 지원하는 혼합 포트입니다. 브라우저의 네트워크 프록시를 라우터의 IP 주소로 설정하고 5330 포트를 사용하여 HomeProxy를 통해 인터넷에 접속하기만 하면 됩니다. 다른 모드도 사용법은 비슷합니다.
이제 HomeProxy 사용에 대한 자세한 튜토리얼이 완료되었습니다. 이 튜토리얼이 HomeProxy와 sing-box의 설정 로직과 세부적인 조정 방법을 이해하는 데 도움이 되기를 바랍니다. 이를 통해 훌륭한 프록시 도구의 편리함을 온전히 누리실 수 있기를 바랍니다.