linux配置本地tomcat应用80端口转发
场景:
本地部署tomcat到8080端口,并期望本地访问80端口来访问本地tomcat。
结论:
使用linux下的iptables工具实现端口转发功能。
具体为
- 现取得root权限
- 执行iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-port 8080
- 目前在重启前均生效。要想永久生效,需要继续执行(ubuntu环境):iptables-save > /etc/iptables.rules
- 新建一个bash脚本
#!/bin/bash
iptables-restore < /etc/iptables.rules - 保存到/etc/network/if-pre-up.d/目录下
- 结束!
- BTW:如果是配置外部服务器,则把第2步换为执行iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
实验过程:
实验过程主要集中在上述第2步中该添加何种iptables规则。
取得root权限后,单独执行各个操作:
- iptables -t nat -I OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 8080
结果:访问本地localhost正常转发,访问外部网络全部被重定向到本地localhost:8080
原因: 本机访问请求时,本地进程产生的报文将进入OUTPUT链,因为当前请求包的端口是80,于是重定向道8080,注意是所有数据包。 - iptables -t nat -I OUTPUT -p tcp -s 127.0.0.1 --dport 80 -j REDIRECT --to-port 8080
结果:访问本地localhost正常转发,访问外部网络正常没特殊处理
原因:类似上例,但多了一个规则:需匹配数据包源地址-s 127.0.0.1。但实际上,访问外部网络时实际数据包在经过这个链时的源地址是本机ip,而不是回路ip(127.0.0.1),所以相当于本规则对访问外部网络时无效。 - iptables -t nat -I OUTPUT -p tcp -s 非回路网卡ip --dport 80 -j REDIRECT --to-port 8080
结果:访问本地localhost无法转发,访问外部网络全部被重定向到本地localhost:8080
原因:和上例类似,规则匹配了对外访问的数据包,从而被重定向。 - iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-port 8080
结果:访问本地localhost正常转发,访问外部网络正常没特殊处理
原因:本地应用的ip被匹配上,所以访问本地应用时,数据包将被重定向道8080 - iptables -t nat -I OUTPUT -p tcp -s 127.0.0.1 -d 127.0.0.1 --dport 80 -j REDIRECT --to-port 8080
结果:访问本地localhost正常转发,访问外部网络正常没特殊处理
原因:2,4操作的原因结合。 - iptables -t nat -I PREROUTING -p tcp -s 127.0.0.1 -d 127.0.0.1 --dport 80 -j REDIRECT --to-port 8080
结果:访问本地localhost无法转发,访问外部网络正常没特殊处理
原因:本地连接指的是在本机上,用 127.0.0.1 或者本机 IP 来访问本机的端口。本地连接的数据包不会通过网卡,而是由内核处理后直接发给本地进程。这种数据包在 iptables 中只经过 OUTPUT 链,而不会经过 PREROUTING 链(原文点此)。即:PREROUTING isn't used by the loopback interface(讨论贴)。
知识点:
iptables基本介绍:http://wiki.centos.org/HowTos/Network/IPTables(是centos版)
iptables全面介绍:
http://lesca.me/archives/iptables-tutorial-structures-configuratios-examples.html
http://blog.chinaunix.net/uid-307943-id-3559357.html
iptables原理:http://my.oschina.net/javagg/blog/3239
iptables数据包流向 :
以本地为目的的包 数据包 ----> mangle prerouting -------> nat prerouting -------> mangle input -------> filter input
以本地为源的包 数据包 -------> mangle output -------> nat output -------> filter output -------> mangle postrouting -------> nat postrouting
经过本地转发的包 数据包 -------> mangle prerouting -------> nat prerouting -------> mangle forward -------> filter forward -------> mangle postrouting -------> nat postrouting
linux配置本地tomcat应用80端口转发的更多相关文章
- Linux配置防火墙,开启80端口、3306端口
Linux配置防火墙,开启80端口.3306端口 起因是因为想使用Navicat连接一下数据库,发现连接不上 通过查阅许多资料和多次测试发现是因为防火墙没有配置3306端口 话不多说,开整,同理, ...
- Linux配置防火墙,开启80端口、3306端口(转)
vi /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火 ...
- 【nginx配置】nginx做非80端口转发
一个场景 最近在使用PHP重写一个使用JAVA写的项目,因为需要查看之前的项目,所以要在本地搭建一个Tomcat来跑JAVA的项目.搭建成功后,因为Tomcat监听的端口是8080,因此,访问的URL ...
- Ubuntu16.04配置Tomcat的80端口访问
[问题描述] 在阿里云 ECS 服务器 Ubuntu16.04 下部署 Java Web 应用时,发现配置的 Tomcat 服务启动后 80 端口无法被监听. [问题原因] 出现该问题的主要原因是:非 ...
- IIS Tomcat共享80端口
为什么有这种需求, 原因是这样的, 公司有一个Java的web项目,在另一台服务器A上,最近老板一时兴起,想把他合并到这台稳定点的服务器B上,服务器B上使用IIS来寄宿asp.net 网站, 怎么办呢 ...
- 把www.domain.com均衡到本机不同的端口 反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发 location 规则
负载均衡-Nginx中文文档 http://www.nginx.cn/doc/example/loadbanlance.html 负载均衡 一个简单的负载均衡的示例,把www.domain.com均衡 ...
- 端口被占用通过域名的处理 把www.domain.com均衡到本机不同的端口 反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发 location 规则
负载均衡-Nginx中文文档 http://www.nginx.cn/doc/example/loadbanlance.html 负载均衡 一个简单的负载均衡的示例,把www.domain.com均衡 ...
- IIS和tomcat共用80端口
IIS和tomcat共用80端口 很多机器都需要同时使用tomcat和iis两个服务器以部署不同的网站,而解决共用80端口的问题也经常遇到,今天实际操作了一回,以下是具体步骤: 实现tomcat和ii ...
- IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口
IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口 背景: 最近公司有一个项目要上线,需要用到iis和tomcat整合,共用80端口.由于公司的数据都非常重要,只通过端口映射到外网的8 ...
随机推荐
- 为什么国内的网盘公司都在 TB 的级别上竞争,成本会不会太高?(还有好多其它回复)
作者:杜鑫链接:http://www.zhihu.com/question/21591490/answer/18762821来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处 ...
- Windows Phone 8初学者开发—第16部分:使用应用程序栏
原文 Windows Phone 8初学者开发—第16部分:使用应用程序栏 原文地址: http://channel9.msdn.com/Series/Windows-Phone-8-Develop ...
- Page的生命周期及相关事件苛
(1)请求页面:页请求发生在页生命周期开始之前. (2)开始:在开始阶段,将设置页属性,如Request和Response.在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性 ...
- Android大放送干:书籍、过程、工具等各种全
完全干燥分享,本文收集Android制定必要的书籍.过程.具.新闻和杂志各种资源.它们能让你在Android开发之旅的各个阶段都受益. 入门 <Learning Android(中文版)> ...
- 搭建OA平台
公司没有OA平台的原因是: 1.暂时没有上的必要. 2.总厂有一个web版的用友的OA. 但最近法方总经理提到了共享日历日程的需求. 这个需求的主要要整合的是把outlook的日历功能共享.原来微软是 ...
- 二叉树的前序和中序得到后序 hdu1710
今天看学长发过来的资料上面提到了中科院机试会有一个二叉树的前序中序得到后序的题目.中科院的代码编写时间为一个小时,于是在七点整的时候我开始拍这个题目.这种类型完全没做过,只有纸质实现过,主体代码半个小 ...
- vs2016 创建 vsto excel 文件项目的一个问题
新工作需要些一个基于Excel开发一个工具,vs的 vsto 功能很好用,封装了基于开发office 开的一些工具.但是在实际使用时,创建项目总是报错,提示打开excel文件失败.项目是需要创建一个e ...
- Python之路day4
坚持就是胜利.今天零下14度,从教室出来的路上真的很冷很冷,希望这个冬天自己不会白过,春暖花开的时候一定要给世界一个更好的自己. 原本以为day3的作业自己做得挺好的,没想到只得了B+.必须要加油了, ...
- haproxy /admin跳转 不会在接口上再次加上admin
http://www.xx.com/admin/api/menu [root@wx03 mojo]# cat test.pl use Mojolicious::Lite; use JSON qw/en ...
- highcharts dynamic change line color
mouseOut: function(){ this.series.graph.attr({"stroke","#ccc"}) }