• Home
  • About
    • Software Study Diary photo

      Software Study Diary

      좌충우돌 얼렁뚱땅 개발과 공부를 위한 블로그

    • Learn More
    • Email
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects
  • Drive

광고차단용 프록시 서버 만들기

16 Apr 2025

Reading time ~1 minute

[2025-04-16] 광고차단용 프록시 서버 만들기


이제 와서 말하지만 나는 광고가 싫다.

그렇다고 광고 차단 앱을 돌리면 꼬물딱지 핸드폰이라 문제고, 그냥 좀만 참자니 내가 졌다는 기분이 들어서 기분이 나쁘다.

그렇게 삽질 끝에 찾은 게 이거다.

cloudflare-gateway-pihole-scripts

클라우드플레어에서 Zero Trust를 설정하고, 생성된 URL을 DNS에 연결하는 방식이다. 나는 리포지토리 파일을 긁어와서 GitHub Actions로 필터를 주기적으로 자동 업데이트하도록 세팅했고, 결과적으로 잘 굴러간다.

하지만… 클라우드플레어는 DOQ(QUIC) 를 지원하지 않는다.
이럴때는 클플이 참 묘한데서 보수적이다. 그렇다면 또 방법을 찾아야 하지 않겠는가.


오라클 무료 서버를 활용하자

찾아보니 오라클 클라우드에서 무료로 인스턴스를 하나 띄울 수 있다.
그래서 생각했다.
“오라클 서버에 중계 서버를 만들어서 DOQ도 받아주면 되잖아?”

그 김에 도메인도 연결하고, 국가별 중계 서버도 하나씩 만들어보자! 라는 원대한 꿈까지 품고 작업을 시작했다.


구상도는 이렇다

클라이언트 
  ↓
도메인 서버 (Oracle)
  ↓
국가별 중계 서버
  ↓
Cloudflare Zero Trust (광고 필터)

사실 도메인 서버에서 바로 클플로 연결해도 되긴 한다.
근데… 이렇게 하면 멋있잖아.


구축 과정 (요약)

고생 끝에 결국 세팅 성공. 지금 구성은 다음과 같다.

  1. 현재 IP를 주기적으로 확인해서 변경되면 도메인 자동 갱신
  2. 일정 주기로 서버 재부팅
  3. 도메인 서버에서 중계 서버로 자동 스크립트 배포 및 실행
  4. dnsproxy를 이용해 DOH, DOT, DOQ 연결 가능

연결 포트 정리

  • DOH: 1000번 포트부터
  • DOT: 2000번 포트부터
  • DOQ: 3000번 포트부터

각 포트는 중계 서버로 연결된다.
포트를 지정하지 않으면 도메인 서버로 바로 연결되는데, 이 경우에는 DOQ는 불가능하다.


실패

해외 서버를 운용하려고 했는데 그건 무료가 아니어서 호다닥 종료했다.

해외 서버로 접속하면 검열을 우회할 수 있지 않을까 했지만 그것도 아니었고.


최종 결과

지금까지 테스트해 본 바로는

  • 광고 차단
  • 연결 안정적
  • 서버 자동화

전부 정상적으로 돌아간다.

이 정도면 만족한다.



포트폴리오 Share Tweet +1