여러 커뮤니티 웹사이트에 글이나 댓글을 남길 때 집의 IP를 남기는 건 꽤 껄끄러운 일이다. 요즘엔 IP만 알아도 집의 주소를 매우 정확하게 특정할 수 있기 때문이다. 그래서 필자도 해외에 만들어둔 리눅스 서버를 웹 프록시로 사용해 사용하곤 한다. 그래서 VPN도 사용해보고 Tailscale 같은 솔루션을 사용해보기도 했다.
하지만 정작 정착한 것은 해외 클라우드(물론 무료)에 만들어둔 리눅스 서버에 SSH를 사용해 접속하여 생성한 터널을 웹 프록시로 사용하는 것이다. 이 터널의 생성은 생각보다 간단한데 Windows에서 기본 제공하는 SSH 명령어 한줄이면 된다.
SSH 터널을 웹 프록시로 사용하는 방법은 이전 포스트에서 자세하게 다루었다.
SSH2HTTP 프록시 매니저 작성하기
리눅스 서버와 SSH 터널을 사용해 해외에 만들어둔 리눅스 서버를 웹 프록시로 사용하면서 궂이 다른 솔루션을 찾는 일은 없어졌다. 그만큼 안정성이나 속도도 웹 서핑에는 충분했다. 게다가 웹 브라우저에 설치는 프록시 관리 플러그인을 사용하면 원하는 웹사이트만 프록시를 통해 접속하고 일반 웹사이트들은 직접 접속하게 되기 때문에 더 편리했다.
단 하나의 단점은 매번 배치 프로그램을 실행해야 한다는 것이고 지금 프록시가 사용 가능한 상태인지 아닌지를 알 수 없으며 “예쁘지 않다”는 것이었다. 그래서 이 프록시를 관리하는 매니저 프로그램을 만들어 Windows 태스크바의 트레이에 넣어두고 싶어졌다. 그리고 실행된 ssh 명령어가 태스크바에 표시되지 않도록 해야 한다.
검토 결과 별도의 프레임워크나 컴파일러가 필요없는 C#으로 코딩하는 것이 가장 효율적이어서 바로 구글 제미나이와 작업에 들어갔고 한시간 만에 완성할 수 있었다.

트레이에서 실행중인 프록시 매니저에서 우클릭하면 다음과 같은 메뉴가 팝업된다.

현재 상태와 터널을 연결할 수 있는 메뉴, 터널 연결을 종료할 수 있는 메뉴 그리고 설정파일 열기, Windows 시작 시 프록시 매니저를 자동으로 실행할지를 선택하는 메뉴가 있다.
config.ini를 열면 다음의 설정을 할 수 있다.

소스코드는 github에 올려두었다.
https://github.com/taeho9/SSH2HTTP-Proxy
#ssh2http-proxy #웹프록시 #ip감추기
답글 남기기