先看官网: 点击跳转

如果有问题,也别来问我,我也不懂,下面自己感悟一下,或者有iptables的大佬,欢迎指教

还有什么问题,想咨询的,加群:582337768。 这个群不是我的,但是我在里面,但是还是那句话,我也不懂。

然后开始了, 首先使用DOCKER-USER的chain来进行操作。

DOCKER-USER该chain在ubuntu下面,除非重启服务器,不然就不会被重置。但是在firewalld下面(RHEL项目),由于firewalld会操作到该链,所以需要自己去验证。

容器的限制,主要是限制容器内的端口,而不是限制转发后的端口,可以通过 iptables -L FORWARD -nv 查看,还可以查看 DOCKER 的chain。

# 下面的操作限制的是80端口,而不是8001,其中8001是NAT网络转发出来的,限制不了。
# 启动一个容器,通过网桥映射端口对外
docker run -itd -p 8001:80 nginx
# 自己查看一下容器的网桥的地址断,下面的其实是比较暴力的方式,直接限制了172.16到172.31的网段了
# 拒绝所有请求的访问
iptables -I DOCKER-USER -p all -d 172.16.0.0/12 -j DROP
# 可以加上虚拟网络接口,这样就可以不需要同意 docker0对应的网段了,不然下面还是需要同意一下的
#iptables -I DOCKER-USER ! -i docker0 -d 172.16.0.0/16 -j DROP
# 这个命令就是tcp的连接状态,主要是容器请求外网使用
iptables -I DOCKER-USER -p all -d 172.16.0.0/12 -m state --state RELATED,ESTABLISHED -j ACCEPT
# 允许访问,集群内互通
# 允许docker访问,这里配置12网段,理想情况是 根据现场环境进行配置,默认一般是172.16.0.0/16
iptables -I DOCKER-USER -p all -s 172.16.0.0/12 -j ACCEPT
# 允许IP地址的访问
iptables -I DOCKER-USER -p all -s 192.168.1.12 -j ACCEPT

需要注意一下,如果用compose启动的程序,容器的IP地址和使用的虚拟网桥、网卡设备又变化了,所以可能需要对应的操作修改。

反正要么-d参数指向, 要么用 ! -i br-xxxsdas 的方式。 自己研究一下吧

docker如何利用iptables限制外网访问的更多相关文章

  1. docker安装redis并允许外网访问

    拉取redis镜像 docker pull redis:3.2 本地新建redis配置文件 redis.conf ,写入以下内容 #允许外网访问bind 0.0.0.0 daemonize NO pr ...

  2. 阿里云centos7搭建docker,拉取镜像外网访问不通的问题排查

    最近新买了一个阿里云服务器,用docker安装了mysql,外网死活连接不上我的mysql,最终经过一顿猛百度查问题,找出问题根源.对这次查问题过程中出现的问题也有一些心得,也小小记录一下复盘总结. ...

  3. 使用iptables禁止外网访问tomcat的8080端口

    如果项目同时使用了nginx反向代理服务器和tomcat等web服务器,并且两台服务器都暴露于公网中,那么通常我们会禁止外网直接访问tomcat,因为以下原因: 1.如果可以直接访问tomcat,那么 ...

  4. centos7下配置iptables实现外网访问内网服务器

    说明:Centos 7 默认的防火墙是 firewall,安装iptables之前需关闭Firewall 外网机器:外网ip:120.25.71.183内网ip:10.1.1.23 内网机器:内网ip ...

  5. iptables禁止外网访问redis server服务默认端口6379的命令

    //只允许127.0.0.1访问6379 iptables -A INPUT -s 127.0.0.1 -p tcp --dport 6379 -j ACCEPT //其他ip访问全部拒绝 iptab ...

  6. docker redis安装及配置(外网访问 关闭安全限制 设置密码)

    docker run -p 6379:6379 --name redis -v /usr/local/redis/etc/redis.conf:/etc/redis/redis.conf -v /us ...

  7. centos使用docker安装redis ,并设置外网访问

    拉取镜像 docker pull redis:4.0 在主机/data/redis/conf目录下新建redis.conf文件vim /data/redis/conf/redis.conf # Red ...

  8. 重启服务器后Docker容器暴露的端口外网突然访问不了!!

    *:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...

  9. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  10. iptables后,外网访问网站可以,内网无法访问【已解决】

    最近,到处看到有人问这个问题,怎么以前没人问,现在这么多人问呢?前两天我还在华为的论坛上仔细的说了这个问题,现在复制到这边来.希望能帮助大家理解这个问题. 这是个理论问题,我们先从NAT讲起:NAT有 ...

随机推荐

  1. 未能加载文件或程序集“System.Runtime.WindowsRuntime, Version=4.0.14.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项。不应出于执行的目的加载引用程序集。只能在仅限反射的加载程序上下文中加载引用程序集。 (异常来自 HRESULT:0x80131058)

    VS项目编译时报错: 未能加载文件或程序集"System.Runtime.WindowsRuntime, Version=4.0.14.0, Culture=neutral, PublicK ...

  2. Wondows11安装 Docker Desktop 教程

    环境准备 确保电脑BIOS里面开启了虚拟化,可以任务管理器里面查看 启用wondows虚拟化支持 控制面板-程序-启用或关闭wondows功能 这里如果是家庭版,可能没有Hyper-v,没有就不勾 或 ...

  3. MySQL核心知识学习之路(5)

    作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习<MySQL实战45讲>的总结笔记的第五篇,总结了MySQL索引相关的实践使用问题. 上一篇:MySQ ...

  4. vue快速入门~必备基础知识(一)上

    和JQ完全操作dom不同,他是通过一些特殊的html语法,将dom和数据绑定,创建了这种绑定,DOM和数据保持同步,js处数据一更新,dom自动更新. vue.js是javascript MVVM库( ...

  5. 如何用三层防护体系打造坚不可摧的 API 安全堡垒?

    扫描二维码 关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ FastAPI 安全与认证综合实 ...

  6. Cursor 快速入门指南:从安装到核心功能实战

    引言 Cursor 是一款融合 AI 能力的现代代码编辑器,旨在提升开发者的编码效率.本文将带您从零开始,快速掌握 Cursor 的完整使用流程 - 包括安装配置.项目初始化以及核心 AI 功能的应用 ...

  7. C# 文件正由另一进程使用,该进程无法访问该文件

    OpenFileDialog控件,而使用该控件时若没有将条件设置好,很容易出现以下提示: 打开一个文件后,尝试重新打开一次该文件,或者打开该文件后想对该文件进行其他操作的时候,就容易出现这个错误提示, ...

  8. TypeScript 类型判断

    多谢大哥的指教. https://www.wenjiangs.com/doc/typescript-typeguard instanceof instanceof 与 typeof 类似,区别在于 t ...

  9. C# ToolStripStatusLabel中没有 DataBindings

    https://social.msdn.microsoft.com/forums/windows/en-US/73de165c-e948-4015-bdcd-570f55a6e365/databind ...

  10. CF1344F Piet's Palette 题解

    CF1344F Piet's Palette 我们发现,如果两项颜色相同,则把两项都删去,这很符合异或的性质.再结合后面一条两项颜色不同,将这两项替换为与这两种颜色不同的颜色,我们发现需要找到三个数 ...