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

网络 – 将一个IP转发到docker容器

发布时间:2020-12-16 03:55:22 所属栏目:安全 来源:网络整理
导读:据我所知,docker在桥接器docker0上运行具有自己的IP和完全打开的端口的容器. 假设我启动了一个容器,它有自己的IP:172.17.0.11,我有一个虚拟以太网接口eth0.1,公共IP 93.x.x.x 如何将eth0.1转发到docker容器,以便我可以通过eth0.1 IP到达容器? 我可以一次转

据我所知,docker在桥接器docker0上运行具有自己的IP和完全打开的端口的容器.

假设我启动了一个容器,它有自己的IP:172.17.0.11,我有一个虚拟以太网接口eth0.1,公共IP 93.x.x.x

如何将eth0.1转发到docker容器,以便我可以通过eth0.1 IP到达容器?

我可以一次转发所有端口吗? (也许用脚本)

如何禁用docker默认行为,以便每个容器只在docker0接口上获取IP,并且我手动设置转发?

@Xavierlucas

我把它联系起来是因为我觉得它在那里得到了更好的解释.如果检查debian配置,我将添加到/ etc / net / interfaces文件中:

post-up /sbin/ifconfig eth0:X IP.OF.FAIL.OVER netmask 255.255.255.255 broadcast IP.OF.FAIL.OVER
post-down /sbin/ifconfig eth0:X down

这样我就有了一个虚拟接口(eth0:0),它有一个由我的提供商转发的公共IP.我认为路由由提供商完成,因为我的服务器上没有其他路由或配置

注意:

有一个后续问题

why port forwarding is not working in this setup?

最佳答案
首先,您不希望一次转发所有端口,因为您不一定仍然可以访问主机.这绝对应该是一个手动过程.

我希望您的Docker容器中有一个Web服务,所以如果您希望转发,例如从您的eth0.1 IP地址到Docker容器的IP地址的端口80,您可以使用以下iptables规则;

iptables -A PREROUTING -t nat -i eth0.1 -p tcp --dport 80 -j DNAT --to 172.17.0.11:80
iptables -A FORWARD -p tcp -d 172.17.0.11 --dport 80 -j ACCEPT

然后可以根据需要为任何其他端口/ docker容器修改这些规则.

(编辑:李大同)

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

    推荐文章
      热点阅读