腾讯云VPC配置公网网关:腾讯云私有网络配置云主机为公网网关的操作步骤

本站:VPS参考评测推荐,专注分享VPS服务器优惠信息!若您是商家也可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
部分文章发布时间较久远,可能存在未知因素,购买时建议在本站搜索商家名称,可查看相关文章充分了解商家!若非中文页面可使用谷歌浏览器同步翻译!PayPal代付/收录合作

当您的腾讯云VPC中的部分云主机没有公共公网IP,但需要访问公网时,您可以使用有公网IP(普通公网IP或弹性公网IP)的云主机访问公共网络。公网网关云主机将对传出的网络流量进行源地址转换。其他所有云主机通过公网网关云主机访问公网流量后,将源IP转换为公网网关云主机的公网IP地址,如下图:

先决条件

1、 登录云主机控制台。

2、公网网关云主机只能转发不在其所在子网内的路由转发请求。因此,公网网关云主机不能与需要使用公网网关访问公网的云主机在同一子网。 .

3、公网网关云主机必须是Linux云主机,Windows云主机不能作为公网网关。

操作步骤

第一步:绑定弹性IP(可选)

说明:

如果作为公网网关的云主机已有公网IP地址,请跳过此步骤,完成后续步骤。

1、登录云主机控制台,点击左侧导航栏中的【弹性公网IP】,进入弹性公网IP管理页面。

2、在要绑定实例的弹性公网IP操作栏中,选择【更多】>【绑定】。

3、在“绑定资源”弹出框中,选择一个选为公网网关的CVM实例进行绑定。

第二步:配置网关所在子网的路由表

网关子网和公共子网不能关联同一张路由表。需要创建独立的网关路由表,并将网关子网与路由表关联起来。

1、创建自定义路由表。

2、创建后会提示关联子网操作,可以直接关联公网网关主机所在的子网。

第三步:配置公共子网路由表

配置公共子网的路由表,并配置默认路由到公网网关云主机,使公共子网中的云主机可以通过公网的路由转发能力访问公网网络网关。

在普通云主机所在子网的路由表中,添加如下路由策略:

Destination:你要访问的公网地址。

下一跳类型:云主机。

下一跳:步骤1绑定EIP的ECS实例的内网IP。

第四步:配置公网网关

1、登录公网网关云主机,进行如下操作,开启网络转发和NAT代理功能。

执行以下命令,在usr/local/sbin目录下新建脚本vpcGateway.sh。

 vim /usr/local/sbin/vpcGateway.sh  按 “i” 切换至编辑模式,将如下代码写入脚本中。  #!/bin/bash  echo "----------------------------------------------------"  echo " `date`"  echo "(1)ip_forward config......"  file="/etc/sysctl.conf"  grep -i "^net\.ipv4\.ip_forward.*" $file >/dev/null  sed -i \  's/net\.ipv4\.ip_forward.*/net\.ipv4\.ip_forward = 1/' $file || \  echo "net.ipv4.ip_forward = 1" >> $file  echo 1 >/proc/sys/net/ipv4/ip_forward  [ `cat /proc/sys/net/ipv4/ip_forward` -eq 1 ]  echo "-->ip_forward:Success" || \  echo "-->ip_forward:Fail"  echo "(2)Iptables set......"  iptables -t nat -A POSTROUTING -j MASQUERADE  echo "-->nat:Success" || echo "-->nat:Fail"  iptables -t mangle -A POSTROUTING -p tcp -j TCPOPTSTRIP --strip-options timest  \  echo "-->mangle:Success" || echo "-->mangle:Fail"  echo "(3)nf_conntrack config......"  echo 262144 > /sys/module/nf_conntrack/parameters/hashsize  [ `cat /sys/module/nf_conntrack/parameters/hashsize` -eq 262144 ]  \  echo "-->hashsize:Success" || echo "-->hashsize:Fail"  echo 1048576 > /proc/sys/net/netfilter/nf_conntrack_max  [ `cat /proc/sys/net/netfilter/nf_conntrack_max` -eq 1048576 ]  \  echo "-->nf_conntrack_max:Success" || echo "-->nf_conntrack_max:Fail"  echo 10800 >/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established \  [ `cat /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established` -eq 10800 ] \   echo "-->nf_conntrack_tcp_timeout_established:Success" || \  echo "-->nf_conntrack_tcp_timeout_established:Fail"

按“Esc”,输入“:wq”,保存文件并返回。

执行以下命令设置脚本文件权限。

chmod +x /usr/local/sbin/vpcGateway.sh  echo "/usr/local/sbin/vpcGateway.sh >/tmp/vpcGateway.log 2>1" >> /etc/rc.local

2、设置公网网关的rps:

执行如下命令,在usr/local/sbin目录下新建脚本set_rps.sh。

 vim /usr/local/sbin/set_rps.sh

按“i”切换到编辑模式,将以下代码写入脚本。

 # !/bin/bash  echo "--------------------------------------------"  date  mask=0  i=0  total_nic_queues=0  get_all_mask() {  local cpu_nums=$1  if [ $cpu_nums -gt 32 ]; then  mask_tail=""  mask_low32="ffffffff"  idx=$((cpu_nums / 32))  cpu_reset=$((cpu_nums - idx * 32))  if [ $cpu_reset -eq 0 ]; then  mask=$mask_low32  for ((i = 2; i /dev/null  if [ $? -ne 0 ]; then # not smartnic  #multi queue don't set rps  max_combined=$(  $ethtool -l $eth 2>/dev/null | grep -i "combined" | head -n 1 | awk '{print $2}'  )  #if ethtool -l $eth goes wrong.  [[ ! "$max_combined" =~ ^[0-9]+$ ]]  max_combined=1  if [ ${max_combined} -ge ${cpu_nums} ]; then  echo "$eth has equally nic queue as cpu, don't set rps for it..."  continue  fi  else  echo "$eth is smartnic, set rps for it..."  fi  echo "eth:$eth queues:$nic_queues"  total_nic_queues=$(($total_nic_queues + $nic_queues))  i=0  while (($i /sys/class/net/$eth/queues/rx-$i/rps_cpus  echo 4096 >/sys/class/net/$eth/queues/rx-$i/rps_flow_cnt  i=$(($i + 1))  done  done  flow_entries=$((total_nic_queues * 4096))  echo "total_nic_queues:$total_nic_queues flow_entries:$flow_entries"  echo $flow_entries >/proc/sys/net/core/rps_sock_flow_entries  }  set_rps

按“Esc”,输入“:wq”,保存文件并返回。

执行以下命令设置脚本文件权限。

chmod +x /usr/local/sbin/set_rps.sh  echo "/usr/local/sbin/set_rps.sh >/tmp/setRps.log 2>1" >> /etc/rc.local  chmod +x /etc/rc.d/rc.local

3、完成上述配置后,重启公网网关云主机,使配置生效,并在没有公网IP的云主机上测试是否可以成功访问公网。

本文由本站刊发,转载请注明:腾讯云VPC配置公网网关:腾讯云私有网络配置云主机为公网网关的操作步骤,https://本站.com/68200.html

推荐站内搜索:双线虚拟主机、网址域名注册、视频服务器配置、网站服务器在线查ip、免费com域名注册网站、免费云主机、外网ip地址、ip地址查找、域名注册信息查询、