有个问题请教一下,“AF做了双向地址转换后如何让内网Nginx

新手374327 478

{{ttag.title}}
有个问题请教一下,“AF做了双向地址转换后如何让内网Nginx获取到转换前的公网地址”现在Nginx上看到的全是防火墙的IP地址,要怎样才能把真实的来源公网IP发给Nginx,Nginx就可以做实时记录日志,后续用于分析了。

解决该疑问,预计可以帮助到 18523 人!

回帖即可获得
2S豆
,被楼主采纳即奖励20S豆+10分钟内回帖奖励10S豆 [已过期] ,了解更多S豆奖励信息

完善手机号和公司名称,让服务更省心更便捷!立即完善

信子_ 发表于 2025-11-13 09:45
  
双转那条,限制源ip-只允许内网ip范围用公网地址访问;
互联网侧过来的访问走目的转;
这样,从nginx上看到的,防火墙ip就是内网的pc,公网ip就是互联网的了。
带派 发表于 2025-11-13 09:57
  
在Nginx中配置X-Forwarded-For(XFF)头,传递真实IP地址。
小鱼学安全 发表于 2025-11-13 09:59
  
防火墙上
1. 【网络配置】→【路由】→【策略路由】
2. 添加策略路由:
   - 源区域:外部区域
   - 目的区域:内部区域  
   - 服务:HTTP/HTTPS
   - 动作:透明代理
3. 确保NAT规则中源地址转换选择"不转换"
许久昌 发表于 2025-11-13 11:49
  
配置2条地址转换,一条目的地址转换(公网过来的)放到上面。另一条内网过来的,正常配置双向地址转换,放到第一条下面。
王老师 发表于 2025-11-14 13:04
  
推荐方案:启用NAT日志中的X-Forwarded-For
原理:
通过AF的NAT策略配置,将公网源IP插入到HTTP请求头的X-Forwarded-For字段中,Nginx直接读取该字段即可获取真实IP。此方案无需修改应用代码,兼容性最佳。

操作步骤
配置AF的NAT策略
登录AF管理界面,进入【策略】-【NAT策略】-【新建】。
在源地址转换或目的地址转换规则中,勾选“添加X-Forwarded-For头部”选项(不同版本AF可能表述略有差异,如“记录真实源IP到HTTP头”)。
确保规则匹配内网Nginx的公网访问流量(如入站方向)。
配置Nginx读取X-Forwarded-For
修改Nginx配置文件(通常为nginx.conf或虚拟主机配置文件),在server或location块中添加:
nginx
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
重启Nginx服务:

systemctl restart nginx
王老师 发表于 2025-11-14 13:08
  
使用TOA(TCP Option Alignment)模块(适用于Linux内核)
原理:
TOA模块通过修改Linux内核,将公网源IP封装在TCP选项中传递,Nginx通过TOA模块解析后获取真实IP。此方案适用于高安全性场景,但需内核支持。

操作步骤
在AF上启用TOA功能
进入AF的【系统】-【高级设置】-【TOA设置】,勾选“启用TOA功能”。
确保AF与内网Nginx服务器之间的网络设备(如交换机)未过滤TCP选项字段。
在Nginx服务器上安装TOA模块
下载TOA模块:从深信服官方或开源社区获取适配当前Linux内核版本的TOA模块源码(如toa.ko)。
加载模块:
bash
insmod toa.ko  # 加载模块
echo "toa" > /etc/modules-load.d/toa.conf  # 设置开机自启
验证模块:
bash
lsmod | grep toa  # 检查模块是否加载成功
配置Nginx读取TOA解析的IP
修改Nginx配置,将$remote_addr替换为TOA解析的IP变量(需Nginx编译时支持TOA模块,或通过第三方补丁实现)。
若使用开源TOA补丁,配置示例:
nginx
log_format main '$toa_real_ip - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent"';
access_log /var/log/nginx/access.log main;
验证结果
访问Nginx服务,检查日志中$toa_real_ip字段是否为真实公网IP。

等我来答:

换一批

发表新帖
热门标签
全部标签>
新版本体验
功能体验
纪元平台
标准化排查
每日一问
安装部署配置
产品连连看
每周精选
GIF动图学习
网络基础知识
高手请过招
上网策略
【 社区to talk】
安全效果
问题分析处理
迁移
秒懂零信任
社区新周刊
2025年技术争霸赛
声音值千金
信服课堂视频
畅聊IT
答题自测
专家问答
技术笔记
技术圆桌
在线直播
MVP
升级
安全攻防
测试报告
日志审计
流量管理
每日一记
运维工具
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
排障笔记本
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
2023技术争霸赛专题
卧龙计划
华北区拉练
天逸直播
以战代练
技术晨报
平台使用
技术盲盒
山东区技术晨报
文档捉虫
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
西北区每日一问
升级&主动服务
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力
专家说
热门活动
产品动态
行业实践
产品解析
关键解决方案
工具体验官

本版版主

37
45
47

发帖

粉丝

关注

0
3
1

发帖

粉丝

关注

本版达人

新手61940...

本周建议达人

BGP网络

本周分享达人

BGP网络

本周提问达人