2017-03-13 31 views
1

我有一个码头安装程序,它禁用了iptables的默认篡改行为。因此,通过指定ufw的规则,我可以允许或阻止特定的端口连接到外部世界,所有的工作都非常好。直到我发现无法访问访问该网站的客户端的真实IP的问题。我看到的是我的容器中的172.0.0.1,它是IP docker0网络。具有真实IP的码头工人和UFW

我发现了一个解决方案,让我下面添加到我的iptables

iptables -t nat -A PREROUTING ! -i docker0 -p tcp --dport 80 -j DNAT --to-destination 172.17.0.7:80 

其中172.17.0.7是代理容器的IP。现在的问题是,如果IP发生重新启动,这个IP往往会发生变化,然后我的规则将不再有效。

有没有解决这个问题的任何优雅的方式,而不必在静态IP分配到容器的路线上,如果有可能的话。

让我知道你是否需要查看我的设置的更多细节。我很高兴发布他们。

+0

如果此offtopic可以有人将此移动到相关的论坛?我不知道为什么我们甚至有docker,ubuntu,ufw和iptables标签,如果我不能发布与此相关的问题。 – Deepak

回答