zoukankan      html  css  js  c++  java
  • Linux IPTABLES端口转发

      之前在Linux上用普通用户部署了一个Tomcat,然后将其server.xml中的端口配置为80端口,用普通用户运行就提示绑定端口失败(permission denied),google了一下,原来是Linux下,1024端口以下的,普通用户是无法使用的,只能通过Root用户来使用,这就造成一个问题,浏览器默认请求的端口是80,所以不需要用户在浏览器地址栏的地址后面加入端口,要是你自己的tomcat是8080端口,为了能正常访问,用户就不得不在地址后面添加上8080,这样就不行了,有什么方法可以解决这件事么?

      用Linux的iptables来进行端口的转发,首先粗略来了解一下ipatbels:

      iptables是Linux系统上的IP 信息包过滤系统,你就把它看成一个防火墙,可以对进出的数据包进行过滤。

      iptabels以供有四张表和五条链:

        4个表:filter,nat,mangle,raw,默认表是filter(没有指定表的时候就是filter表)。表的处理优先级:raw>mangle>nat>filter。

          filter:一般的过滤功能

          nat:用于nat功能(端口映射,地址映射等)

          mangle:用于对特定数据包的修改

              raw:有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能

        5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。

               PREROUTING:数据包进入路由表之前

               INPUT:通过路由表后目的地为本机

               FORWARDING:通过路由表后,目的地不为本机

               OUTPUT:由本机产生,向外转发

               POSTROUTIONG:发送到网卡接口之前。

      然后查看iptables中已有的规则:

      iptables -L [-t 表名],如下图:

      

      然后往nat表中添加一个端口转发,将80端口转发到8080端口之上

    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端口. 

      

      

  • 相关阅读:
    其实你的痛苦 跟别人完全没有关系
    一篇很好的“金刚念诵要诀” 首愚法师开示【精华】 [唇齿不动]的过程及要诀
    无我的智慧十五
    随在你:放心的智慧
    利用念头及情绪
    [转载]无我的智慧 第一章 镜中修行
    看到自己真实本性的人
    肯.威尔伯论觉知
    觉醒之光【六】觉醒
    觉醒之光【十一】关系
  • 原文地址:https://www.cnblogs.com/WreckBear/p/5950013.html
Copyright © 2011-2022 走看看