
1 台のマシンに複数のインターフェイスを設定する必要がありますwg-quick
。どちらも実際のイーサネット NIC を直接、独立して使用します。
私が直面している問題は、これらのそれぞれを通じてインターネット全体にアクセスしたいということです。つまり、AllowedIPs = ::0
すべてwg-quick
のトラフィックがこの新しいインターフェイスを通過するように、ローカルにルートを追加したいということです。これには、後続のwg-quick
試行も含まれます。
呼び出して、「いや、 'デフォルト ゲートウェイ' ではなく、wg-quick
具体的に を使ってほしい」と伝える方法はありますか? おそらく raw を使うのでしょうか?eno1
wg
ネットでいろいろ読んでみたのですが、他の人が何を質問しているのかわからず混乱してしまいます。思われる同様の質問ですが、複数の Wireguard サービスなどをホストしていることがわかりました。
以下に、2 つの wg インターフェイスを使用した基本的な gist を示します。wg0
このインスタンスでは、wg-quick
すべてのトラフィックを透過的に盗むという通常の処理が行われていますが、wg1
使用可能なインターフェイスがあり、アプリを具体的に通信するように構成できます。
ソリューションがこのように動作するように強制されているとしてもかまいませんwg0
。「トラフィックにこのインターフェイス/IP を使用する」フラグをサポートしていないソフトウェア用に SOCKS および HTTP プロキシを設定して、同じ効果を得ることができます。
Home ║ ISP ║ Internet
║ ║
║ ║
┌─────────────┐ ║ ║
│ │ ║ ║
│ │ ║ ║ ┌───┐
│ │ ║ ║ ╔══╪
│ eno1│ ║ ║ ║ └───┘
│ wg0 ┐│ ╙────────────────╜ ║ VPN0
│ ┐ └─────────────┘ ║
│ ╞════════════════════════════════════════╝
│ ┘ ╔════════════════════════════════════╗
│ wg1 ║ ┌─────────────┐ ║
│ ╓ ║ ┘│ router ║ ┌───┐
│ ╠═══╝ │ ╓────────────────╖ ╚══╪
│ ╙ │ ║ ║ └───┘
│ │ ║ ║ VPN1
│ │ ║ ║
└─────────────┘ ║ ║
PC
「なぜ?」。私のプロバイダーはオープンポートを許可しており、基本的にローカルファイアウォールが許可しているため、パブリックにルーティング可能で、必要な数のポートでサービスをホストできました。彼らは Wireguard に移行しましたが、これは素晴らしいことですが、Wireguard 接続ごとに 1 つのオープンポートしかサポートしていません。つまり、基本的にポート転送したすべてのアプリに対して、VPN インターフェイスを起動したいのです。
これは、iptables などを使用せずに、wireguard だけを使用して可能ですか (まったく理解できません)?
答え1
はい。わかりました。表面上は解決策は、wg0が存在するかどうかに関係なく、eno1経由でVPN1に接続できるようにするという単純なものです。複数のwgインターフェースsudo ip route add $VPN1 via eno1
を持つことは完全に許可されています。::0
同じ名前空間アプリケーションが接続用のインターフェイスへのバインディング ( など) をサポートしている限り、そのうちの 1 つがデフォルト (wg0) になります。ただし、 のnetcat -s
では、このようなトンネルは 1 つしか生成できないという点に注意してください。wg-quick
Table=auto
しかし、私がこの 1 週間格闘してきたのは、そもそもこれをやりたいと思った目的、つまり、WG インターフェースに着信トラフィックを伝達させることです。
いろいろ試してみましたが、
- 単純に
wg-quick
ルートを配置した状態で複数回実行するだけです (これによりすべてが停止し、wg-quick down
ネットワーク スタックが完全に破壊されます) Table=auto
上記のように、1つは、他はで複数をスピンアップします。Table=off
wg-quick
上記のように、1つは、他はで複数をスピンアップします。wg
- 複数のスピンアップ
eno1
隠れているnamespace
(送信トラフィックではこれを機能させることさえできませんでした...) - 複数のスピンアップそれぞれ
wg
独自のnamespace
しかし、これらは(それぞれのトンネルを通る送信トラフィックに対して)機能しますが(特に明記しない限り)、これらすべてはnetcat -l -p $assignedPort
、「VPN{0,1}」に同じサーバーまたは異なるサーバーを使用しているかどうかに関係なく、着信接続を拒否しました( でテスト)ufw disable
。
ここでの解決策は私が昨日やっと見つけた魔法のソースはFwMarkwg-quick
で実行されていましたTable=auto
。
私が自分でやり方を学ぶのを避けようとしていたのは、「Wireguardだけでこれが可能か?」ということです。パケットをマークしてテーブルに関連付ける必要はありますが、何をwg-quick
するのか理解したり、模倣したり、再実装したりする必要はありません...どうやら、使用それ。
したがって、VPN0へのデフォルトトンネルを設定した後、wg-quick
FwMarkを取得し、ip route
VPN1に設定した後FwMarkを再利用する後者のwg
接続は、ルートに従って eno1 を通過しますが、VPN1 から転送された着信パケットを許可します (VPN0 のトンネルによって設定されたテーブルのおかげです)。