当前位置:首页 > 系统教程 > Linux教程 > 详细页面

linux端口映射命令是什么?如何使用iptables做端口映射shell?

时间:2017-04-13来源:雨林木风pe工具作者:佚名

说到端口映射,我们首先想到的是通过Windows系统对对象进行内网穿透,以让Windows可以在本地磁盘中看到映射的目标,而在linux环境下进行端口映射shell则需要使用iptables命令,具体步骤见下文linux端口映射命令介绍。

  linux端口映射命令:

  情形一:跨网络、跨主机的映射Full-Nat

  我们想到达主机B的80端口,但是由于网络限制可能无法直接完成。但是我们可以到达主机A的8080端口,而主机A可以直接到达B的80端口。

  这时候可以使用iptables,将主机B的80端口映射到主机A的8080端口,通过访问A的8080相当于访问B的80。实现如下:

  在主机A上直接如下命令,实现端口映射的Full-Nat

    01#!/bin/bash 02pro='tcp' 03NAT_Host='Host_A' 04NAT_Port=8080 05Dst_Host='Host_B' 06Dst_Port=80 07iptables -t nat -A PREROUTING -m -p --dport -j DNAT --to-destination : 08iptables -t nat -A POSTROUTING -m -p --dport -d -j SNAT --to-source
复制代码
#!/bin/bash pro='tcp' NAT_Host='Host_A' NAT_Port=8080 Dst_Host='Host_B' Dst_Port=80 iptables -t nat -A PREROUTING -m -p --dport -j DNAT --to-destination : iptables -t nat -A POSTROUTING -m -p --dport -d -j SNAT --to-source

  说明:

  NAT_Pro表示NAT的协议,可以是tcp或udp

  NAT_Host表示中间做端口映射的主机。这里也就是主机A

  NAT_Port表示中间做端口映射的端口。这里也就是主机A的8080口

  Dst_Host表示被NAT的主机。这里也就是主机B

  Dst_Host表示被NAT的端口。这里也就是主机B的80口

  情形二:主机内部的端口重定向

  我们可能需要将访问主机的7979端口映射到8080端口。也可以iptables重定向完成。

    01iptables -t nat -A PREROUTING -p tcp --dport 7979 -j REDIRECT --to-ports 8080
复制代码
iptables -t nat -A PREROUTING -p tcp --dport 7979 -j REDIRECT --to-ports 8080

  注意问题:

  需要打开ip_forward功能:

    01echo '1' > /proc/sys/net/ipv4/ip_forward
复制代码
echo '1' > /proc/sys/net/ipv4/ip_forward

  以上便是关于linux端口映射命令的一些案例,在不同的情形下我们都可以使用iptables命令来完成这些操作。

分享到:

相关信息

  • linux系统怎么删除文件?

    linux的运用是特别广泛的,特别是在企业应用最多,由linux操作系统稳定强,在服务器上不逊于其它操作系统,linux就是命令多一点。而用户在操作的过程中,难免会遇到一些问题,这不,有位用户就提出linux该如何删除文件的问题,下面,小...

    2018-01-08

  • Linux系统部分软件中文显示乱码方框的解决方法

    Linux下部分软件会出现中文显示异常的问题。如Netbeans等依赖JVM虚拟机运行的软件。这是由于JVM中文显示的字体缺失的缘故。方法就是将缺失的字体添入JVM目录。1、查询JRE目录:update-alternatives --con...

    2017-11-25

系统教程栏目

人气教程排行

站长推荐

热门系统下载