我是靠谱客的博主 开心曲奇,最近开发中收集的这篇文章主要介绍iptables实现端口映射(本地和远程端口映射),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

说明:
需要将外网访问本地IP(192.168.75.5)的80端口转换为访问192.168.75.3的8000端口,这就需要用到iptables的端口映射

实现:
1. 需要先开启linux的数据转发功能

# vi /etc/sysctl.conf,将net.ipv4.ip_forward=0更改为net.ipv4.ip_forward=1
# sysctl -p  //使数据转发功能生效

 
2. 更改iptables,使之实现nat映射功能

将外网访问192.168.75.580端口转发到192.168.75.3:8000端口。 # iptables -t nat -A PREROUTING -d 192.168.75.5 -p tcp --dport 80 -j DNAT --to-destination 192.168.75.3:8000 192.168.75.3 8000端口将数据返回给客户端时,将源ip改为192.168.75.5 # iptables -t nat -A POSTROUTING -d 192.168.75.3 -p tcp --dport 8000 -j SNAT --to 192.168.75.5

 
3. 查看nat,可以使用命令:iptables -t nat –list检查nat列表信息

 

 以上是针对从一台机到另一台机的端口转发,如果要针对本机进行端口转发,就需要按如下操作:

将外网访问80端口的数据转发到8080端口 # iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 将本机访问80端口的转发到本机8080 # iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j DNAT --to 127.0.0.1:8080 # iptables -t nat -A OUTPUT -p tcp -d 192.168.4.177 --dport 80 -j DNAT --to 127.0.0.1:8080 本地连接指的是在本机上,用 127.0.0.1 或者本机 IP 来访问本机的端口。本地连接的数据包不会通过网卡,而是由内核处理后直接发给本地进程。这种数据包在 iptables 中只经过 OUTPUT 链,而不会经过 PREROUTING 链。所以需要在 OUTPUT 链中进行 DNAT。除了对 127.0.0.1 之外,对本机 IP (即 192.168.4.177) 的访问也属于本地连接。

转载于:https://www.cnblogs.com/dongzhiquan/p/11427461.html

最后

以上就是开心曲奇为你收集整理的iptables实现端口映射(本地和远程端口映射)的全部内容,希望文章能够帮你解决iptables实现端口映射(本地和远程端口映射)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部