Docker の着信トラフィックが Wireguard トンネルを介して終了しようとします。

Docker の着信トラフィックが Wireguard トンネルを介して終了しようとします。

次の質問があります。

私のサーバーにはパブリック固定IPがあります。今まではそんなに良くなった。私の計画は、Wireguardを使用してファイアウォールをバイパスし、まだパブリックIPを介してサーバーとそのサービスにアクセスできるようにすることです。ファイアウォールの制限がないため、他のサーバーをWirguardサーバーとして使用しています。 A(パブリックIPを持つサーバー)のwireguardトンネルに初めて接続すると、SSHセッションは機能しなくなります。 Aの認定IPを介してAのSSHサービスに接続できません。サーバーBと内部Wireguard IPを介してのみ接続できます。 AのパブリックIPを介してサーバーAのすべてのサービスにアクセスできるようにする方法は?特にドッカー?

私の最初の考えはこうだった。

PostUp = ip rule add from PUBLIC table main
PreDown = ip rule del from PUBLIC table main

ただし、dockerサービスにアクセスできなくなります。

sudo iptables -I FORWARD 4 -j LOG --log-prefix "RULE4:" --log-level 7Docker サービスに接続しようとした後に表示される画面です。

RULE4:IN=ens192 OUT=br-ef854b642e53 MAC= SRC=My_home_public_ip DST=172.22.0.6(docker container) LEN=64 TOS=0x00 PREC=0x00 TTL=56 ID=0 DF PROTO=TCP SPT=2300 DPT=443 WINDOW=65535 RES=0x00 SYN URGP=0

RULE4:IN=br-ef854b642e53 OUT=wireguard-peer PHYSIN=vethf2383bb MAC= SRC=172.22.0.6 DST=My_home_public_ip LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=TCP SPT=443 DPT=2300 WINDOW=65160 RES=0x00 ACK SYN URGP=0

私には次のようになります。

私-> A->回答->Wireguard->何もなし

しかし、もっと似ているはずです。

私-> A->回答->私

他のすべてのトラフィックの場合:

A ->ラインバッカー

答え1

これはまさに私が望むものではありませんが、これは一時的な解決策です。

https://github.com/BrodyBuster/docker-wireguard-vpn

このスクリプトを使用すると、--networkコンテナ:コンテナ名を使用せずに正しいポート転送を使用せずに、一部のコンテナをVPNトンネルに接続できました。コンテナがトンネルにアクセスする必要がある場合は、VPNネットワークをコンテナに追加するだけです。

追加の注:

まず、ホストwireguardとdocker wireguardを同時に起動できません。スクリプトを修正すればアーカイブできると思います。しかし、時にはホストシステムにトンネルが必要な場合もあります。この間、数分間Dockerトンネルをオフにしてホストトンネルを有効にできます。

次に、この構成は再起動後も維持されません。ホストの再起動後にコンテナが起動し、トンネルが有効になっているように見えてもコンテナにアクセスできません。再起動後、スクリプトを解放して再実行する必要があります。これは少し迷惑なことです。

関連情報