저는 홈랩을 준비하고 있는데 제가 하고 싶은 일 중 하나는 토렌트 클라이언트를 구축하는 것입니다. 이 기계의 하드웨어는 아무리 말해도 구식입니다. 운영체제는 우분투 서버입니다.
기본적으로 VPN을 통해 토렌트 클라이언트 트래픽을 라우팅하고 나머지는 모두 작동하도록 하고 싶습니다. 서버는 이미 openvpn 서버 인스턴스를 실행하고 있으며 거기서 클라이언트를 실행하려고 하면 문제가 발생할 수 있다고 생각합니다. 또한 라우터 역할을 하도록 별도의 시스템을 구성하고 싶지 않습니다. 지금까지 본 것 중 가장 좋은 점은 VM 내에서 클라이언트와 VPN 연결을 실행하고 VPN 트래픽만 허용하도록 VM의 라우팅을 구성하는 것입니다. 이렇게 하면 연결이 끊어져도 홈 네트워크에 암호화되지 않은 토렌트 트래픽이 없습니다.
내 질문은: bash/ubuntu에서 가상 환경을 실행하는 가장 좋은 방법은 무엇입니까? 이는 터미널 전용이어야 하며 자체와 호스트 운영 체제 간에 데이터를 전송할 수 있어야 합니다. VPN 연결이 끊어진 경우에 대비해 안전 기능을 갖춘 더 쉬운 방법이 있습니까? 감사해요.
답변1
호스트에서 실행 중인 다른 항목에 영향을 주지 않고 VPN 클라이언트를 통해 네트워크에 도달하는 애플리케이션을 실행하는 현재 작업은 Docker 컨테이너에서 프로그램을 실행하여 매우 효율적이고 유연하게 수행할 수 있습니다.
Docker에는 학습 곡선이 있지만 장기적으로 배울 가치가 있는 놀라운 기술입니다.
대략적인 단계는 다음과 같습니다.
- docker를 설치하고 hello world 예제 등을 실행하여 익숙해지세요.
- 컨테이너에서 Ubuntu 18.04와 같은 운영 체제를 인스턴스화하고 필요한 소프트웨어를 설치하여 프로토타입을 구축합니다. 컨테이너에는 이미 인터넷 액세스 권한이 있습니다.
- 완벽해질 때까지 이러한 빌드 단계를 쉽게 반복할 수 있도록 Dockerfile을 만듭니다.
- 필요할 때마다 이 이미지를 사용하여 대상 애플리케이션으로 컨테이너를 시작하세요. 컨테이너 인스턴스화는 거의 즉각적입니다.
그래서... 저는 전체 연습을 완료하고 결국 OpenVPN 클라이언트를 설정하고 Bit 토렌트 소프트웨어를 실행하기 위한 Docker 이미지를 생성하게 될 것이라는 것을 깨닫게 될 때까지 점점 더 자세한 지침을 입력했습니다.
Dockerfile과 셸 스크립트에는 약 54줄이 있습니다. 시험해보고 프로토타입으로 사용하고 싶다면 이미 GitHub에 있습니다.