IPTables:将请求从主机重定向到虚拟机中的 Docker 容器

IPTables:将请求从主机重定向到虚拟机中的 Docker 容器

首先,让我解释一下我的设置:我在 macOS 上的虚拟机中安装了 Ubuntu 14.04。在 VirtualBox 设置中,我创建了一个 NAT 网络,并为 Ubuntu 提供了以下 IP 地址:192.168.56.101。在 Ubuntu 内部,我安装了 Docker。我创建了一个 Docker 容器,它运行一个监听的 python 服务器127.0.0.1:5001。Docker 文件公开了端口5001,以便可以从外部访问它。我还添加了以下 iptable 规则:

IPT=/bin/iptables
$IPT -P OUTPUT ACCEPT
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -A PREROUTING -p tcp -i eth1 --dport 5001 -d 192.168.56.101 -j DNAT --to 127.0.0.1:5001

现在,当我尝试从主机或 Ubuntu 连接它时,它显示连接被拒绝。有人能告诉我这里的问题是什么吗?

答案1

我通过添加此规则解决了我的问题:

$IPT -t nat -A OUTPUT -p tcp --dport 5001 -j DNAT --to-destination 127.0.0.1:5001

相关内容