前提・実現したいこと
Dockerのコンテナ内でVPN接続し、Socks5Proxyサーバ(dante)でプロキシサーバを建てたいです。
図で表すと以下のような物です。
発生している問題
VPN接続するとproxyサーバからインターネットに接続できなくなります。
症状としてはこちらの質問と似ている気がしますがネットワーク系に詳しくなく問題解決に向けて何をどのようにしたらよいかわからない状態です。
https://teratail.com/questions/58595
試したこと
- VPN接続が確立できているかテストする。
→VPN経由のIPアドレスが表示されたので問題がない。この事からVPNクライアントの問題では無い事がわかる。
$ docker build -t test . $ docker run -it --name test --cap-add=NET_ADMIN --dns 8.8.8.8 -p 1080:1080 --device=/dev/net/tun test $ docker run --rm --network=container:test alpine:3.12 wget -qO- https://ipinfo.io { "ip": "?.?.?.?", ... }
- VPN接続無しでSocks5Proxyのみで接続テストをする。
→正常に接続できた。この事からSocks5Proxyサーバの問題では無い事がわかる。
- 以下を参考にしてルートを設定する。
https://github.com/curve25519xsalsa20poly1305/docker-openvpn-tunnel/blob/b3218f010e9665bee29e82f1c25e61e321c9c6a4/entrypoint.sh#L45-L52
→ VPN接続しているにも関わらず、VPNを経由せずに接続されてしまった。
ソースコード
実行方法
docker build -t test . docker run -it --cap-add=NET_ADMIN --dns 8.8.8.8 -p 1080:1080 --device=/dev/net/tun test
Dockerfile
FROM alpine:3.12 # 必要なものをインストールする RUN apk add wget openvpn unzip dante-server RUN mkdir /app WORKDIR /app RUN wget "https://example.com/openvpn_config.zip" RUN unzip -q openvpn_config.zip COPY openvpn.sh /app/openvpn.sh COPY sockd.conf /etc/sockd.conf EXPOSE 1080 ENTRYPOINT ["/app/openvpn.sh"]
openvpn.sh
#!/bin/sh # ip # https://github.com/curve25519xsalsa20poly1305/docker-openvpn-tunnel/blob/b3218f010e9665bee29e82f1c25e61e321c9c6a4/entrypoint.sh#L45-L52 #SUBNET=$(ip -o -f inet addr show dev eth0 | awk '{print $4}') #IPADDR=$(echo "${SUBNET}" | cut -f1 -d'/') #GATEWAY=$(route -n | grep 'UG[ \t]' | awk '{print $2}') #eval $(ipcalc -np "${SUBNET}") #ip rule add from "${IPADDR}" table 128 #ip route add table 128 to "${NETWORK}/${PREFIX}" dev eth0 #ip route add table 128 default via "${GATEWAY}" # OpenVPN 起動 openvpn openvpn_config.ovpn & # Dante Server 起動 /usr/sbin/sockd
sockd.conf
logoutput: stderr internal: eth0 port = 1080 external: eth0 clientmethod: none socksmethod: none compatibility: sameport client pass { from: 0.0.0.0/0 port 1-65535 to: 0.0.0.0/0 } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 protocol: tcp udp }
補足情報(FW/ツールのバージョンなど)
- Docker desktop (Windows) 2.3.0.3(45519) stable
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。