iptables命令使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wxid2798226/article/details/83902770

# 模拟某个服务器挂了
QA测试时,需要测试Redis服务器或者DDB挂了的情况,总不能去拔网线吧。。

所以用iptables命令来做


iptables -I OUTPUT 1 -p tcp --dport 6000 -j DROP   //-I表示insert,或者用-A append;效果类似

iptables -D OUTPUT  -p tcp --dport 6000 -j DROP   //删除用这条,或者直接-F flush掉

制定规则的时候有个原则就是 放行的要先放在前面, 禁止的要放在最后
这条规则的作用是:在应用服务器上模拟数据库挂了,那么所有往那个ip地址的6000端口的出去的流量都不会有回音


iptables极客世界

iptables命令使用

首先iptables是啥?iptables is a command-line firewall utility that uses policy chains to allow or block traffic 一个基于策略的防火墙软件

iptables主要工作在第三层,ip层,可以过滤源mac地址,主要是,包从二层进入三层时,包头带有mac信息;但是目的地mac地址过滤不了的,因为其是三层进入二层后,在二层填写上,然后发走的,也就是说iptables内核完全不知道目的地mac是多少,怎么填?


sudo iptables -L

INPUT

This chain is used to control the behavior for incoming connections.数据包的目的地址(主要是ip)是本机

OUTPUT

数据包是由本地系统进程产生的,则系统将其送往Output链

QA测试就是登录服务器的shell,然后设置iptables,如果是DDB数据库挂了,那么所有往那个ip地址的6000端口的出去的流量都不会有回音(也就是drop掉了

FORWARD

数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往Forward链

(这条工作机用得不多,因为流量要么是从本机到服务器的,要么是其他机器访问本机ide开启的服务的;但是之前我用树莓派作为路由器时用过这个

比如如下:


sudo iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -- set -mss 1268

如上这条命令的背景:

由于家里使用的PPPoE上网,加上PPTP协议封装,链路实际可用的MTU减小。我的PPTP服务器使用的MTU是1300,当内网中其它终端以树莓派为网关时并不知道网关的下一跳链路的MTU小于1500,终端也不会在DHCP过程中主动配置MTU值,1500大小的包转发到PPTP链路中会被丢弃,造成无法上网的现象。解决方法是配置TCP MSS值,使系统遇到大于MSS值的包时先拆包再转发

猜你喜欢

转载自blog.csdn.net/wxid2798226/article/details/83902770