用iptables实现同机器和不同机器间的端口转发

Iptables

将本机80端口的请求转发到8080端口

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
  1. 如果需要本机也可以访问,则需要配置OUTPUT链:

iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080

两机之间的端口转发

  1. 将本机的81端口的请求全部转发到192.168.1.1:80

  2. 首先要启用ipv4的转发功能:

echo 1 > /proc/sys/net/ipv4/ip_forward
  1. 或者是修改/etc/sysctl.conf (via)以便重启后也会启用转发,然后设定iptables(via):

iptables -t nat -A PREROUTING -p tcp --dport 81 -j DNAT --to 192.168.1.1:80 
iptables -t nat -A POSTROUTING -j MASQUERADE
  1. 如果开启了防火墙功能,注意要将80和81两个端口都打开。

10.23.3.129上设置对10.21.1.91 443端口的转发脚本:

#!/bin/sh
/sbin/iptables  -t nat -F
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A PREROUTING -p tcp  --dport 443 -j DNAT --to 10.21.1.91:443
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
/sbin/iptables -t nat -L -n


linux下最简单的端口转发工具:rinetd【如果觉得iptables使用复杂,可用下面的工具,比较简单】

官网地址:http://www.boutell.com/rinetd


你可能感兴趣的:(iptables,端口转发)