首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当OpenVPN客户端连接到服务器时,如何获得它的公共IP?

当OpenVPN客户端连接到服务器时,如何获得它的公共IP?
EN

Server Fault用户
提问于 2021-05-14 19:16:19
回答 1查看 1.2K关注 0票数 0

当客户端连接到我的服务器时,我需要知道它的公共IP (也就是ISP的IP)。我尝试了learn-address脚本,但它没有提供真正的IP。目前,可以从OpenVPN日志文件(模式:MULTI: Learn: 10.2.1.5 -> client-5/27.147.X.Y:34244)获得它。

服务器运行一个繁忙的星号PBX。因此,频繁地解析日志是效率低下的(当日志文件的大小变得很大时,情况会变得更糟)。

每当客户端从不同的IP连接/重新连接时,我都需要更新数据库。我需要一个简单的解决办法。

确切地说,我需要将inner ip映射到OpenVPN隧道的outer ip

注:我在tun模式下使用来自CCD文件的静态分配的IP地址(例如,10.2.1.5作为通用名称客户端-5)。

EN

回答 1

Server Fault用户

发布于 2021-05-15 09:36:06

好了搞定了。我是从脚本执行过程中的环境变量OpenVPN传递中找到的。

我检查了ifconfig_pool_remote_iptrusted_ip环境变量。

下面是OpenVPN在客户端连接时执行的代码。

代码语言:javascript
复制
#!/usr/bin/env php

但是,在我在variables_order = "EGPCS"中添加/etc/php.d/99-env.ini之前,环境变量是不可访问的(我创建了这个文件)。

虽然它需要将script-security 2和client-connect /my/script/path.php添加到OpenVPN服务器配置文件中,但它解决了我的问题。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1063587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档