
私はインターネット接続を 2 つ持っています。1 つのインターネット接続はレイテンシが非常に高く、接続に変動があります (タワーと Wi-Fi CPE の間に木があるため、信号が上下します) が、接続が 0 になることはないため、ダウンロードには問題ありません。もう 1 つは固定電話接続で、ダウンロード制限が厳しくなっています。
私が望んでいるのは、Steam やダウンロードなど、基本的に大量のデータを消費するプログラムなど、いくつかの特定のプログラムに wlan0 を使用することです。
そして、ブラウジングやその他の用途には、データ量が少ない wlan1 を使用したいと思います。
つまり、特定のプログラムを特定の NIC 経由でルーティングしたいのですが、特定の範囲の IP はありません。
余分な Wi-Fi アダプター (wlan0、wlan1) が 1 つあるので、両方を Wi-Fi 経由で接続できます。別のオプションとして、イーサネット (wlan0、eth0) で接続することもできます。
答え1
プロセスに何かがあれば可能かもしれないiptables
特定のグループなどと一致できます。たとえば、グループが指定されている場合to-wifi
、次のような iptables ルールを設定できます。
iptables -A FORWARD --in-interface wlan0 -j ACCEPT
iptables -t nat -A OUTPUT -m owner --gid-owner to-wifi --out-interface wlan0 -j MASQUERADE
(転送を有効にすると、次のようになりますsysctl -w net.ipv4.conf.all.forwarding=1
。)
次に、たとえば Steam を次のように実行します。
sg to-wifi steam
その Steam プロセス (および子プロセス) からのすべてのトラフィックは、ワイヤレス インターフェイスを経由していたインターフェイスから転送されます。
インターフェイス間のリダイレクトを試したことはありませんが、iptables
グループと照合して Steam からプロキシにすべての TCP トラフィックをリダイレクトしたことがあるため、これらのルールだけでは不十分な可能性があります。
これは、各インターフェースごとにグループを作成し、そこに自分自身を追加することで実現できます。たとえば、addgroup
そしてadduser
コマンド:
sudo addgroup to-wifi
sudo adduser $USER to-wifi
sudo addgroup for-eth0
sudo adduser $USER for-eth0
新しいグループ メンバーシップを有効にするには、再度ログインする必要があります。
関連している:
答え2
私の知る限り、そうする方法はありません。
これは、特定のiptablesルールで実行できます。ポート+ 接続に使用する目的地ですが、それをローカルで行う方法は知りません。