들어가며
실험실은 교내에 있지 않은데다, 실험실 네트워크 환경에서는 IP 인증 방식으로 학술 저널에 접속할 수 없습니다. 그런데 학술 저널 접속은 아주 자주 필요한 일이었습니다.
그래서 남은 해결 방법은 VPN을 통한 접속뿐이었는데, 여기에는 몇 가지 문제가 있었습니다.
- 필요할 때만 VPN에 연결하면, 이렇게 반복하다 보면 어느새 많은 시간을 낭비하게 될 수 있습니다.
- VPN을 계속 연결해 두면 네트워크를 바꿀 때마다 재연결 문제가 생기고, 사용하다 보면 연결도 안정적이지 않고 대역폭도 낮아서 사용감이 매우 나쁩니다.
- VPN이 모든 트래픽을 가로채기 때문에 VPN이 필요 없는 리소스까지 멀리 돌아 접속하게 되고, 로컬 내부망 리소스는 연결할 수 없게 됩니다.
그래서 저는 시간을 조금 들여, Surge + Snell v5 + frp + Subnet 정책 그룹을 활용해 이 문제를 번거로움 없이 해결하는 방안을 구성했습니다.
사전 준비
간단히 말하면, 전체 과정은 다음과 같은 단계로 이루어집니다.
- 교내망 환경에서 24시간 켜져 있는 서버에 Snell v5 프록시를 구축합니다.
- 교내망에서 외부로 포트를 열어 접속할 수 있게 하기가 매우 어렵기 때문에, 편의상 frp를 사용해 Snell v5 프록시를 공인 IP가 있는 서버로 터널링합니다.
- Surge for Mac이 설치된 MacBook에서 간단한 규칙을 작성한 뒤, Subnet 정책 그룹을 통해 쾌적하게 인터넷을 사용합니다.
이 방안을 직접 사용해 보고 싶다면, 다음이 필요합니다.
- 교내망 환경에서 24시간 켜져 있는 컴퓨터/서버
- macOS를 사용 중이며 Surge for Mac이 구매된 상태
- frp로 내부망 터널링을 할 수 있는, 공인 IP를 가진 안정적인 서버
예시
실제 배포는 매우 간단하니 여기서 데모를 보여드리지는 않겠습니다. 문제가 있다면 댓글에서 함께 이야기해 주세요.
번거로움 없이 사용하는 핵심은 Subnet 정책 그룹을 만드는 것입니다. 제가 사용하는 정책은 다음과 같습니다.
- 교내망(SSID: eduroam/ShanghaiTech/Jayden)에 연결되어 있으면, 이 정책 그룹의 트래픽은 직접 연결로 처리되어 교내 프록시를 거쳐 한 바퀴 돌지 않습니다.
- 위 경우를 제외하면, 이 정책 그룹의 트래픽은 모두 교내 프록시를 통해 나갑니다.

Subnet 정책 그룹
그다음에는 관련 도메인(pnas.org(PNAS), nature.com(nature), cell.com(Cell), science.com(Science) 등)을 위 Subnet 정책 그룹으로 지정하면 됩니다.
도메인 외에도 교내 일부 IP를 위 Subnet 정책 그룹으로 보내도록 지정하면 교내 리소스에 접근할 수 있습니다.

교내망 환경에서 접근해야 하는 리소스
마무리
이후에 VLESS도 리버스 프록시 기능을 지원하게 되었지만, 이미 이 방식을 오랫동안 안정적으로 사용해 왔기 때문에 더 이상 바꿔 가며 건드리고 싶지는 않았습니다. 관심 있는 분들은 한번 시도해 보셔도 좋습니다.
또한 frp를 실행하는 공인 IP 서버는 중국 본토까지의 회선 상태도 보장되어야 합니다. 그렇지 않으면 사용감이 이루 말할 수 없습니다. 이전에 홍콩에 있는 서버를 사용해 봤는데, 물리적 거리가 더 가깝다 보니 이론상 더 매끄러울 거라고 생각했습니다. 실제로는 회선 품질이 좋지 않아 어떤 때는 끊김이 심했고, 이후에는 회선 품질이 좋은 미국 서버를 사용했더니 꽤 안정적이었습니다.
사실 frp에는 다른 대안들도 있지만, 더 이상 만지작거리며 바꾸고 싶지 않아서 그냥 frp를 선택했습니다.
저와 같은 고민을 하고 있다면, 이 글이 도움이 되길 바랍니다.