docker如何利用iptables限制外网访问
先看官网: 点击跳转
如果有问题,也别来问我,我也不懂,下面自己感悟一下,或者有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限制外网访问的更多相关文章
- docker安装redis并允许外网访问
拉取redis镜像 docker pull redis:3.2 本地新建redis配置文件 redis.conf ,写入以下内容 #允许外网访问bind 0.0.0.0 daemonize NO pr ...
- 阿里云centos7搭建docker,拉取镜像外网访问不通的问题排查
最近新买了一个阿里云服务器,用docker安装了mysql,外网死活连接不上我的mysql,最终经过一顿猛百度查问题,找出问题根源.对这次查问题过程中出现的问题也有一些心得,也小小记录一下复盘总结. ...
- 使用iptables禁止外网访问tomcat的8080端口
如果项目同时使用了nginx反向代理服务器和tomcat等web服务器,并且两台服务器都暴露于公网中,那么通常我们会禁止外网直接访问tomcat,因为以下原因: 1.如果可以直接访问tomcat,那么 ...
- centos7下配置iptables实现外网访问内网服务器
说明:Centos 7 默认的防火墙是 firewall,安装iptables之前需关闭Firewall 外网机器:外网ip:120.25.71.183内网ip:10.1.1.23 内网机器:内网ip ...
- 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 ...
- docker redis安装及配置(外网访问 关闭安全限制 设置密码)
docker run -p 6379:6379 --name redis -v /usr/local/redis/etc/redis.conf:/etc/redis/redis.conf -v /us ...
- centos使用docker安装redis ,并设置外网访问
拉取镜像 docker pull redis:4.0 在主机/data/redis/conf目录下新建redis.conf文件vim /data/redis/conf/redis.conf # Red ...
- 重启服务器后Docker容器暴露的端口外网突然访问不了!!
*:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- iptables后,外网访问网站可以,内网无法访问【已解决】
最近,到处看到有人问这个问题,怎么以前没人问,现在这么多人问呢?前两天我还在华为的论坛上仔细的说了这个问题,现在复制到这边来.希望能帮助大家理解这个问题. 这是个理论问题,我们先从NAT讲起:NAT有 ...
随机推荐
- CF1835D Doctor's Brown Hypothesis
D - Doctor's Brown Hypothesis 首先,一对合法的\((x,y)\)一定是在同一个\(scc\)中的,所以我们将每个\(scc\)分开处理 若我们当前在处理某一个\(scc\ ...
- 传统.NET 4.x应用容器化体验(6)
在Windows Container中,没有写日志的情况下,如何排查系统的异常信息? 1 关于Windows事件日志 在以往基于IIS部署ASP.NET应用程序时,如果没有写指定日志的情况下,我们往往 ...
- Windows 下安装RabbitMQ
下载并安装erlang原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang.下载地址:http://www.erlang.org/down ...
- 使用 cursor 来 review 代码
使用 cursor 来 review 代码 前言 code review review 单个文件 针对提交进行 code review 总结 使用 cursor 来 review 代码 前言 curs ...
- 智力大冲浪 C++
题目描述 小伟报名参加中央电视台的智力大冲浪节目.本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者 m 元.先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则 ...
- opengl 学习 之 15 lesson
opengl 学习 之 15 lesson 简介 光照贴图 link http://www.opengl-tutorial.org/uncategorized/2017/06/07/website-u ...
- java 核心编程 toolbar
简介 toolbar code /* * @Author: your name * @Date: 2020-11-08 09:38:15 * @LastEditTime: 2020-11-08 10: ...
- Ansys 添加弱弹簧
简介 添加弱弹簧 image
- 洛谷 P1044 [NOIP2003 普及组] 栈 题解
洛谷 P1044 [NOIP2003 普及组] 栈 题解 Sol 本题通过分析可得: 假设现在进行 \(12\) 次操作,我们把 push 认为是在地图上向右走,pop 向上走,那么其中一个合法的步骤 ...
- tauri学习(5)-Splashscreen启动界面
接上节继续,本文将研究splashscreen,也就是程序的启动界面,通常有2二种应用场景: 1.程序太复杂,主界面完成加载需要很长时间,为了优化用户体验,可以先放一个启动图片,缓解用户等待的焦虑. ...