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

      

      

  • 相关阅读:
    php RabbitMQ使用
    phalcon: 开启模板缓存和缓存路径
    phalcon:整合官方多模块功能,方便多表查询
    mysql: 模糊查询 feild like keyword or feild like keyword , concat(feild1,feild2,feild3) like keyword
    php的http数据传输get/post...
    java大数字操作:BigInteger,BigDecimal(浮点型)
    DecimalFormat数据格式函数
    MySQL比like语句更高效的写法locate position instr find_in_set
    mysql中使用instr替换like
    mysql中的多行查询结果合并成一个
  • 原文地址:https://www.cnblogs.com/WreckBear/p/5950013.html
Copyright © 2011-2022 走看看