iptables 添加,删除,查看,修改,及docker运行时修改端口
一,安装并启动防火墙
- [root@linux ~]# /etc/init.d/iptables start
当我们用iptables添加规则,保存后,这些规则以文件的形势存在磁盘上的,以centos为例,文件地址是/etc/sysconfig/iptables,我们可以通过命令的方式去添加,修改,删除规则,也可以直接修改/etc/sysconfig/iptables这个文件就行了。
二,添加防火墙规则
1,添加filter表
- [root@linux ~]# iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT //开放21端口
出口我都是开放的iptables -P OUTPUT ACCEPT,所以出口就没必要在去开放端口了。
2,添加nat表
- [root@linux ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
将源地址是 192.168.10.0/24 的数据包进行地址伪装
3,-A默认是插入到尾部的,可以-I来插入到指定位置
- [root@linux ~]# iptables -I INPUT 3 -p tcp -m tcp --dport 20 -j ACCEPT
- [root@linux ~]# iptables -L -n --line-number
- Chain INPUT (policy DROP)
- num target prot opt source destination
- 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
- 2 DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
- 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:20 //-I指定位置插的
- 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
- 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
- 6 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
- 7 DROP all -- 0.0.0.0/0 0.0.0.0/0 state INVALID,NEW
- 8 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 //-A默认插到最后
- Chain FORWARD (policy ACCEPT)
- num target prot opt source destination
- Chain OUTPUT (policy ACCEPT)
- num target prot opt source destination
三,查下iptable规则
1,查看filter表
- [root@linux ~]# iptables -L -n --line-number |grep 21 //--line-number可以显示规则序号,在删除的时候比较方便
- 5 ACCEPT tcp -- 192.168.1.0/24 0.0.0.0/0 tcp dpt:21
如果不加-t的话,默认就是filter表,查看,添加,删除都是的
2,查看nat表
- [root@linux ~]# iptables -t nat -vnL POSTROUTING --line-number
- Chain POSTROUTING (policy ACCEPT 38 packets, 2297 bytes)
- num pkts bytes target prot opt in out source destination
- 1 0 0 MASQUERADE all -- * * 192.168.10.0/24 0.0.0.0/0
四,修改规则
- [root@linux ~]# iptables -R INPUT 3 -j DROP //将规则3改成DROP
五,删除iptables规则
- [root@linux ~]# iptables -D INPUT 3 //删除input的第3条规则
- [root@linux ~]# iptables -t nat -D POSTROUTING 1 //删除nat表中postrouting的第一条规则
- [root@linux ~]# iptables -F INPUT //清空 filter表INPUT所有规则
- [root@linux ~]# iptables -F //清空所有规则
- [root@linux ~]# iptables -t nat -F POSTROUTING //清空nat表POSTROUTING所有规则
六,设置默认规则
- [root@linux ~]# iptables -P INPUT DROP //设置filter表INPUT默认规则是 DROP
所有添加,删除,修改后都要保存起来,/etc/init.d/iptables save.上面只是一些最基本的操作,要想灵活运用,还要一定时间的实际操作。
应用:
修改主机iptables端口映射docker的端口映射并不是在docker技术中实现的,而是通过宿主机的iptables来实现。通过控制网桥来做端口映射,类似路由器中设置路由端口映射。
如果我们有一个容器的8000端口映射到主机的9000端口,先查看iptabes设置了什么规则:
sudo iptables -t nat -vnL
结果中有一条:
Chain DOCKER (2 references)
pkts bytes target prot opt in out source destination
98 5872 RETURN all -- docker0 * 0.0.0.0/0 0.0.0.0/0
237 14316 DNAT tcp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9000 to:172.17.0.3:8000
我们可以看到docker创建了一个名为DOKCER的自定义的链条Chain。而我开放8000端口的容器的ip是172.17.0.3。
也可以通过inspect命令查看容器ip
docker inspect [containerId] |grep IPAddress
我们想再增加一个端口映射,比如8081->81,就在这个链条是再加一条规则:
sudo iptables -t nat -A DOCKER -p tcp --dport 8081 -j DNAT --to-destination 172.17.0.3:81
加错了或者想修改:先显示行号查看
sudo iptables -t nat -vnL DOCKER --line-number
删除规则3
sudo iptables -t nat -D DOCKER 3
修改iptables添加映射端口
在宿主机执行以下命令,即可达到目的
iptables -A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 1521 -j ACCEPT
1
iptables -t nat -A DOCKER ! -i br0 -p tcp -m tcp --dport 11522 -j DNAT --to-destination 172.17.0.2:1521
1
重要参数说明:
172.17.0.2: docker容器在docker中的ip,可通过"docker inspect `container_name` | grep IPAddress"获取
1521: 容器内部应用对外暴露的端口
11522: 容器内部应用端口映射到宿主机的端口
保存持久化 iptables:
After of the write the commands iptables, do:
1. sudo su2. iptables-save > /etc/iptables.rules3. In /etc/network/if-pre-up.d/iptables,put:#!/bin/shiptables-restore < /etc/iptables.rulesexit 04. After, in /etc/network/if-post-down.d/iptables,put:#!/bin/shiptables-save -c > /etc/iptables.rulesif [ -f /etc/iptables.rules ]; theniptables-restore < /etc/iptables.rulesfiexit 05. After, give permission to the scripts:sudo chmod +x /etc/network/if-post-down.d/iptablessudo chmod +x /etc/network/if-pre-up.d/iptables相关文章:
iptables 添加,删除,查看,修改,及docker运行时修改端口
一,安装并启动防火墙 [rootlinux ~]# /etc/init.d/iptables start 当我们用iptables添加规则,保存后,这些规则以文件的形势存在磁盘上的,以centos为例,文件地址是/etc/sysconfig/iptables,我们可以通过命令的方式去…...
Liunx安装Android Studio
Liunx安装Android Studio 可参考官方文档: 安装 Android Studio 如需在 Linux 上安装 Android Studio,请按以下步骤操作: 1.将您下载的 .zip 文件解压缩到您应用的相应位置,例如 /usr/local/ 中(用于用户个人资料&am…...
8、Linux C/C++ 实现MySQL的图片插入以及图片的读取
本文结合了Linux C/C 实现MySQL的图片插入以及图片的读取,特别是数据库读写的具体流程 一、文件读取相关函数 fseek() 可以将文件指针移动到文件中的任意位置。其基本形式如下: int fseek(FILE *stream, long offset, int whence);其中,str…...
【搭建轻量级图床】本地搭建LightPicture开源图床管理系统 - 异地远程访问
文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…...
微信小程序全局路由拦截
前言 略 微信小程序全局路由拦截方法1 目前微信小程序没有全局路由拦截。要想实现全局路由拦截,需要自己进行扩充。具体参考这里:微信小程序–路由拦截器。 实现思路: 替换Page的参数对象的onShow或onLoad方法。在替换的onShow或onLoad方…...
截图自动添加水印(macOS/windows)
文章目录 1. 截图自动加水印1.1. windows1.2. macOS 2. 对已有图像批量加水印2.1 windows2.2 macOS 1. 截图自动加水印 1.1. windows 直接看这篇文章,一键截图自动生成水印/自动签名主要就是使用一个叫 SPX 的软件 1.2. macOS 其实apple的操作系统,i…...
大学四年,我建议你这么学网络安全
在所有关注我的朋友中,大致分为两类,一类是社会人士,有的是安全老手,有的是其它工作但对安全感兴趣的朋友,另一类应该就是大学生了。 尤其随着国家的号召和知识的普及,越来越多的人开始对网络安全感兴趣&a…...
Spring Boot整合Redis缓存并使用注解
Spring Boot整合Redis缓存并使用注解 在Spring Boot应用程序中,您可以使用Spring Cache库与Redis缓存进行集成,以提高应用程序的性能和响应速度。Spring Cache库提供了一组注解,包括Cacheable、CachePut和CacheEvict,可以方便地将…...
通知可以根据切入点表达式来进行增强,也可以根据自己的注解值来进行增强
通知可以根据切入点表达式来进行增强,也可以根据自己的注解值(例如 Before、After、Around 等)来进行增强。 如果要根据切入点表达式来进行增强,需要在通知注解中使用 Pointcut 注解来引用切入点表达式。例如,在以下示…...
<Python实际应用>做一个简单的签到投屏系统
公司接了个活,承办一个由团委组织的五四青年节徒步活动,其中一个环节是现场报名,来的人把名字填进去后随机分组,并显示在现场的LED大屏幕上,我自告奋勇用Python来开发这个小程序。这里记录一下 【项目需求】 1、报名…...
时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测
时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测 目录 时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 基于贝叶斯(bayes)优化卷积神经网络-门控循环单元(CNN-GR…...
Baumer工业相机堡盟工业相机使用BGAPISDK将工业相机设为Burst模式以及该模式的优势以及行业应用(C++)
Baumer工业相机堡盟工业相机使用BGAPISDK将工业相机设为Burst模式以及该模式的优势以及行业应用(C) Baumer工业相机Baumer工业相机的Burst模式的技术背景Baumer工业相机使用BGAPISDK将设置Burst模式1.引用合适的类文件2.使用BGAPI SDK初始化相机设置Burs…...
BERT输入以及权重矩阵形状解析
以下用形状来描述矩阵。对于向量,为了方便理解,也写成了类似(1,64)这种形状的表示形式,这个你理解为64维的向量即可。下面讲的矩阵相乘都是默认的叉乘。 词嵌入矩阵形状:以BERT_BASE为例,我们知道其有12层Encoder&…...
3 个令人惊艳的 ChatGPT 项目,开源了!
过去一周,AI 界又发生了天翻地覆的变化,其中,最广为人知的,应该是 OpenAI 正式上线 ChatGPT iOS 客户端,让所有人都可以更方便的在手机上与 ChatGPT 聊天。 此外,Stable Diffusion 母公司 Stability AI 也…...
一、12.C++内存管理
C++内存管理 28.C++的内存管理 和C基本一致 代码区(Code Segment):也称为文本区,存放程序的可执行代码。 全局区(Global/Static Segment):存放全局变量、静态变量和常量。程序在编译后,分配这些数据的空间。 栈区(Stack Segment):存放函数调用时的参数、返回地…...
ensp实践dhcp服务
ensp实践dhcp服务 1、dhcp接口分配模式2、dhcp接口地址池分配模式3、dhcp布拉布拉布拉 1、dhcp接口分配模式 1.1、路由器AR1配置dhcp动态获取 <Huawei>system-view [Huawei]interface g0/0/0 [Huawei-GigabitEthernet0/0/0]ip address 10.1.1.1 24 [Huawei-GigabitEthe…...
【王道·计算机网络】第六章 应用层
一、基本概念 1.1 应用层概述 应用层对应用程序的通信提供服务应用层协议定义: 应用进程交换的报文类型,请求还是响应?各种报文类型的语法,如报文中的各个字段及其详细描述字段的语义,即包含在字段中的信息的含义进程何时、如何…...
【论文解读】(如何微调BERT?) How to Fine-Tune BERT for Text Classification?
文章目录 论文信息1. 论文内容2. 论文结论2.1 微调流程2.2 微调策略(Fine-Tuning Strategies)2.3 Further Pretrain 3. 论文实验介绍3.1 实验数据集介绍3.2 实验超参数3.3 Fine-Tuning策略探索3.3.1 处理长文本3.3.2 不同层的特征探索3.3.3 学习率探索(灾难性遗忘探…...
工程师是怎样对待开源
工程师如何对待开源 本文是笔者作为一个在知名科技企业内从事开源相关工作超过 20 年的工程师,亲身经历或者亲眼目睹很多工程师对待开源软件的优秀实践,也看到了很多 Bad Cases,所以想把自己的一些心得体会写在这里,供工程师进行…...
Spring Boot日志系统大揭秘:从零开始学习Spring Boot日志:常见问题解答和最佳实践
一. 关于 Spring Boot 日志的使用 Spring Boot 日志机制和工具用于记录应用程序的日志信息和追踪应用程序的执行过程。它集成了常用的日志框架,如 Log4j、logback、Java Util Logging等,并提供简单易用的配置方式,让开发人员可以方便地监控应…...
openpilot终极指南:如何为你的爱车免费升级自动驾驶辅助系统
openpilot终极指南:如何为你的爱车免费升级自动驾驶辅助系统 【免费下载链接】openpilot openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300 supported cars. 项目地址: https://gitcode.com/GitHub_T…...
从华为EulerOS到openEuler:一个国产操作系统的开源之路与社区生态
从华为EulerOS到openEuler:一个国产操作系统的开源之路与社区生态在开源软件的世界里,每一个成功项目的背后都有一段独特的故事。当华为决定将其内部使用的EulerOS操作系统开源为openEuler时,这不仅是一个技术决策,更是一次关于开…...
天赐范式第53天:当伙伴没有上下文的时候——说我皮肤好~算子包装
我是第一天就开始包装算子用来算CFD的吗,这套技术理论不是多个领域模拟击穿的吗?没发论文就说没发论文,别扯没用的~谁生下来就会叫爸爸呀!伙伴:兄弟,我建议认栽,切回v27 MAC版:bashd…...
祖玛游戏开发:状态机与路径拓扑的工程实践
1. 祖玛游戏到底在考什么:不是炫技,而是对状态机与碰撞逻辑的精准拿捏祖玛(Zuma)看起来只是几颗彩球连成线就爆炸的休闲游戏,但真正动手实现时,你会发现它像一块试金石——C#、C 和 Java 三门语言各自最常被…...
Token CSS高级技巧:如何扩展自定义设计令牌和主题的终极指南
Token CSS高级技巧:如何扩展自定义设计令牌和主题的终极指南 【免费下载链接】tokencss 项目地址: https://gitcode.com/gh_mirrors/to/tokencss Token CSS是一个革命性的设计令牌工具,它让CSS开发变得更加智能和高效。如果你已经掌握了Token CS…...
网络技术05-TCP拥塞控制算法——从CUBIC到BBR的性能进化
🚗 一句话总结:TCP拥塞控制就像开车——看到前面堵车就减速(拥塞避免),路通畅了就慢慢加速(慢启动)。CUBIC是"看到堵车就猛踩刹车",BBR是"根据路况预测提前调整"…...
容器化与Kubernetes
容器化与Kubernetes 1. 技术分析 1.1 容器化概述 容器化是现代应用部署的核心技术: 容器化优势轻量级: 共享内核一致性: 环境一致可移植: 跨平台隔离性: 资源隔离容器技术:Docker: 容器引擎containerd: 容器运行时CRI-O: Kubernetes兼容1.2 Kubernetes概述 Kubernet…...
ComfyUI-Impact-Pack V8进阶实战:掌握AI图像智能修复的3大核心场景与性能优化
ComfyUI-Impact-Pack V8进阶实战:掌握AI图像智能修复的3大核心场景与性能优化 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more…...
DeepSeek计费策略终极对比:RPM限制、上下文长度溢价、多模态附加费,一文讲透
更多请点击: https://codechina.net 第一章:DeepSeek计费模式分析 DeepSeek 提供的 API 服务采用按 token 用量计费的精细化模型,其计费逻辑与请求类型(输入/输出)、模型版本(如 DeepSeek-VL、DeepSeek-Co…...
3分钟掌握novel-downloader:打造你的永久小说图书馆终极指南
3分钟掌握novel-downloader:打造你的永久小说图书馆终极指南 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否曾经因为小说网站突然关闭、章节被删除或VIP内容无法离…...
