在Linux中进行端口映射问题

在进入正题之前,先了解一下一个小知识点:


-t<>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。


先配置一个端口映射


  • 射影的语法

iptables -t 表名 -A(/-I) 规则链名 -p 协议名 --dport 目标端口号 -j 动作 --to-port 映射端口号

	// 这里是讲linux 中的 80 端口映射到 了 9090端口中了
	// localhost:80  与 localhost:9090  此时的效果是相同的
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9090
或
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9090

在这里插入图片描述

  • 语法我们了解了,那么语法中的表名等等又包含哪些呢?

    • 表名包括:

raw: 高级功能,如:网址过滤。

mangle: 数据包修改(QOS),用于实现服务质量。

nat: 地址转换,用于网关路由器。

filter: 包过滤,用于防火墙规则。

规则链名包括:(区分大小写)

INPUT链:处理输入数据包。

OUTPUT链:处理输出数据包。

PORWARD链:处理转发数据包。

PREROUTING链:用于目标地址转换(DNAT)。

POSTOUTING链:用于源地址转换(SNAT)。

动作包括:(区分大小写)

accept:接收数据包。

DROP:丢弃数据包。

REDIRECT:重定向、映射、透明代理。

SNAT:源地址转换。

DNAT:目标地址转换。

MASQUERADE:IP伪装(NAT),用于ADSL。

LOG:日志记录。



保存配置规则

service iptables save

删除映射

  • 第一种方法:

    知道映射规则,可以直接进行删除

iptables -t 表名 -D 规则链名 -p 协议名 --dport 目标端口号 -j 动作 --to-port 映射端口号

例:

iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9090

在这里插入图片描述

  • 第二种方法:

    不知道映射规则的时候

首先:
查询映射所有的映射规则

iptables -L -n -v --line-numbers

然后删除我们需要删除的规则

iptables -D INPUT 1(num代表的数字)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值