阿里云 VPC 环境内网服务器访问外网
环境要求
需要在同一个 VPC 局域网的多台主机,其中至少有一台主机是可以有外网 ip 可以访问外网的
配置软路由器
这套网络环境最主要的解决方案就是实现一台软路由器,可以访问外网,因此有外网 ip 的代理服务器就充当了这个角色。
Linux 配置软路由:
注意以下方法均在可以访问外网的那台服务器上配置
方法 1
1. 查看外网上的转发功能的开启
没开启的话直接
echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf && sysctl -p2. 外网机上配置 iptables
iptables -t nat -A POSTROUTING -s 172.19.xx.xx/20 -o eth0 -j MASQUERADE
其中 172.19.xx.xx/20 为内网机器的 ip 段
方法 2
- 修改
/etc/sysctl.conf
文件,添加配置net.ipv4.ip_forward=1
- 使用
sysctl -p
命令重新加载配置生效cat /proc/sys/net/ipv4/ip_forward
检查下配置是不是1
- 启用 iptables 的 SNAT 链:
iptables -t nat -R POSTROUTING 1 -s 172.19.0.0/16 -j MASQUERADE
(iptables 规则重启会清空,参考各个不同的 Linux 操作系统如何持久化这个规则。其中-s
参数指定了 source 网段,根据 VPC 的网段配置决定,如果不加这个参数则对所有 source 均可路由,这显然对内网服务是隐患 )
可用命令
查看 nat 规则
iptables -L -t nat
删除第一条 nat 规则
iptables -t nat -D POSTROUTING 1
在 Aliyun 配置 VPC 的路由规则
打开 VPC 的控制台,找到添加路由表,添加一条0.0.0.0/0
(即默认路由) 的规则:
注意在该 vpc 路由下面一定要设置为 0.0.0.0/0
在我的场景下,将默认路由指向有外网访问权限的代理服务器上即可。如果用 NAT 方案,下一条类型选成 NAT 即可。这时候打开原本不能访问外网的 windows 服务器看看,是不是能 ping 通了?
在外网环境访问内网,Linux 下同样可以用 iptables 来实现,也可使用 rinetd 这个简单的服务,参考阿里云的文档: https://help.aliyun.com/knowledge_detail/42525.html
本文内容由互联网用户自发贡献,版权归作者所有,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:jaagool@sina.cn 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。