HainaTec 发表于 2018-8-29 13:59:08

Linux下Tomcat使用80端口映射到8080端口

本帖最后由 HainaTec 于 2018-8-31 17:59 编辑

有时我们在服务Linux服务器上安装了tomcat(端口号为8080),而公司要求是输入网址后不添加端口号就能访问,这就意味着浏览器得通过80端口访问到你的tomcat(端口为8080),为此有两种解决方式:
1.基于Linux系统禁止1024一下的端口让非root用户使用,那么就必须是用root用户登录才能去启动修改为80端口的tomcat(注意: 直接在tomcat server.xml中更改为80,用sudo命令是启动不了的,必须要root用户登录启动!!)
2.基于root密码不是随随便便能得到的,所以一般采用第二种方法(即端口映射)来达到你的目的:具体命令为:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
-t nat : 指出我要操作什么表.(不写就表示filter.默认是filter) -A PREROUTING : A 添加的意思.表示我要在PREROUTING 中添加一个规则 --dport 80 : 如果请求80端口. --to-port 8080 : 那么就转到8080端口.
测试如下 :
在浏览器地址栏输入http://localhost:8080   和 输入   http://localhost可以达到一样的效果!(前者是通过映射,后者是直接访问原地址!!)
删除映射:iptables -t nat -L -nv --line-numbers

这个命令的作用是,列出nat表中的规则,并且给个num.
然后我们就可以利用这个id删除这个规则了.
如果你不写-t nat 那么默认查找的就是filter表.那么就无法查找规则. https://img-blog.csdn.net/20151016160456865?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
利用这个语句就可以删除这个规则了. iptables -t nat -D PREROUTING 1
-t nat : 表示我要操作这个表,不指明就是filter.
-D : 表示执行删除操作
PREROUTING : 表示nat表中哪一个链. 后面数字1 就是上图中的num
需要注意的是Debian/Ubuntu 上iptables是不会保存规则的。
需要按如下步骤进行,让网卡关闭是保存iptables规则,启动时加载iptables规则:
1.创建 /etc/network/if-post-down.d/iptables 执行:chmod +x /etc/network/if-pre-up.d/iptables 添加执行权限。 文件,添加如下内容: #!/bin/bash   iptables-save > /etc/iptables.rules 执行:chmod +x /etc/network/if-post-down.d/iptables 添加执行权限。
2.创建/etc/network/if-pre-up.d/iptables 文件,添加如下内容: #!/bin/bash iptables-save < /etc/iptables.rules
执行:chmod +x /etc/network/if-pre-up.d/iptables 添加执行权限。
页: [1]
查看完整版本: Linux下Tomcat使用80端口映射到8080端口