zoukankan      html  css  js  c++  java
  • 如何通过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日
  • 相关阅读:
    git命令
    熟悉sql常用语句
    面试:django
    python面试基本题(你需要的)
    django的几种方法进行序列化(视图)
    阿布云代理ip
    了解Git操作
    django前后端交互
    面向对象
    mysql数据库基本操作
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575477.html
Copyright © 2011-2022 走看看