Linux下端口映射的示例分析
小编给大家分享一下Linux下端口映射的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
端口映射器可实现端口映射功能,一个主要用途就是可以在局域网的网关上运行本程序,将网关服务器的某个端口映射为局域网中某台机器的某个端口,这样,局域网外部访问网关服务器的8081端口就相当于访问了局域网内部某台机器的80端口了。
打开 IP 转发
打开 IP 转发(路由器设备是默认打开的),必须允许 IP 转发,否则即使设置了 nat 映射规则,也是不能发生映射的,因为不开启转发,包不能被发过去。
echo 1 > /proc/sys/net/ipv4/ip_forward
从一台机器映射到另一台机器
❝
映射关系 192.168.122.1:80 —> 192.168.122.221:80 192.168.122.221 在 80 端口开启了 nginx 服务器 本地链路的报文是不需要经过 PREROUTING 与 POSTROUTING 的,所以必须配置 OUTPUT 否则在本机上测试会发现转发规则无效!
在 192.168.122.1 配置如下规则,然后在 192.168.122.1(本机) 的机器能访问 “192.168.122.1:80”
iptables -t nat -A OUTPUT -p tcp -d 192.168.122.1 --dport 80 -j DNAT --to 192.168.122.221:80
在 192.168.122.1 配置如下规则,然后在 192.168.122.29(其他设备) 能访问 ”192.168.122.1:80“
# 配置目的地址转换iptables -t nat -A PREROUTING -p tcp -d 192.168.122.1 --dport 80 -j DNAT --to 192.168.122.221:80# 配置源地址转换iptables -t nat -A POSTROUTING -p tcp -d 192.168.122.221 --dport 80 -j SNAT --to 192.168.122.1
从本机一个端口到另一个端口
❝
映射关系 192.168.122.221:8080 —> 192.168.122.221:80 本地链路上的报文是不需要经过 PREROUTING 与 POSTROUTING 的,所以必须配置 OUTPUT 否则在本机上测试会发现转发规则无效! 192.168.122.221 在 80 端口开启了 nginx 服务器
在 192.168.122.221 配置如下规则, 8080 映射到 80,这样本机能访问 “127.0.0.1:8080”
iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 8080 -j DNAT --to-port 127.0.0.1:80
在 192.168.122.221 配置如下规则, 8080 映射到 80,这样能访问 “192.168.122.221:8080”
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80
其他
# 查看 nat 链规则iptables -t nat -L -n --line-number# 删除规则 POSTROUTING 的规则 1iptables -t nat -D POSTROUTING 1
看完了这篇文章,相信你对“Linux下端口映射的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341