美文网首页
关于使用iptables实现nat配置正向代理的方式

关于使用iptables实现nat配置正向代理的方式

作者: finaliver | 来源:发表于2022-02-08 15:05 被阅读0次

    概述

    由于某些原因,需要实现一个海外VM的源地址限制访问,因此,在国内也租一台VM,然后配置正向代理方式,同时在海外VM配置源地址限制。

    在linux中,转发的报文流向是:PREROUTING --> FORWARD --> POSTROUTING,所以这里需要配置PREROUTING和POSTROUTING两个链。

    国内VM配置方式

    # PREROUTING 这个链配置的是公网数据包发给这台VM后的处理方式(即主动访问这台VM)
    # -t nat 是指用nat功能,-A是添加一条记录,--dport外部访问本地6111端口
    # -j指定规则的目标
    # DNAT 进行源地址转换(即重写包的目的地址,本来数据包的目的地址是这台国内VM,需要改为海外VM)
    # --to-destination 指目标发往哪里
    #
    # 整段命令的意思是:将所有发给本地23333端口的tcp报文,转发到海外IP(1.2.3.4)和端口23333
    iptables -t nat -A PREROUTING -p tcp --dport 23333 -j DNAT --to-destination  1.2.3.4:23333
    
    # POSTROUTING 这个链配置的是公网数据包发给这台VM后的处理方式
    # 整段命令的意思是:针对来自1.2.3.4:23333的数据包,回本机网卡
    # 这里需要通过ifconfig查询网卡的物理IP,因为一般VM都会有VPC虚拟局域网,并通过EIP映射至公网,所以这里需要配置为本地IP(通常为172开头)
    iptables -t nat -A POSTROUTING -p tcp -d 1.2.3.4 --dport 23333 -j SNAT --to-source 172.1.2.3
    
    # 下面两个命令是针对udp数据包进行同样的配置
    iptables -t nat -A PREROUTING -p udp --dport 23333 -j DNAT --to-destination 1.2.3.4:23333
    iptables -t nat -A POSTROUTING -p udp -d 1.2.3.4  --dport 23333 -j SNAT --to-source 172.1.2.3
    

    海外VM配置方式

    # 这里4.3.2.1是国内VM的公网IP地址,表示接收来自4.3.2.1的任意端口的请求
    iptables -I INPUT -s 4.3.2.1 -j ACCEPT
    # 这里讲22端口的tcp访问方式永远开放,用来从本地发起ssh
    iptables -I INPUT 2 -p tcp --dport 22 -j ACCEPT
    # 接下来丢弃所有报文,注意这里第三行必须晚于第二行写入,删除时必须先删除第三行,不然就变砖了
    iptables -I INPUT 3 -j DROP
    

    相关文章

      网友评论

          本文标题:关于使用iptables实现nat配置正向代理的方式

          本文链接:https://www.haomeiwen.com/subject/gypbkrtx.html