
コンテナを実行しているサーバーのリモートIPであるVPNを介してルーティングされる発信トラフィックを持つDockerコンテナにアクセスしようとしています。以下のテスト環境でイカサーバーにアクセスするには、リバースプロキシを使用する必要があります。リバースプロキシなしでVPNコンテナにポートを公開すると、openvpnのルーティングによって要求が応答せずに中断されます0.0.0.0/1 via 10.8.8.1 dev tun0
。
netstat #inside vpn
tcp 0 0 :::3128 :::* LISTEN
tcp 0 0 ::ffff:172.17.0.2:3128 ::ffff:{remote_ip}:49936 SYN_RECV
リモートIP接続を介して特定のポートへのリターンパスを提供するには、VPNコンテナ内にどのルールまたはパスを追加する必要がありますか?各オープンポートを指定せずに、サーバーのリモートIPのすべての接続に対してグローバルルールを使用すると、これを達成できますか?これらのルールは、VPNを介してルーティングする必要がある追加のコンテナからのトラフィックを妨げてはいけません。
よろしくお願いします!
version: "3.4"
services:
vpn:
container_name: vpn
image: dperson/openvpn-client
cap_add:
- net_admin
volumes:
- /dev/net:/dev/net:z
- ./vpn.ovpn:/vpn/vpn.conf
dns:
- 1.1.1.1
#ports:
# - "3128:3128"
vpn_squid:
image: sameersbn/squid
volumes:
- ./squid.conf:/etc/squid/squid.conf
depends_on:
- vpn
network_mode: "service:vpn"
tcp_proxy:
container_name: tcp_proxy
image: tecnativa/tcp-proxy
environment:
LISTEN: ":3128"
TALK: "vpn:3128"
ports:
- "3128:3128"
networks:
default:
答え1
ip rule add from 172.22.0.3 lookup 10
ip route add default via 172.22.0.1 table 10
これは成功しました。ここで、172.22.0.3はVPNコンテナのIPです。
に基づいてこれ答え。