PAC 규칙으로 여러 프록시를 쉽게 사용

4384 단어 proxypactutorial
검열이나 제재로 차단된 웹사이트의 콘텐츠를 보기 위해 프록시를 사용합니다.

그러나 항상 프록시를 사용하면 차단되지 않은 웹 사이트 작업이 약간 느려집니다. 프록시로 열 수 없는 내부 웹사이트(예: 은행 웹사이트)도 있습니다. 또한 내 직업을 위해 내부 URL을 열려면 ssh 터널 연결이 필요합니다.

이러한 프록시 사이를 수동으로 전환하는 것은 정말 피곤할 수 있습니다. 몇 가지 조사 끝에 PAC(프록시 자동 구성) 파일 설정과 같은 상황에 대한 솔루션을 찾았습니다.

PAC는 확장자가 FindProxyForUrl.pac라는 함수로 구성된 자바스크립트 파일입니다.

function FindProxyForURL(url, host) {
    if (host === 'a.com') {
        return 'DIRECT';
    } else if {host === 'b.com') {
        return 'SOCKS5 127.0.0.1:1081';
    }
    return 'SOCKS5 127.0.0.1:1080';
};

PAC 파일을 사용하도록 프록시 설정을 구성하면 주소를 열 때마다 브라우저가 이 기능으로 URL을 확인하여 사용할 프록시를 찾습니다. 그러나 이와 같은 함수를 작성하고 자주 변경하는 것은 복잡하고 오류가 발생하기 쉽습니다.

그래서 이 파일을 만들기 위해 PacGen이라는 명령줄 도구를 만들기로 결정했습니다. 여기에서 작업하는 방법을 보여 드리고자 합니다.

먼저 pip를 사용하여 설치합니다.

pip install pacgen

그런 다음 .yml 파일의 ~/.pacgen.yml 형식으로 규칙을 정의합니다. 이 파일은 4개의 세그먼트로 구성됩니다.
  • proxies 각 프록시 서버에 이름이 할당된 프록시 서버를 정의합니다.
  • routes 일부 특정 호스트에 대해 미리 정의된 경로 목록입니다.
  • excludes 프록시 없이 탐색하려는 호스트 목록입니다.
  • default_proxyroutes에도 없고 excludes에도 없는 호스트의 기본 프록시 이름입니다.

  • 다음은 ~/.pacgen.yml 파일의 예입니다.

    proxies:
      ssh_tunnel: socks5://127.0.0.1:1081
      shadowsocks: socks5://127.0.0.1:1080
      httpproxy: http://127.0.0.1:1082
    routes:
      172.19.20.10: ssh_tunnel
      youtube.com: shadowsocks
      viemo.com: shadowsocks
      news.com: httpproxy
      analytics.google.com: shadowsocks
    default_proxy: shadowsocks
    excludes:
      - bank.com
      - google.com
    

    규칙을 정의하고 파일을 저장한 후 터미널에서 아래 명령을 실행해야 합니다.

    updatepac
    

    그런 다음 이 경로에 PAC 파일을 생성합니다: ~/.proxy.pac .

    이제 pac 파일을 만들었으므로 웹 서버와 함께 제공할 차례입니다. 가장 간단한 방법은 nginx를 사용하는 것입니다.

    sudo apt install nginx
    sudo cp ~/.proxy.pac /var/www/html/proxy.pac
    

    귀하의 파일은 http://localhost/proxy.pac 에서 제공됩니다.
    이제 시스템 프록시 설정으로 이동하여 자동 프록시 옵션을 선택하고 위의 주소를 Configuration URL 필드에 복사하십시오. 그게 다야.

    좋은 웹페이지 즐겨찾기