A机器有公网,B机器无公网
需求: 使B机器利用A机器来上网
描述: 此需求A机器充当B机器的网关,B机器网关需指向A机器,在A机器上进行iptables规则转发
前提: 1. A\B两台机器需确保在同一内网环境下
2. A\B两台机器属于不同子网(云上存在限制,同一子网的机器无法配置公网网关)
3. 安全组ACL无拦截限制,服务器内部防火墙无拦截限制,SElinux无限制
4. A机器需要Linux系统(需开启内核转发)
云上环境因为本身网络的便捷性,不需要在B机器内主动配置网关指向及网关配置修改(需根据实际环境判断)
操作过程:
- 登录A机器,执行命令: iptables -t nat -A POSTROUTING -s 172.21.80.5/16 -j MASQUERADE ##172.21.80.5/16为B机器的内网IP或者CIDR
- 登录A机器,执行命令: echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf && sysctl -p ## 开启内核转发
- 登录云控制台,找到B机器所属子网,添加路由规则
4. 添加规则之后在B机器内 ping qq,com验证即可
完!