加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何使Docker容器看到真正的用户IP?

发布时间:2020-12-16 03:39:34 所属栏目:安全 来源:网络整理
导读:问题 在nginx-proxy Docker容器内部(下面有更多信息),我总是看到每个连接都有相同的IP地址:172.18.0.1(这是nginx-proxy网络网关).例如: nginx.1 | www.my-site.tld 172.18.0.1 - - [28/Nov/2017:17:22:21 +0000] "GET /some/path HTTP/2.0" 200 46576 "htt

问题

在nginx-proxy Docker容器内部(下面有更多信息),我总是看到每个连接都有相同的IP地址:172.18.0.1(这是nginx-proxy网络网关).例如:

nginx.1    | www.my-site.tld 172.18.0.1 - - [28/Nov/2017:17:22:21 +0000] "GET /some/path HTTP/2.0" 200 46576 "https://www.my-site.tld/some/path" "Mozilla/5.0 (Linux; Android 4.4.2; PSP5507DUO Build/KVT49L) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/61.0.3163.100 YaBrowser/17.10.0.446.00 Mobile Safari/537.36"

无论我是从外部网络,本地机器,还是从服务器(主机)本身发出请求,IP地址始终为172.18.0.1.

我需要的是看到真正的客户端IP.

试图解决

我搜索了很多,并尝试了不同的解决方案,但没有一个适合我.我尝试了以下方法:

>禁用firewalld(当然,在这种情况下什么都不起作用)
iptables是空的);
>使用–userland-proxy = false(没有运气);
>使用–net = host(根本不是解决方案,也不起作用).

相关链接:

> https://github.com/jwilder/nginx-proxy/issues/130
> https://github.com/jwilder/nginx-proxy/issues/133

那么,有什么想法吗?似乎是iptables路由问题或内部Docker错误.无论如何,它肯定与Docker有关,因为以下显示正确的远程用户IP:

[root@server]# nc -lv 12345

[user@remote-client]$nc -vz MY.IP.ADDRESS.HERE 12345

很奇怪!

现在我将提供有关系统的完整信息,请耐心等待.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读