端口映射是属于NAT的一种,其功能是将公用网络的地址转换为私有地址的形式,主要是采用了路由的ADSL宽带路由器方式来拥有公网的IP,将ADSL直接接在HUB或交换机上,所有的电脑都可以共享上网。而我们在linux的环境下进行端口映射时,就需要使用一些iptables的命令,而这种命令确实很少有人知道。还好小编“私藏”了一些,现在就将这些“私藏”的好东西分享给大家,希望对大家能有所帮助。
linux端口映射命令
情形一:跨网络、跨主机的映射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=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重定向来进行完成。
iptables -t nat -A PREROUTING -p tcp --dport 7979 -j REDIRECT --to-ports 8080
注意问题:
需要打开ip_forward功能:echo '1' > /proc/sys/net/ipv4/ip_forward
上述就是关于linux端口映射命令的一些案例方式,当我们在面对不同的情形下时,都可以使用iptables的命令来完成一些操作。在使用iptables的时候就会减少很多头疼操作。想获取更多的电脑操作方法及软件的使用方法,敬请关注河东软件园,我们将我们将竭尽为你解答。