zoukankan      html  css  js  c++  java
  • linux端口转发:分为本机端口转发和将本机端口转发到其他机器 这2种情况

    第1种情况:
    将本机的端口转发到本机的另外不同的端口上

    使用场景:比如将本机的18006端口转发 到 本机的8006端口上,8006端口(真正服务所在的监听端口)只允许本地localhost访问,而18006端口可以在外部访问时,这种方式很管用。
    iptables -t nat -I PREROUTING -m tcp -p tcp -d 106.111.110.223 --dport 18006 -j REDIRECT --to-ports 8006
    或者
    iptables -t nat -I PREROUTING -p tcp -d 166.111.110.223 --dport 18006 -j DNAT --to 166.111.110.223:8006 这种方式比较特殊,但不能改成这样iptables -t nat -I PREROUTING -p tcp -d 166.111.110.223 --dport 18006 -j DNAT --to 127.0.0.1:8006

    参考例子:设置端口转发功能,将192.168.91.129 10001端口的请求转发到 192.168.91.129的8080端口
    iptables -t nat -A PREROUTING -p tcp -i eno16777736 -d 192.168.91.129 --dport 10001 -j DNAT --to 192.168.91.129:8080
    以下3句是保证在本机可以通过10001端口访问到8080
    iptables -t nat -A PREROUTING -p tcp -i lo -d 127.0.0.1 --dport 10001 -j DNAT --to 192.168.91.129:8080
    iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 10001 -j DNAT --to 192.168.91.129:8080
    iptables -t nat -A OUTPUT -p tcp -d 192.168.91.129 --dport 10001 -j DNAT --to 192.168.91.129:8080

    第2种情况:
    将本机(机器1)的端口 转移 到其他机器上(机器2)
    使用场景:通俗的说就是端口映射
    iptables -t nat -I PREROUTING -p tcp -d 166.111.110.223 --dport 18006 -j DNAT --to 100.72.139.1:8006
    注意端口映射还需要机器1上开启net.ipv4.ip_forward=1以及snat 在机器2上设定机器1为默认路由
    例子如下:
    iptables -t nat -A PREROUTING -d 192.168.172.130 -p tcp --dport 8000 -j DNAT --to-destination 192.168.172.131:80
    iptables -t nat -A POSTROUTING -d 192.168.172.131 -p tcp --dport 80 -j SNAT --to 192.168.172.130

    注意:实际使用过程中在ros只定义了dnat也即上面的第一步,不需要第2步,也可以正常的对外提供服务)

    在firewalld中的实现:
    1)msquerade firewall-cmd --permanent --add-masquerade
    2)firewall-cmd --permanent --add-forward-port=port=12345:proto=tcp:toaddr=192.168.172.131:toport=22
    3)生效 firewalld-cmd --reload

    其实还可以利用ncat实现端口转发(涉及gnb项目的udp数据通过tcp来转发-gnb_udp_over_tcp)
    参考:Linux端口转发的几种常用方法 https://blog.csdn.net/u014389734/article/details/108989653

  • 相关阅读:
    80端口被系统占用
    一些CSS技巧
    js 字符串日期 转成 Date
    mysql: java.sql.SQLException: Incorrect string value: 'xF0x9Fx92x90</...'
    tomcat升级问题
    [转]一个商业计划书模板
    [前端]利用a标签获取url里所需的内容
    回归研发一线
    在程序中打开浏览器(方法1)
    在活动之间切换(显式Intent)
  • 原文地址:https://www.cnblogs.com/weihua2020/p/13845711.html
Copyright © 2011-2022 走看看