参考
原理
从【没有宽带的服务器】发起网络请求,这个请求会首先进入【专有网络VPC(Virtual Private Cloud)】。在VPC中,系统会【查询路由表】,根据路由规则确定请求的转发路径。随后,请求会被【转发到有公网带宽的服务器】上,由这台服务器负责进一步处理并最终发出实际的网络请求到互联网。
可以理解为将有公网的服务器作为路由器进行使用。
操作
1、配置转发
进入有公网带宽的ECS的终端,编辑文件/etc/sysctl.conf
vi /etc/sysctl.conf
将配置net.ipv4.ip_forward=1
添加到最后一行,如:
vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time = 120
# see details in https://help.aliyun.com/knowledge_detail/39428.html
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
# see details in https://help.aliyun.com/knowledge_detail/41334.html
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
kernel.sysrq = 1
net.ipv4.ip_forward=1
保存后,执行命令,触发生效
sysctl -p
检查是否生效(输出1
表示已生效)
cat /proc/sys/net/ipv4/ip_forward
设置ECS的路由表,转发所有数据
iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j MASQUERADE
# 删除使用以下命令
# iptables -t nat -D POSTROUTING -s 0.0.0.0/0 -j MASQUERADE
检查配置是否生效
iptables -L -t nat
输出内容如下:
[root@iZbp1cfrqj4pztn8zh9yzsZ ~]# iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.31.0.0/16 anywhere
2、在阿里云上配置VPC路由表
对于下一跳的选择,您可以选择一个具备公网带宽的ECS(Elastic Compute Service,弹性计算服务)实例。确保所选的ECS实例已配置有公网宽带,以满足您的网络需求。
3、配置安全组
创建一个名为"内网互访"的安全组,并将所有需要共享公网宽带的ECS服务器(包括具有公网访问权限的那一台)添加至该安全组中。
欢迎关注星球 : 点击打开