Linux系统不允许非root账号使用1024以下的端口,所以Jetty要使用80端口启动只有两个方法,或者使用root,账号启动,或者使用iptables做本地端口映射。由于使用root账号启动Jetty会存在安全隐患,不推荐这么做。在本地做端口映射看起来是最合理的做法。iptables直接在网卡上做的四层端口映射,效率会比Nginx的七层代理要高很多。下面来聊聊怎么使用iptables做本地端口映射。
1.使用iptables查看本地的策略
iptables -L -n -v
可以查看所有非nat的本地路由策略,只能看到INPUT\OUTPUT\FORWORD三个表的策略,如果需要看NAT表的策略,需要加-t nat。而内部端口映射的策略需要加到NAT表中的。
iptables -L -n -v -t nat
2.增加端口映射的策略
所有发送到本地网卡上的80端口的请求,转发到本地8080:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
加上上面这条策略后,所有发送到网卡上的80请求会映射到8080,但是如果本地访问127.0.0.1的时候,端口还是映射不过去,因为本地访问127.0.0.1的事情,请求不会到网卡,直接到lo了,所以还需要增加一条本地请求的策略:
iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j DNAT --to 127.0.0.1:8080
这样无论本地还是,别的机器所有发送到80的请求都会转发到8080。但是需要注意的一点是,从netstat中是看不到80端口的监听的,这个请求转发是在网卡上完成的。
3.删除本地策略
如果只是测试,可以使用下面的命令删除刚才创建的策略:
iptables -F -t nat
PS,如果使用非ROOT用户启动jetty去绑定80端口,会在日志中看到以下的错误:
2012-09-13 20:37:18.077:WARN::failed SelectChannelConnector@0.0.0.0:80: java.NET.SocketException: 权限不够
相关推荐
下面小编就为大家带来一篇利用iptables来配置linux禁止所有端口登陆和开放指定端口的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
linux下使用iptables开放80和22端口的详细操作步骤。
iptables是一个Linux下优秀的nat+防火墙工具
Linux+iptables+防火墙+添加删除+端口.doc
Linux 环境Iptables关闭端口
iptables端口映射,硬件iptables的原理简单解析
众所周知,在unix下,非root用户不能监听1024以上的端口号,这个tomcat服务器就没办法绑定在80端口下。所以这里需要使用linux的端口转发机制,把到80端口的服务请求都转到8080端口上。 在root账户下面运行一下命令:...
CentOS 安装使用Iptables,1.安装iptables-services2.设置开机启动3.配置说明
解决centos7的iptabels 文件丢失的问题。
使用iptables限制流量请求,使用iptables限制流量请求,使用iptables限制流量请求
iptables 简单设置指定端口访问权限新增,删除规则等
通过iptables实现端口转发和内网共享上网
<br>文中用到的脚本不能解决Netfilter内部的bug,给出它们,只是为了演示如何构造规则,以便我们能解决遇到的数据流管理问题。但本文没有包括象“如何关闭HTTP端口,因为Apache 1.2.12偶尔会被攻击” 这样的问题...
在Linux内核上,netfilter是负责数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪等功能的一个子系统,这个子系统包含一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables是一个...
iptables详细命令
将本地3389端口 转发到192.168.10.210的22(主要访问到本机的15210端口,就会跳转到192.168.10.210的22) 【步骤】 1、 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0 这样允许...
iptables 高级使用研讨
第一章序言部分除了第三...第五章和第六章是iptables命令使用方法的详细介绍。 第七章与第八章是实例讲解,对我们编写自己的规则很有指导意义的,强烈建议你看一看。 附录里有一些资源链接是很好的,相信你一定会喜欢。
使用IPTABLES对于网管来说是家常便饭,希望这个文档对你有用,谢谢