linux下用用iptables做端口映射的shell
2024-10-19 11:57:46
情形一:跨网络、跨主机的映射Full-Nat
我们想到达主机B的80端口,但是由于网络限制可能无法直接完成。但是我们可以到达主机A的8080端口,而主机A可以直接到达B的80端口。
这时候可以使用iptables,将主机B的80端口映射到主机A的8080端口,通过访问A的8080相当于访问B的80。实现如下:
在主机A上直接如下命令,实现端口映射的Full-Nat
#!/bin/bash
pro='tcp'
NAT_Host='Host_A'
NAT_Port=
Dst_Host='Host_B'
Dst_Port=
iptables -t nat -A PREROUTING -m $pro -p $pro --dport $NAT_Port -j DNAT --to-destination $Dst_Host:$Dst_Port
iptables -t nat -A POSTROUTING -m $pro -p $pro --dport $Dst_Port -d $Dst_Host -j SNAT --to-source $NAT_Host
说明:
- NAT_Pro表示NAT的协议,可以是tcp或udp
- NAT_Host表示中间做端口映射的主机。这里也就是主机A
- NAT_Port表示中间做端口映射的端口。这里也就是主机A的8080口
- Dst_Host表示被NAT的主机。这里也就是主机B
- Dst_Host表示被NAT的端口。这里也就是主机B的80口
情形二:主机内部的端口重定向
我们可能需要将访问主机的7979端口映射到8080端口。也可以iptables重定向完成
iptables -t nat -A PREROUTING -p tcp --dport 7979 -j REDIRECT --to-ports 8080
注意问题
需要打开ip_forward功能。
echo '1' > /proc/sys/net/ipv4/ip_forward
最新文章
- Android中的各种单位
- Codeforces Round #250 (Div. 2) A. The Child and Homework
- [原]Sql脚本压缩类。
- CF A and B and Team Training (数学)
- window.alert弹出处理
- Vim默认保存文件路径的设置
- Lucky and Good Months by Gregorian Calendar(模拟)
- Windows下一个SlikSVN使用
- IOS中实例的权限控制
- <;a href=";#"; onclick=";history.back();";>;<;/a>;这样写为什么是对的? -(转)
- 初学ant
- LCA问题第二弹
- 新概念英语(1-19)Tired and thirsty
- Fliptile [POJ3279] [开关问题]
- [DUBBO] Unexpected error occur at send statistic, cause: Forbid consumer 192.168.3.151 access servic
- Kali安装问题解决方案
- CSS如何作小于1PX的边
- [iOS] WSHorizontalPickerView 图片水平滚动封装
- Linux下内存泄漏工具【转】
- Jenkins在Linux环境安装
热门文章
- 纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)
- Repeater嵌套Repeater并取得嵌套Repeater里面的控件
- 用Apache生产csr申请证书
- android获取textview的行数
- Angular动态编译Html
- windows2008吃尽内存的解决办法
- DataAnnotations里DisplayAttribute和 ValidationAttribute 如何从资源文件读取信息,显示多语言
- 新上市Lighthouse专用芯片TS3633规格介绍
- mySql 注入攻击
- android switch语句报错:case expressions must be constant expressions