约 124 字 预计阅读 1 分钟
nginx正向代理透传IP实验
实验目的
实验准备
实验场景
- nginx 通过代理插件进行正向代理,通过proxy_connect_bind实现代理ip透传。
实验流程
- https流量通过A转发到B。
- A:负责对https代理进行解密。揭秘后通过http隧道将https流量转发到B服务上。
- B:负责对https流量进行解密,并进行流量的安全检查,后续再转发给目标服务器C。
安装nginx,并配置正向代理
数据包打标记忆
1
2
3
|
#将源地址为192.168.1.33源端口为8081的数据包做标记
iptables -t mangle -A PREROUTING -p tcp --src 192.168.1.33 --sport 8081 \
-j MARK --set-xmark 0x1/0xffffffff
|
1
2
3
4
5
|
# 新增路由表,表id为100,将所有ip数据路由到32机器
# NOTE: 以下两条ip命令设置的route和rule都需要保存到/etc/rc.local中,以便在开机时启动
ip route add local 0.0.0.0/0 dev lo table 100
# 2.3 为标记为1的ip数据使用路由表100
ip rule add fwmark 1 lookup 100
|
安装nginx,并配置正向代理
数据包打标记忆
1
2
3
|
#将源地址为192.168.1.33源端口为8081的数据包做标记
iptables -t mangle -A PREROUTING -p tcp --src 192.168.1.33 --sport 8081 \
-j MARK --set-xmark 0x1/0xffffffff
|
1
2
3
4
5
|
# 新增路由表,表id为100,将所有ip数据路由到32机器
# NOTE: 以下两条ip命令设置的route和rule都需要保存到/etc/rc.local中,以便在开机时启动
ip route add local 0.0.0.0/0 dev lo table 100
# 2.3 为标记为1的ip数据使用路由表100
ip rule add fwmark 1 lookup 100
|
实验结果
- 实验最后是成功了。这个实验反复做了很多遍。之前一直不成功。
- 之前不成功的时候,在nginx转发数据时,监听ip地址我用的一直是127.0.0.1,实验一直不通。后面换成内网ip就成功了。