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: 权限不够
相关推荐
linux下使用iptables开放80和22端口的详细操作步骤。
下面小编就为大家带来一篇利用iptables来配置linux禁止所有端口登陆和开放指定端口的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
iptables是一个Linux下优秀的nat+防火墙工具
Linux+iptables+防火墙+添加删除+端口.doc
PREROUTING链是在路由之前要过的链,负责改变目的地址和(或端口),通常用在端口转发或者nat到内网的DMZ区。例如,我们的公网IP是60.1.1.1/24,位于Linux中的eth0,内网IP是10.1.1.1/24,位于Linux中的eth1,我们的...
通过以上步骤,你应该能够成功地在CentOS VPS上打开80端口,从而解决网站无法访问的问题。同时,也要确保Web服务器软件(如Apache或Nginx)已经正确配置并正在监听80端口。如果网站依然无法访问,可能需要进一步排查...
iptables端口映射,硬件iptables的原理简单解析
Linux 环境Iptables关闭端口
众所周知,在unix下,非root用户不能监听1024以上的端口号,这个tomcat服务器就没办法绑定在80端口下。所以这里需要使用linux的端口转发机制,把到80端口的服务请求都转到8080端口上。 在root账户下面运行一下命令:...
iptables 也可以用于 NAT 转发,例如要将外部请求的 80 端口转发到内部的 192.168.100.2 的 80 端口,可以使用以下命令:`iptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-...
CentOS 安装使用Iptables,1.安装iptables-services2.设置开机启动3.配置说明
### Centos离线安装iptables详解 #### 一、前言 在CentOS系统中,iptables是用于设置网络规则的重要工具之一。然而,在某些情况下,由于网络环境限制或安全考虑,我们可能...希望本文能帮助到遇到类似问题的朋友。
解决centos7的iptabels 文件丢失的问题。
在使用 iptables 防火墙之前,需要清除已有的规则,以免与新的规则冲突。可以使用以下命令清除已有的规则: iptables -F iptables -X iptables -Z 开放指定的端口 为了允许访问 Linux 系统的某些端口,需要添加...
使用iptables限制流量请求,使用iptables限制流量请求,使用iptables限制流量请求
iptables 简单设置指定端口访问权限新增,删除规则等
<br>文中用到的脚本不能解决Netfilter内部的bug,给出它们,只是为了演示如何构造规则,以便我们能解决遇到的数据流管理问题。但本文没有包括象“如何关闭HTTP端口,因为Apache 1.2.12偶尔会被攻击” 这样的问题...
- 甲使用客户端软件发起连接,通常使用一个临时端口(通常是大于1024的端口)。 - 乙的Telnet Server监听的端口通常是23号端口。 #### 九、总结 iptables是一款功能强大的工具,通过灵活配置可以满足不同场景下的...
在Linux内核上,netfilter是负责数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪等功能的一个子系统,这个子系统包含一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。iptables是一个...
本文将详细介绍如何在Linux系统下让Tomcat使用80端口,以及如何通过iptables实现端口转发。 首先,需要理解的是,1024以下的端口在Linux系统中被视为特权端口,只能由root用户或以root权限运行的服务来绑定。由于...