情形一:跨网络、跨主机的映射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

说明:

  1. NAT_Pro表示NAT的协议,可以是tcp或udp
  2. NAT_Host表示中间做端口映射的主机。这里也就是主机A
  3. NAT_Port表示中间做端口映射的端口。这里也就是主机A的8080口
  4. Dst_Host表示被NAT的主机。这里也就是主机B
  5. 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

最新文章

  1. Android中的各种单位
  2. Codeforces Round #250 (Div. 2) A. The Child and Homework
  3. [原]Sql脚本压缩类。
  4. CF A and B and Team Training (数学)
  5. window.alert弹出处理
  6. Vim默认保存文件路径的设置
  7. Lucky and Good Months by Gregorian Calendar(模拟)
  8. Windows下一个SlikSVN使用
  9. IOS中实例的权限控制
  10. <a href="#" onclick="history.back();"></a>这样写为什么是对的? -(转)
  11. 初学ant
  12. LCA问题第二弹
  13. 新概念英语(1-19)Tired and thirsty
  14. Fliptile [POJ3279] [开关问题]
  15. [DUBBO] Unexpected error occur at send statistic, cause: Forbid consumer 192.168.3.151 access servic
  16. Kali安装问题解决方案
  17. CSS如何作小于1PX的边
  18. [iOS] WSHorizontalPickerView 图片水平滚动封装
  19. Linux下内存泄漏工具【转】
  20. Jenkins在Linux环境安装

热门文章

  1. 纯CSS实现下拉菜单及下拉容器等(纯CSS实现导航条及导航下拉容器)
  2. Repeater嵌套Repeater并取得嵌套Repeater里面的控件
  3. 用Apache生产csr申请证书
  4. android获取textview的行数
  5. Angular动态编译Html
  6. windows2008吃尽内存的解决办法
  7. DataAnnotations里DisplayAttribute和 ValidationAttribute 如何从资源文件读取信息,显示多语言
  8. 新上市Lighthouse专用芯片TS3633规格介绍
  9. mySql 注入攻击
  10. android switch语句报错:case expressions must be constant expressions