質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VPN

VPN(Virtual Private Network)は、仮想プライベートネットワークとも呼ばれ、インターネットに接続してるユーザー間に仮想的な通信トンネルを構築した組織内ネットワークです。認証や暗号化を用いて通信経路を保護し安全なネットワークの構築ができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

Q&A

解決済

1回答

1691閲覧

DockerでOpenVPN+Socks5の環境を作りたい

退会済みユーザー

退会済みユーザー

総合スコア0

VPN

VPN(Virtual Private Network)は、仮想プライベートネットワークとも呼ばれ、インターネットに接続してるユーザー間に仮想的な通信トンネルを構築した組織内ネットワークです。認証や暗号化を用いて通信経路を保護し安全なネットワークの構築ができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

0グッド

0クリップ

投稿2020/07/07 00:58

編集2020/07/07 01:08

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

OpenVPN起動完了後にSocks5Proxyサーバ(dante)を起動させる事で解決しました。

sockd.sh

#!/bin/sh /usr/sbin/sockd

openvpn.sh

openvpn --config openvpn_config.ovpn --script-security 2 --up /app/sockd.sh

投稿2020/07/07 06:11

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問