通过openvpn+ 动态DDNS域名 的方式来实现,通过绑定公网IP地址在域名上,实现VPN 的访问。
OpenVPN Access Server 是一个基于 OpenVPN 技术构建的企业级虚拟私人网络(VPN)解决方案。它提供安全的远程访问功能,使员工或用户能够通过互联网安全地连接到公司内部网络,确保数据传输的安全性和隐私。
简单来说,OpenVPN Access Server 是一个专为企业设计的 VPN 解决方案,它既安全又易于管理,适用于需要远程访问的公司和团队。
docker pull docker.cnb.cool/srebro/docker-images/openvpn-openvpn-as:latest
-cap-add=NET_ADMIN:对容器赋予NET_ADMIN权限,容器可以配置和管理的控制网络配置权限;容器内的 /openvpn目录通常保存 OpenVPN 服务相关的配置文件和密钥,这里需要数据卷持久化挂载;
映射容器的943 端口 1194 (tcp) 端口到宿主机的 943 端口 1194 (tcp) 端口
version: '3'
services:
openvpn-as:
image: docker.cnb.cool/srebro/docker-images/openvpn-openvpn-as:latest
container_name: openvpn-as
restart: always
cap_add:
- NET_ADMIN
ports:
- "943:943"
- "1194:1194/udp"
volumes:
- /home/application/openvpn:/openvpn #数据卷持久化挂载
docker-compose up -d
docker exec -it openvpn-as bash
sacli --user "openvpn" --new_pass "srebro@2024" SetLocalPassword
之前有分享过如何 使用 DNSpod来 实现动态域名解析、本文不再细说
具体参考见: https://srebro.cn/archives/1721891072677
有了域名之后,我们就可以去配置openvpn 的配置,把他监听在域名上,这里演示的域名是 vpn.srebro.cn
Username: openvpn
Password: srebro@2024
填写配置好的DDNS 域名;
根具自己的配置自定义openvpn 的内网IP段,我这里演示的是 192.168.66.0/24 子网段
我家中网络都是192.168.31.0 网段,这里需要填写需要下发的子网地址 (一行写一个网段)
指定DNS 地址为 114.114.114.114
Username: openvpn
Password: srebro@2024
(1)、连上openvpn后,本地内网ip却ping不通了
禁止客户端互联网流量通过VPN路由出去上网,即可解决。
(2)、连上openvpn后,无法上网,但可以ping外网IP
设置推送指定的DNS地址给客户端
(3)、连上openvpn后,无法访问服务器资源
没有设置允许访问VPN内网的地址