Linux运用iptables端口转发

简介:

启用网卡转发功能
#echo 1 > /proc/sys/net/ipv4/ip_forward


举例:从192.168.0.132:21521(新端口)访问192.168.0.211:1521端口


a.同一端口转发192.168.0.132上开通1521端口访问


iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT


iptables -t nat -I PREROUTING -p tcp --dport 1521 -j DNAT --to 192.168.0.211
iptables -t nat -I POSTROUTING -p tcp --dport 1521 -j MASQUERADE


b.不同端口转发192.168.0.132上开通21521端口访问 


iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21521 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 21521 -j DNAT --to-destination 192.168.0.211:1521
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 192.168.0.211 -p tcp -m tcp --dport 1521 -j SNAT --to-source 192.168.0.132


以上两条等价配置(更简单[指定网卡]):


iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 31521 -j DNAT --to 192.168.0.211:1521
iptables -t nat -A POSTROUTING -j MASQUERADE

 

保存iptables
#service iptables save

#service iptables restart


二 用iptables做本机端口转发

代码如下:


  iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080


估计适当增加其它的参数也可以做不同IP的端口转发。

如果需要本机也可以访问,则需要配置OUTPUT链

(********特别注意:本机访问外网的端口会转发到本地,导致访不到外网,如访问yown.com,实际上是访问到本地,建议不做80端口的转发或者指定目的 -d localhost):
  iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080

原因:
外网访问需要经过PREROUTING链,但是localhost不经过该链,因此需要用OUTPUT




/sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 20022 -j REDIRECT --to-ports 22  

端口转发



IP端口转发

/sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 881 -j DNAT --to-destination 10.10.2.200:881 

/sbin/iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -d 10.10.2.200 -p tcp -m tcp --dport 881 -j SNAT --to-source 

/sbin/iptables –A INPUT –p tcp –dport 881 –i ppp0 –j ACCEPT  



IP端口转发

/sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 800 -j DNAT --to-destination 10.10.2.101:800  

/sbin/iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -d 10.10.2.101 -p tcp -m tcp --dport 800 -j SNAT --to-source 

/sbin/iptables –A INPUT –p tcp –dport 800 –i ppp0 –j ACCEPT 



IP端口转发

/sbin/iptables -t nat -A PREROUTING -p tcp -d --dport 80  -J DNAT --to-destination :8080

/sbin/iptables -t nat -A POSTROUTING -p tcp -s --sport 8080 -J SNAT --to-source 










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1713421,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
网络协议 安全 Linux
linux配置防火墙 Centos7下 添加 端口白名单
linux配置防火墙 Centos7下 添加 端口白名单
76 0
|
6天前
|
安全 Linux 网络安全
|
13天前
|
弹性计算 Shell Linux
|
14天前
|
安全 Linux 网络安全
【专栏】在 Linux 中,端口连接服务和应用,过多开放的端口可能带来安全隐患,教你一招找出所有开放的端口,然后直接干掉!
【4月更文挑战第28天】在 Linux 中,端口连接服务和应用,过多开放的端口可能带来安全隐患。要找出开放端口,可使用 `netstat -anp`、`lsof -i` 或 `nmap` 命令。关闭端口可通过停止相关服务、修改防火墙规则或禁用网络接口。注意不要随意关闭重要端口,操作前备份数据。保持端口安全对系统安全至关重要。
|
18天前
|
Linux 网络安全
【Linux】如何修改为固定ip和增加端口
【Linux】如何修改为固定ip和增加端口
8 1
|
18天前
|
XML 安全 Linux
Linux 防火墙开启端口
Linux 防火墙开启端口
30 1
|
19天前
|
Linux
【Linux】虚拟机ip端口如何固定
【Linux】虚拟机ip端口如何固定
9 0
|
26天前
|
Linux 网络安全
linux防火墙开放指定端口命令
linux防火墙开放指定端口命令
35 0
|
1月前
|
Linux Windows
Windows、Mac、Linux解决端口被占用的问题
Windows、Mac、Linux解决端口被占用的问题
28 1
|
1月前
|
网络协议 Linux
Linux如何查询端口被占用?
在Linux环境中,查询端口占用可使用`netstat`、`lsof`和`ss`命令。`netstat -tulnp | grep 80`显示TCP/UDP监听端口,`lsof -i:80`列出使用80端口的进程,而`ss -tuln | grep 80`是`netstat`的现代替代选项。若需解决端口占用问题,先找出占用进程的ID,然后用`kill -9`命令终止它,或调整服务配置以避免冲突。
26 1