带有 vhost 的 Apache2 服务器(位于 Zyxel USG 100 NAT/防火墙后面)不记录真实客户端 IP 地址

带有 vhost 的 Apache2 服务器(位于 Zyxel USG 100 NAT/防火墙后面)不记录真实客户端 IP 地址

解决了

为了允许 Zyxel USG 100 的 NAT 将未受影响的数据包转发到我的 Web 服务器,我编辑了 Zyxel 的策略路由。

Zyxel -> Configuration -> Network ->Routing -> Policy Route

我刚刚将“地址转换”选项从“传出接口”编辑为“无”

现在 apache 正在记录真正的外部客户端 ip 地址


解决了

早上好,朋友们

今天我遇到了一个问题,无法正确地将客户端请求记录到我的公司 Apache2 Web 服务器上

网络方案:

////////////    _                      WAN1   11.11.11.12
| INTERNET /  _/  ===> CISCO Router =======> first public ip ==> to corporate LAN
////////////                      || 
                                  || 
                                  || 
                                  || zyxel eth0 ip: 11.11.11.11
                                  || label: WAN2
                                  \/
              ZYXEL ROUTER   ___ eth0 _________________________________________________
                             |   ZYXEL                                                |
                             |   Gateway
                             |    ||                                                  |
                             |    ||                                                  |
                             |   |\/| FIREWALL (accept request from eth0/WAN2 on port |                  
                             |    ||            443/80 and forward them to LAN1)      |
                             |    ||                                                  |
                             |   |\/| NAT (forward request on 11.11.11.11:80 to       |
                             |    ||        web server on 192.168.1.10:80)            |
                             |____||__________________________________________________|
                                  *zyxel eth1 ip: 192.168.1.1, label: lan1*
                                  ||
                                  \|____________________
                                   |                    \   mysqlserver 192.168.1.20
                           ________|                    ++
  webserver 192.168.1.10  / 
                         ++

当有人(来自互联网或我的私人局域网)通过端口 80 向我的公共 IP 11.11.11.11 请求页面时,我的网络服务器会正​​确响应。但当我想检查我的网络服务器的 access.log 时,我只能看到记录的 Zyxel 路由器 IP 192.168.1.1。

我认为这是一个 NAT 问题,似乎 Zyxel 将其 IP 地址替换为到达我的网络服务器的 IP 数据包的 SRC。

我必须做什么才能正确记录带有公共客户端 IP 地址的 Web 请求?路由器是 Zyxel USG 100

这是我的 Apache2 日志配置(apache2.log)

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

这是我的 vhost 日志配置

CustomLog /var/log/apache2/xyz.com/access.log combined

谢谢

答案1

%{X-ClientSide}i 可能是您想要添加到日志格式中以获取客户端的远程地址。

相关内容