如何通过代理访问内网

场景

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

机器IP

内网为127.0.0.x/24

A机器为127.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这个进行转发

在客户端机器执行

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的机器进行通信了