Apache允许/拒绝IP规则不适用于同一服务器上的OpenVPN

Apache允许/拒绝IP规则不适用于同一服务器上的OpenVPN,apache,.htaccess,openvpn,Apache,.htaccess,Openvpn,我有一个.htaccess文件,它限制对文件夹的访问。唯一允许的IP是服务器IP,我还使用密码保护文件夹: order deny,allow allow from X.X.X.X deny from all AuthUserFile /path/to/.htpasswd AuthType Basic AuthName "test" Require user username 当我使用带有动态端口转发的SSH隧道来访问文件夹(SSH-fND 1080)时,这非常有效user@host.com)

我有一个.htaccess文件,它限制对文件夹的访问。唯一允许的IP是服务器IP,我还使用密码保护文件夹:

order deny,allow
allow from X.X.X.X
deny from all

AuthUserFile /path/to/.htpasswd
AuthType Basic
AuthName "test"
Require user username
当我使用带有动态端口转发的SSH隧道来访问文件夹(SSH-fND 1080)时,这非常有效user@host.com)

现在我想在服务器上安装OpenVPN而不是SSH的情况下访问此文件夹。我在我的Debian GNU/Linux虚拟专用服务器上安装了预配置的OpenVPN访问服务器,可以连接
sudo OpenVPN--config client.ovpn
和我的VPN用户名/密码

当访问像这样的网站时,我可以看到我的服务器IP地址出现。 但是当我访问安装了OpenVPN服务器的Apache HTTP服务器时,我可以看到我的真实IP地址出现在
/var/log/apache2/access.log
中。 我没有与此服务器关联的域,希望通过服务器IP地址或主机提供商(vpsxxx.ovh.net)的默认域访问受保护的文件夹。 我的问题可能与该职位有关 但是我不使用域名来访问服务器


如果服务器使用相同的IP地址(但端口不同),HTTP服务器如何获得OpenVPN服务器IP地址而不是我的真实IP地址?

这与链接文章中的问题基本相同:如果您的OpenVPN服务器位于1.2.3.4上,而Apache服务器正在侦听相同的1.2.3.4 IP,当您连接到Apache服务器时,连接不是通过VPN路由的,而是通常通过Internet路由的。由于您没有通过VPN连接到Apache服务器,它将看到您的公共IP

一种解决方案是以某种方式将vpsxxx.ovh.net域(仅适用于您)解析为专用IP,该IP将通过VPN路由您的连接-可能使用本地DNS服务器或手动编辑本地计算机的主机文件。 如果使用这种方法,还必须使用
listenx.y.z.t

不过,也许有更好的解决办法


相关:

有人有什么想法吗?或者问题应该转移到哪里?谢谢你的帮助。安装OpenVPN访问服务器后,有两个接口as0t0和as0t1。我使用tcpdump-I as0t1进行了检查,VPN流量正在通过as0t1(专用IP:172.27.232.1/21)。我没有本地DNS服务器,所以我在服务器上编辑了/etc/hosts并添加了“172.27.232.1 vpsxxx.ovh.net”,而不是我服务器的真实IP。它使用的是Debian,在/etc/apache2/ports.conf中已经有了“Listen 80”,所以我想我不需要添加“Listen 172.27.232.1:80”(它说地址已经在使用中)。然后我只添加服务器名?(现在不工作)这应该没问题,除了一件事:它是来自本地计算机的主机文件(不是服务器的主机文件),您必须编辑它。好的,我的客户端计算机上的主机文件应该使用OpenVPN服务器172.27.232.1的私有IP?我还尝试在tun0上使用OpenVPN客户端的私有IP,但在这两种情况下,vpsXXXXX.ovh.net域在修改/etc/hosts文件后变得不可用。我不知道我升级到Debian 8的VPS服务器是否改变了什么,但我知道我在本地计算机的/etc/hosts上是否有“172.27.232.1 vpsXXXXX.ovh.net”,它正在工作!在我发布的最后一条评论中,我记得我做了同样的事情,但是vpsxxx.ovh.net域没有响应。我不需要,因为我已经需要了。然后我将
Allow from 172.27
添加到目录的.htaccess文件中,以仅允许访问VPN连接的用户。非常感谢。