VPS参考、测评、推荐
分享你关注的VPS主机优惠信息

腾讯云VPC配置公网网关:腾讯云私有网络配置云服务器为公网网关的操作步骤

腾讯云VPC配置公网网关:腾讯云私有网络配置云服务器为公网网关的操作步骤

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

腾讯云VPC配置公网网关:腾讯云私有网络配置云服务器为公网网关的操作步骤

先决条件

1、 云服务器控制台。

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

3、公网网关云服务器必须是云服务器,Windows云服务器不能作为公网网关。

操作步骤

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

说明:

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

1、云服务器控制台,点击左侧栏中的【弹性公网IP】,进入弹性公网IP管理

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

腾讯云VPC配置公网网关:腾讯云私有网络配置云服务器为公网网关的操作步骤

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

腾讯云VPC配置公网网关:腾讯云私有网络配置云服务器为公网网关的操作步骤

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

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

1、创建自定义路由表。

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

腾讯云VPC配置公网网关:腾讯云私有网络配置云服务器为公网网关的操作步骤

第三步:公共子网路由表

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

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

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

下一跳类型:云服务器。

下一跳:步骤1绑定EIP的ECS实例的内网IP。 腾讯云VPC配置公网网关:腾讯云私有网络配置云服务器为公网网关的操作步骤

第四步:配置公网网关

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 "^.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 timestamp &&    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; then   source /etc/profile   fi   ethtool=$(which ethtool)   cpu_nums=$(cat /proc/cpuinfo | grep processor | wc -l)   if [ $cpu_nums -eq 0 ]; then   exit 0   fi   mask=$(get_all_mask $cpu_nums)   echo "cpu number:$cpu_nums mask:0x$mask"   ethSet=$(ls -d /sys/class/net/eth*)   for entry in $ethSet;    eth=$(basename $entry)   nic_queues=$(ls -l /sys/class/net/$eth/queues/ | grep rx- | wc -l)   if (($nic_queues == 0)); then   continue   fi   cat /proc/interrupts | grep "LiquidIO.*rxtx" &>/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://vps.caogenba../68200.html

如今做站的人不多了,多个朋友多条路子,加入站长论坛和大佬们同道交流,Tips:可以免费打广告哦~ 点击立即加入>>

赞(0) 打赏
未经允许不得转载:草根吧VPS_最新VPS信息参考 » 腾讯云VPC配置公网网关:腾讯云私有网络配置云服务器为公网网关的操作步骤
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址