ドッカーを経由してのOpenVPNサーバセットアップ

外部のサーバ・ネットワークIP:47 * * * ...

サーバー:CentOSに7.4

クライアント:Windowsの10

それについてドッカーのない話をインストールするには

1.環境変数の設定

#Viは/ etc / profileを、参加します

輸出OVPN_DATA =「ovpnデータ」

#sourceは/ etc / profile

2.ファイル名を指定して実行]ドッキングウィンドウは、CAを作成し、ネットワークIP外でのサーバのUDPサーバーに戻すことを忘れないでください

docker volume create --name $OVPN_DATA
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_genconfig -u udp://47.*.*.*
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn ovpn_initpki

ここ3.実行OpenVPNのサービスは、後でこのコンテナでサービスを行います、次のことを実行して、一時的なものであり、

docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn

クライアント証明書の生成4.

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass

使用するため、クライアント証明書をエクスポート5.時にWindowsコンピュータへのクライアント接続、このCLIENTNAME.ovpnダウンロード

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn

6. Windowsクライアント、ダウンロードアドレスでOpenVPNGUIをインストールし、パスワードを抽出することである123456

リンクします。https://pan.baidu.com/s/1HbtcY7Cz2-BPczCF9Sm4zQ 
抽出コード:4d51 

 

インストールが完了したら7は、ステップ5は、ユーザーのディレクトリ内のファイルをダウンロード

 

8.を実行し、クライアントが接続されているになることができます

 9.あなたが一緒にシステムを起動できるように、理由はシステムの実行コンテナサービスを作る必要のオフコンテナキルを実行する前に。

#docker PS | grepをopenvpnの

[ルート@ iZm5e30c4bdxfgvx0gk1onZ〜]#ドッキングウィンドウのps | grepをオープン
fb6679320e93 kylemanna / openvpnのを:6時間最大6時間0.0.0.0:1194->1194/udp ovpnサーバ前に、最新の"ovpn_run"

#docker stop fb6679320e93        

10. vi /etc/systemd/system/[email protected], 把下面的内容粘贴到文件中

#
# Docker + OpenVPN systemd service
#
# Author: Kyle Manna <[email protected]>
# Source: https://github.com/kylemanna/docker-openvpn
#
# This service aims to make the update and invocation of the docker-openvpn
# container seemless.  It automatically downloads the latest docker-openvpn
# image and instantiates a Docker container with that image.  At shutdown it
# cleans-up the old container.
#
# In the event the service dies (crashes, or is killed) systemd will attempt
# to restart the service every 10 seconds until the service is stopped with
# `systemctl stop docker-openvpn@NAME`.
#
# A number of IPv6 hacks are incorporated to workaround Docker shortcomings and
# are harmless for those not using IPv6.
#
# To use:
# 1. Create a Docker volume container named `ovpn-data-NAME` where NAME is the
#    user's choice to describe the use of the container.
# 2. Initialize the data container according to the docker-openvpn README, but
#    don't start the container. Stop the docker container if started.
# 3. Download this service file to /etc/systemd/service/[email protected]
# 4. Enable and start the service template with:
#    `systemctl enable --now [email protected]`
# 5. Verify service start-up with:
#    `systemctl status [email protected]`
#    `journalctl --unit [email protected]`
#
# For more information, see the systemd manual pages.
#
[Unit]
Description=OpenVPN Docker Container
Documentation=https://github.com/kylemanna/docker-openvpn
After=network.target docker.service
Requires=docker.service

[Service]
RestartSec=10
Restart=always

# Modify IP6_PREFIX to match network config
#Environment="IP6_PREFIX=2001:db8::/64"
#Environment="ARGS=--config openvpn.conf --server-ipv6 2001:db8::/64"
Environment="NAME=ovpn-%i"
Environment="DATA_VOL=ovpn-data"
Environment="IMG=kylemanna/openvpn:latest"
Environment="PORT=1194:1194/udp"

# To override environment variables, use local configuration directory:
# /etc/systemd/system/[email protected]/local.conf
# http://www.freedesktop.org/software/systemd/man/systemd.unit.html

# Clean-up bad state if still hanging around
ExecStartPre=-/usr/bin/docker rm -f $NAME

# Attempt to pull new image for security updates
ExecStartPre=-/usr/bin/docker pull $IMG

# IPv6: Ensure forwarding is enabled on host's networking stack (hacky)
# Would be nice to use systemd-network on the host, but this doens't work
# http://lists.freedesktop.org/archives/systemd-devel/2015-June/032762.html
ExecStartPre=/bin/sh -c 'test -z "$IP6_PREFIX" && exit 0; sysctl net.ipv6.conf.all.forwarding=1'

# Main process
ExecStart=/usr/bin/docker run --rm --cap-add=NET_ADMIN -v ${DATA_VOL}:/etc/openvpn --name ${NAME} -p ${PORT} ${IMG} ovpn_run $ARGS

# IPv6: Add static route for IPv6 after it starts up
ExecStartPost=/bin/sh -c 'test -z "${IP6_PREFIX}" && exit 0; sleep 1; ip route replace ${IP6_PREFIX} via $(docker inspect -f "{{ .NetworkSettings.GlobalIPv6Address }}" $NAME ) dev docker0'

# IPv6: Clean-up
ExecStopPost=/bin/sh -c 'test -z "$IP6_PREFIX" && exit 0; ip route del $IP6_PREFIX dev docker0'

[Install]
WantedBy=multi-user.target

11. 启动服务

systemctl enable --now [email protected]

 12. 检查服务状态

systemctl status [email protected]

13.再次尝试用客户端连接,应该可以连接成功。 

发布了20 篇原创文章 · 获赞 1 · 访问量 1万+

おすすめ

転載: blog.csdn.net/lwlfox/article/details/104238980