
解決了
為了允許 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 位址正確記錄網路請求?路由器是 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
這是我的虛擬主機日誌配置
CustomLog /var/log/apache2/xyz.com/access.log combined
謝謝
答案1
%{X-ClientSide}i 可能是您想要新增至日誌格式以取得客戶端的遠端位址的內容。