現在の端末でVPNを有効にするコマンド

現在の端末でVPNを有効にするコマンド

私はLinux Mint 19.3を使用しています。

走りたい2つのインスタンスyoutube-dl

すべてのトラフィックがterminal 1通過する必要がある一般ネットワーク

すべてのトラフィックがterminal 2通過する必要があるVPN

できるコマンドがありますか?terminal 2将来のすべてのコマンドにVPN接続を使用しますか?つまり、できるコマンドはありますか?terminal 2将来のすべてのコマンドにVPN接続を使用するように指示しますか?

私が見つけたUnixプログラムを特定のネットワークインタフェースにバインドするしかし、特定のプログラムではなく、今後実行されるすべてのプログラムに特定の端末のVPNをバインドしたいと思います。

私が望むのは、端末を開き、youtube-dl通常の接続を使用してタスクを実行することです。ただし、コマンドでVPNを有効にして実行すると、VPN接続を介して機能しますyoutube-dlyoutube-dl

したがって、考えられる最終結果は同じプログラムの2つのインスタンスです。 1つは通常のネットワークを介し、もう1つは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 "$@"

これを行うには、2つの実行可能ファイルに依存する必要があります。 1つは常に通常のネットワークを介して実行され、もう1つは常にVPNを介して実行されます。

関連情報