뜻이 있는 곳에 길이 있다고.. proxy에 막혀 아무것도 할 수 없는 상황에서 http proxy를 통해서 외부로 연결할 수 있는 방법이 있다는 것을 알았다.
사용할 수 있는 기본 환경은 이렇다.
- 22번 포트가 막혀있다. (아마 다른 대부분의 포트가 막혀있다.)
- Browser에 http proxy 설정을 해야 web 서핑을 할 수 있다.
- 리눅스를 쓴다.
서버 설정
서버 설정은 별다른게 없다. sshd를 22번으로 열어놔도 괜찮고, 혹시 22번 포트 검사를 할까 싶으면 443번 포트로 sshd를 열어둔다. (https로 속아줄지도 모르니까..) 또는 공유기에서 443 -> 22로 포트포워딩을 추가해도 된다.
특정 장소에서
리눅스에서 필요한 패키지를 설치한다.
$ sudo apt-get install corkscrew
그리고 ~/.ssh/config 파일에 다음과 같은 라인을 추가해준다.
host my.host.com
ProxyCommand /usr/bin/corkscrew proxy.server.com [proxy_port] %h %p
이렇게 설정한 후에 ssh my.host.com 이라고 입력하면 22번 포트로 my.host.com에 연결이 된다. (my.host.com에 연결할 때만 이렇게 proxy를 사용한다.) 혹시 443번 포트로 변경을 했다면 ssh my.host.com -p 443 이라고 입력하면 된다.
ssh 연결이 되었으니 -D 옵션을 사용하여 포트 포워딩은 덤으로 할 수 있다. 이제 특정 장소의 방화벽을 우회하여 어디든 접속할 수 있다. 🙂