현재 터미널에서 VPN을 활성화하는 명령

현재 터미널에서 VPN을 활성화하는 명령

저는 리눅스 민트 19.3을 사용하고 있습니다.

나는 달리고 싶다두 가지 인스턴스youtube-dl.

모든 트래픽이 terminal 1통과해야 함일반 네트워크.

모든 트래픽이 terminal 2통과해야 함VPN.

할 수 있는 명령이 있나요?terminal 2향후 모든 명령에 VPN 연결을 사용 하시겠습니까 ?즉, 할 수 있는 명령이 있습니까?terminal 2향후 모든 명령에 VPN 연결을 사용하도록 지시하시겠습니까 ?

내가 찾은Unix 프로그램을 특정 네트워크 인터페이스에 바인딩, 그러나 특정 프로그램이 아닌 향후 실행되는 모든 프로그램에 특정 터미널의 VPN을 바인딩하고 싶습니다.

내가 원하는 것은 터미널을 열고 youtube-dl일반 연결을 사용하여 작업을 실행하는 것입니다. 그러나 명령을 통해 VPN을 활성화하고 실행하면 VPN 연결을 통해 작동합니다 youtube-dl.youtube-dl

따라서 가능한 최종 결과는 동일한 프로그램의 두 인스턴스입니다. 하나는 일반 네트워크를 통해, 다른 하나는 VPN을 통해 네트워크 선택이 실시간이고 미리 정의되지 않습니다(라우팅 테이블 등을 통해).

도구를 찾았어요VPN, 그러나 이것이 내가 찾고 있는 것인지 아니면 더 나은 해결책이 있는지 확실하지 않습니다.

답변1

"향후의 모든 명령에 VPN 연결을 사용하도록 터미널 2에 지시"할 수 없습니다.

그러나 새네트워크 네임스페이스, 해당 네임스페이스에서 VPN을 실행하거나 VPN 네트워크 인터페이스를 해당 네임스페이스로 이동한 다음(아마도 적절한 방식으로 기본 네트워크 네임스페이스 및/또는 물리적 네트워크 인터페이스에 연결한 후) 이 네트워크에서 이름을 지정합니다. 공간을 확보하고 모든 명령이 VPN(및 VPN 연결만)을 사용하여 연결되도록 합니다.

Google에는 네트워크 네임스페이스에 대한 많은 튜토리얼이 있습니다. 필요한 주요 명령은 다음과 같습니다 ip netns. 또한 네트워크 네임스페이스에 연결하려면 네트워킹 기본 사항에 대해서도 충분히 알아야 합니다.

예, vpnns매우 유사하게 작동합니다.

답변2

귀하가 요청한 질문은 이미 StackExchange에 답변되어 있습니다.Unix 프로그램을 특정 네트워크 인터페이스에 바인딩. App-Route-Jail을 사용하는 솔루션이 이 문제를 해결할 것이라고 믿습니다. 나는 터미널 창을 VPN에 정확하게 바인딩할 수는 없지만 프로그램이 실행될 때 특정 네트워크 인터페이스를 사용하도록 강제할 수 있다고 생각합니다.

도움이 된다면 올바른 명령 인수를 사용하여 youtube-dl에 대한 래퍼 셸 스크립트를 생성하여 VPN을 사용하도록 하고 터미널 2에서 해당 셸 스크립트를 사용하여 VPN과 작업할 수 있습니다.

이러한 쉘 스크립트의 예(Bash와 같은 POSIX 쉘 필요)

#!/bin/bash
MARK=10 LD_PRELOAD=./mark.so /path/to/youtube-dl "$@"

이를 위해서는 두 개의 실행 파일에 의존해야 합니다. 하나는 항상 일반 네트워크를 통해 실행되고 다른 하나는 항상 VPN을 통해 실행됩니다.

관련 정보