zoukankan      html  css  js  c++  java
  • Linux 配置端口映射

    前述

    改博文使用的是 iptables 来做端口映射。如果使用的系统是 Centos/Redhat/Fedora 那么需要关闭 firewalld 服务才能成功。
    firewall 与 iptables 两个防火墙的关系,请自行百度。

    打开 IP 转发

    打开 IP 转发(路由器设备是默认打开的),必须允许 IP 转发,否则即使设置了 nat 映射规则,也是不能发生映射的,因为不开启转发,包不能被发过去。

    echo 1 > /proc/sys/net/ipv4/ip_forward
    

    从一台机器映射到另一台机器

    映射关系 192.168.122.1:80 ---> 192.168.122.221:80
    192.168.122.221 在 80 端口开启了 nginx 服务器
    本地链路的报文是不需要经过 PREROUTING 与 POSTROUTING 的,所以必须配置 OUTPUT 否则在本机上测试会发现转发规则无效!

    • 在 192.168.122.1 配置如下规则,然后在 192.168.122.1(本机) 的机器能访问 “192.168.122.1:80”
    iptables -t nat -A OUTPUT -p tcp -d 192.168.122.1 --dport 80 -j DNAT --to 192.168.122.221:80
    
    • 在 192.168.122.1 配置如下规则,然后在 192.168.122.29(其他设备) 能访问 ”192.168.122.1:80“
    # 配置目的地址转换
    iptables -t nat -A PREROUTING -p tcp -d 192.168.122.1 --dport 80 -j DNAT --to 192.168.122.221:80
    # 配置源地址转换
    iptables -t nat -A POSTROUTING -p tcp -d 192.168.122.221 --dport 80 -j SNAT --to 192.168.122.1 
    

    从本机一个端口到另一个端口

    映射关系 192.168.122.221:8080 ---> 192.168.122.221:80
    本地链路上的报文是不需要经过 PREROUTING 与 POSTROUTING 的,所以必须配置 OUTPUT 否则在本机上测试会发现转发规则无效!
    192.168.122.221 在 80 端口开启了 nginx 服务器

    • 在 192.168.122.221 配置如下规则, 8080 映射到 80,这样本机能访问 “127.0.0.1:8080”
    iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 8080 -j DNAT --to-port 127.0.0.1:80 
    
    • 在 192.168.122.221 配置如下规则, 8080 映射到 80,这样能访问 “192.168.122.221:8080”
    iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80
    

    其他

    # 查看 nat 链规则
    iptables -t nat -L -n --line-number
    
    # 删除规则 POSTROUTING 的规则 1
    iptables -t nat -D POSTROUTING 1
    
  • 相关阅读:
    Luogu_P3435 [POI2006]OKR-Periods of Words KMP
    NOIP2019游记
    []記錄容易出錯的地方和一些知識
    [题解]luogu_P3939_数颜色(vector二分
    [题解]luogu_P4819_杀人游戏(缩点
    [题解]NOIP2018_赛道修建(二分/树形dp/set/贪心
    [题解]luogu_P4161_(排列/lcm
    [题解]luogu_P4886_快递员(点分治
    [题解]luogu_P3523(树上覆盖
    [题解]luogu_P2466(区间dp
  • 原文地址:https://www.cnblogs.com/sinpo828/p/14103831.html
Copyright © 2011-2022 走看看