OpenVPN每个客户端为什么占用4个IP?

简介: OpenVPN每个客户端为什么占用4个IP?

对于内部系统的访问,我们也是采用了常见openVPN网络隧道方案实现业务远程访问。最近北京疫情有点严重,响应政府号召居家远程上班,openVPN的使用者也随着内部系统增多变得越来越多。

最近收到有人反馈,openVPN刚开始使用还好好的,现在连接状态也是正常的,怎么就打不开系统了呢?

听反馈说,openVPN客户端连接软件也重启了,电脑也重启了,还是打不开,听着很是诡异,于是远程看了一下openVPN客户端的连接日志如下:

看到这些的时候,也是相对纳闷的,我自己用的还好好的啊,于是重新进行了一次连接,发现连接正常,系统也能打开。还以为此时解决了,但是又收到一个相同反馈此问题的,于是就不淡定了,去服务端看了一下日志:

Tue May 10 16:11:41 2022 us=847325 4C:5E:0C:2C:F3:5A/79.234.70.105:57637 MULTI: no free --ifconfig-pool addresses are available
Tue May 10 16:11:41 2022 us=847380 4C:5E:0C:2C:F3:5A/79.234.70.105:57637 MULTI: no dynamic or static remote --ifconfig address is available for 4C:5E:0C:2C:F3:5A/79.234.70.105:57637
Tue May 10 16:11:41 2022 us=847451 4C:5E:0C:2C:F3:5A/79.234.70.105:57637 Connection reset, restarting [0]
Tue May 10 16:11:41 2022 us=847503 4C:5E:0C:2C:F3:5A/79.234.70.105:57637 SIGUSR1[soft,connection-reset] received, client-instance restarting
Tue May 10 16:11:41 2022 RADIUS-PLUGIN: BACKGROUND ACCT: Stop acct: username: 4C:5E:0C:2C:F3:5A, calling station: 79.234.70.105, commonname: 4C:5E:0C:2C:F3:5A.
Tue May 10 16:11:41 2022 RADIUS-PLUGIN: BACKGROUND ACCT: No accounting data was found for 4C:5E:0C:2C:F3:5A,79.234.70.105:57637.
Tue May 10 16:11:41 2022 RADIUS-PLUGIN: BACKGROUND-ACCT: Got accouting data from file, CN: 4C:5E:0C:2C:F3:5A in: 0 out: 0.
Tue May 10 16:11:41 2022 RADIUS-PLUGIN: BACKGROUND-ACCT: Stop packet was sent. CN: 4C:5E:0C:2C:F3:5A.

出现不少类似信息,查了一下说是没有可用的IP地址可以,但是我记的前几天出现问题通过增加了max-clients的数量解决了啊,怎么还不行呢?

# openvpn server.conf
max-clients 300

前几天出现问题时,客户端的截图:

image-20220510191557765.png

查了一下发现这个max-clients只是增加了客户端的并发连接,并不能解决问题。经过查询,发现openVPN每个客户端会占用4个IP位(openvpn-status.log)

image-20220510193406683.png

按照这样分配,单个网段连接用户只能有62个,再多就不能正常连接,那为什么是这样呢?经过一番查询,在官网的FAQ区找到了解释:

image-20220510194924288.png

那也就是说可以通过增加网段的方式来解决此类IP地址池不够用的问题,那就可以根据自己客户端使用的数量,计算出合适的掩码位即可:

image-20220510195713699.png

这样应该就足够了,但是在修改服务端掩码的时候,特别需要⚠️注意的就是iptables的变更!具体解决方案:

  1. 计算出合适的掩码/23,修改openVPN服务端配置文件处的server指令

    server 10.8.0.0 255.255.254.0
  2. 备份当前环境的iptables规则

    iptables-save > /data/backup/iptables-save.2022.05.10
  3. 添加修改掩码后的POSTROUTING

    iptables -t nat -A POSTROUTING -s 10.8.0.0/23 -o ens160 -j MASQUERADE
  4. 删除之前掩码的记录

    iptables -v -L POSTROUTING -t nat --line-numbers # 获取到记录ID
    iptables -t nat -D POSTROUTING 3 #删除记录
  5. 重启openVPN服务端即可

    /etc/openvpn/restart.sh
  6. 如果不是systemd管理的(那就做成的systemd管理的吧)或者开启自启文件中有配置服务启动脚本的,注意修改!
相关文章
|
Kubernetes Perl 容器
【kubernetes】修改集群节点中 Pod 数量限制
Kubernetes 默认每个节点只能启动 110 个 Pod,由于业务需要,将每个节点默认限制的 Pod 数量改为 200。
3846 0
|
芯片
STM32F103标准外设库——中断应用/事件控制器(七)
STM32F103标准外设库——中断应用/事件控制器(七)
1616 0
STM32F103标准外设库——中断应用/事件控制器(七)
|
7月前
|
人工智能 安全 数据库
🦞Docker 上部署 Clawdbot(Moltbot)AI助手完整步骤教程
Clawdbot是一款开源的本地优先个人AI助手,可运行在个人设备上,支持WhatsApp、Telegram、Slack、Discord等十余种通信渠道,兼容macOS、iOS、Android系统,还能渲染实时Canvas界面。其核心优势在于本地化运行带来的快速响应与隐私安全,网关仅作为控制平台,真正的助理功能聚焦于实际任务处理。本文基于Clawdbot官方文档整理,提供Docker Compose部署的完整指南,涵盖环境准备、源码获取、配置、构建、启动及运维等关键环节,补充生产环境必需的安全配置、数据持久化、备份与监控建议,且与官方配置无冲突,适用于希望通过Docker快速部署的用户。
1700 3
|
10月前
|
机器学习/深度学习 缓存 自然语言处理
30_情感分析变体详解:从极性到细粒度 - 深度解析与教学
情感分析(Sentiment Analysis),又称意见挖掘(Opinion Mining),是自然语言处理(NLP)领域的核心任务之一,旨在自动识别和提取文本中的情感信息。随着社交媒体的普及和用户生成内容的爆炸式增长,情感分析技术在商业决策、舆情监测、产品开发等领域发挥着越来越重要的作用。
846 1
|
存储 人工智能 算法
图与树的遍历:探索广度优先、深度优先及其他遍历算法的原理与实现
图与树的遍历:探索广度优先、深度优先及其他遍历算法的原理与实现
1186 0
|
弹性计算 数据中心 UED
阿里云弹性公网IP线路类型【BGP(多线)_精品】是什么意思?
阿里云弹性公网IP的BGP(多线)_精品线路是一种优化海外回中国内地流量的公网线路,具备低时延、高稳定性优势,适用于中国内地用户访问海外部署的业务,如Web服务在中国香港等地域时,可显著提升访问体验。支持按量付费和包年包月模式,地域覆盖中国香港及多个亚太地区。
2255 1
|
机器学习/深度学习 PyTorch 算法框架/工具
神经网络中的分位数回归和分位数损失
在使用机器学习构建预测模型时,我们不只是想知道“预测值(点预测)”,而是想知道“预测值落在某个范围内的可能性有多大(区间预测)”。例如当需要进行需求预测时,如果只储备最可能的需求预测量,那么缺货的概率非常的大。但是如果库存处于预测的第95个百分位数(需求有95%的可能性小于或等于该值),那么缺货数量会减少到大约20分之1。
1280 2
|
敏捷开发 监控 数据可视化
对比Jira/禅道后,我们为什么选择Leangoo做敏捷项目管理?
Leangoo团队为开发者提供敏捷开发支持:免费获取《敏捷开发指南》;支持企业私有化部署,提供专属API文档及金融、电商行业落地案例,助力研发流程自动化升级。
|
存储 Kubernetes 调度
K8S常见的持久化(存储)方案用法详解
K8S常见的持久化(存储)方案用法详解
1579 3
|
JavaScript Java 测试技术
基于SpringBoot+Vue的中小企业设备管理系统附带文章和源代码
基于SpringBoot+Vue的中小企业设备管理系统附带文章和源代码
474 0