• 如何通过iptables代理访问内网


    场景

    A机器能够联通内网机器,B机器能够联通A机器,但是访问不到内网机器,场景是希望通过A机器能够转发直接联通局域网内的其它机器

    机器IP

    内网为172.0.0.x/24

    A机器为172.0.0.10/24

    A机器为192.168.1.10/24

    B机器IP为192.168.1.20/24

    进行设置

    在A机器上进行设置

    [root@jenkins ~]# cat ip.sh 
    #!/bin/sh 
    # 
    IPT="/sbin/iptables"
    
    /bin/echo "1" > /proc/sys/net/ipv4/ip_forward
    
    /sbin/modprobe ip_tables
    /sbin/modprobe iptable_filter
    /sbin/modprobe iptable_nat
    /sbin/modprobe ip_conntrack
    /sbin/modprobe ip_conntrack_ftp
    /sbin/modprobe ip_nat_ftp
    
    $IPT -F
    $IPT -t nat -F
    $IPT -X
    $IPT -t nat -X
    $IPT -Z
    $IPT -t nat -Z
    
    $IPT -t nat -A POSTROUTING -s  192.168.1.0/255.255.255.0 -j SNAT --to 172.0.0.10
    $IPT -A FORWARD -s 192.168.1.20 -j ACCEPT
    

    意思是来自192.168.1.0网段的数据通过172.0.0.10这个进行转发,这个172.0.0.10是转发机器本机的ip

    在客户端192.168.1.20机器执行

    route  add  -p  172.0.0.0 mask 255.255.255.0 192.168.1.10
    

    -p 参数:p 即 persistent 的意思

    -p 表示将路由表项永久加入系统注册表

    如果要删除

    route delete 172.0.0.0
    

    通过添加静态路由,把发往172.0.0.0网段的数据通过192.168.1.10这个网关进行转发

    然后这个192.168.1.20的机器就能跟内网的172.0.0.x的机器进行通信了

    备注

    #songtao to 254
    $IPT -t nat -A POSTROUTING -s  66.66.66.64/255.255.255.255 -j SNAT --to 192.168.188.247
    $IPT -A FORWARD -s 66.66.66.64 -d 192.168.188.12 -j ACCEPT
    

    如果是内网的,并且只代理一个ip的,可以这样处理
    66.66.66.64为客户端机器
    192.168.188.12为目标机器
    192.168.188.247为代理机器本地的ip,能够连通目标机器的那个ip
    第二行为指定可以访问的ip

    更新历史

    why when
    创建 2019年09月04日
    更新 2019年12月9日
  • 相关阅读:
    webpack--前端自动化工具
    Vue--入门篇
    集千篇理论,终得深拷贝与浅拷贝的初解
    事件循环--eventloop
    对象的属性(变量+对象)
    集千篇理论精华,感悟对同步和异步的理解
    vue--先决篇
    js的基本语法规范
    python 模块加载错误总结
    Python logging模块无法正常输出日志
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575477.html
Copyright © 2020-2023  润新知