【运维笔记】openVPN+docker-compose部署实录

【运维笔记】openVPN+docker-compose部署实录

问题背景

需要访问另一个(堆)不能直接访问的网络服务。

思路

将两个不能互访的子网称为子网A和子网B,其中子网B的路由器有虚拟服务器的功能,可以将网内部分服务映射到外网。
现要使子网A内的主机登录VPN后能访问子网B的所有服务,因此,考虑在子网B的主机部署VPN服务端,通过虚拟服务器的功能映射VPN服务端口,完成VPN的搭建。

技术选择

基于快速部署考虑,本文选择docker+openVPN进行部署。

docker镜像

在dockerhub上找到了linuxserver发布的openvpn镜像,按照指引部署之后发现还需要做点国内的本地化适配。

dockerfile

首先在dockerfile里将apt源修改为国内镜像源,然后openvpn的软件源需要用上技术手段。

FROM linuxserver/openvpn-as:latest

# 技术手段,不然会安装不了openvpn
RUN echo 'Acquire::http::Proxy "http://192.168.2.148:10809/";\nAcquire::http::Proxy "http://192.168.2.148:10809/";'>/etc/apt/apt.conf.d/proxy.conf
# apt替换为国内镜像源
RUN echo 'deb http://mirrors.cernet.edu.cn/ubuntu/ jammy main restricted universe multiverse\ndeb http://mirrors.cernet.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse\ndeb http://mirrors.cernet.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse\ndeb http://mirrors.cernet.edu.cn/ubuntu/ jammy-security main restricted universe multiverse'> /etc/apt/sources.list

docker-compose file

基本都是linuxserver的默认配置,就是镜像换了、时区换了。

version: "3"
services:
  openvpn-as:
    build:
      context: .
    image: openvpn-as
    container_name: openvpn-as
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - INTERFACE=eth1 #网卡名,可选
    volumes:
      - <openvpn_data>:/config
    ports:
      - 943:943
      - 9443:9443
      - 1194:1194/udp
    restart: unless-stopped

一条命令即可成功部署

docker-compose up -d

部署成功后访问https://domain:943/admin即可进行网页管理,默认账号密码admin/password
overview

新增配置

在user management新增一个用户,记得编辑密码,然后就能登录了。user management

猜你喜欢

转载自blog.csdn.net/u013943146/article/details/131365858