mikrotik在dst-nat中更改src标头ip

问题描述

首先对我的英语不好对不起。

我有一台专用服务器,带有多个虚拟机,例如mikrotik,Nginx等。 mikrotik有2个具有公共和本地IP地址的以太网。当我将带有dst-nat的端口80和443路由到Nginx时,请求标头将源ip更改为作为网关的本地ip。因此,Nginx ip之类的某些功能限制不起作用

我的nat配置

/ip firewall nat
add action=dst-nat chain=dstnat comment="Nginx - 172.16.10.50" dst-address=\
    XXX.XXX.XXX.XXX dst-port=9522 protocol=tcp to-addresses=172.16.10.50 \
    to-ports=22
add action=dst-nat chain=dstnat dst-address=XXX.XXX.XXX.XXX dst-port=443 \
    protocol=tcp to-addresses=172.16.10.50 to-ports=443
add action=dst-nat chain=dstnat dst-address=7XXX.XXX.XXX.XXX dst-port=80 \
    protocol=tcp to-addresses=172.16.10.50 to-ports=80

add action=masquerade chain=srcnat comment=internet

解决方法

nginx proxy_params

...
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
...

+可能需要在MK上hairpin