云服务器内容精选

  • 约束与限制 同一个公网NAT网关下的多条规则可以复用同一个弹性公网IP,不同网关下的规则必须使用不同的弹性公网IP。 一个VPC支持关联多个公网NAT网关。 SNAT、DNAT可以共用同一个弹性公网IP,节省弹性公网IP资源。但是在选用全端口模式下,DNAT优先占用全部端口,这些端口不能被 SNAT 使用。因此SNAT规则不能和全端口的DNAT规则共用EIP,以免出现业务相互抢占问题。 公网NAT网关支持转换的资源类型不包括企业型VPN。 当云主机同时配置弹性公网IP服务和公网NAT网关服务时,数据均通过弹性公网IP转发。 出于安全因素考虑,部分运营商会对下列端口进行拦截,导致无法访问。建议避免使用下列端口: 协议 不支持端口 TCP 42 135 137 138 139 444 445 593 1025 1068 1434 3127 3128 3129 3130 4444 4789 4790 5554 5800 5900 9996 UDP 135~139 1026 1027 1028 1068 1433 1434 4789 4790 5554 9996
  • 前提条件 购买公网NAT网关必须指定公网NAT网关所在VPC、子网。 由于需要放通到公网NAT网关的流量,即在VPC中需要有指向公网NAT网关的路由,因此在购买公网NAT网关时,会自动在VPC的默认路由表中添加一条0.0.0.0/0的默认路由指向所购买的公网NAT网关。如果在购买公网NAT网关前,VPC默认路由表下已经存在0.0.0.0/0的默认路由,则会导致自动添加该默认路由指向公网NAT网关失败,此时需要在公网NAT网关购买成功后,手动为此网关添加一条不同的路由或在新路由表中创建0.0.0.0/0的默认路由指向该网关。
  • 请求示例 创建公网NAT网关 POST https://{Endpoint}/v2/70505c941b9b4dfd82fd351932328a2f/nat_gateways { "nat_gateway" : { "name" : "nat_001", "description" : "my nat gateway 01", "router_id" : "d84f345c-80a1-4fa2-a39c-d0d397c3f09a", "internal_network_id" : "89d66639-aacb-4929-969d-07080b0f9fd9", "spec" : "1", "enterprise_project_id" : "0aad99bc-f5f6-4f78-8404-c598d76b0ed2" } }
  • 响应示例 状态码: 201 创建公网NAT网关实例成功。 { "nat_gateway" : { "id" : "14338426-6afe-4019-996b-3a9525296e11", "name" : "nat_001", "description" : "my nat gateway 01", "router_id" : "d84f345c-80a1-4fa2-a39c-d0d397c3f09a", "spec" : "1", "admin_state_up" : true, "tenant_id" : "70505c941b9b4dfd82fd351932328a2f", "internal_network_id" : "89d66639-aacb-4929-969d-07080b0f9fd9", "enterprise_project_id" : "0aad99bc-f5f6-4f78-8404-c598d76b0ed2", "status" : "PENDING_CREATE", "billing_info" : "", "dnat_rules_limit" : 200, "snat_rule_public_ip_limit" : 20, "ngport_ip_address" : "192.168.0.138", "created_at" : "2019-04-22 08:47:13.234512" } }
  • 检查弹性云服务器端口 确保弹性云服务器端口正常工作,处于LISTEN状态。表5为常见TCP状态。 Linux操作系统云服务器端口通信问题排查 使用netstat -antp命令检查服务的状态,确认端口是否正常监听。 例如:netstat -ntulp |grep 80 图7 查看端口监听状态_linux 如果端口没有被正常监听,请重新开启弹性云服务器端口。 Windows操作系统云服务器端口通信问题排查 使用远程端口检测命令: 打开CMD命令行窗口。 执行netstat -ano | findstr “PID”命令查看进程使用的端口号。 例如:netstat -ano | findstr “80” 图8 查看端口监听状态_windows 如果端口没有被正常监听,请重新开启弹性云服务器端口。 表5 常见TCP状态 TCP状态 说明 对应场景 LISTEN 侦听来自远方的TCP端口的连接请求 正常TCP服务端 ESTABLISHED 代表一个打开的连接 正常TCP连接 TIME-WAIT 等待足够的时间以确保远程TCP接收到连接中断请求的确认 已关闭的TCP连接,一般1分钟后清除。 CLOSE-WAIT 等待从本地用户发来的连接中断请求 应用程序BUG,没有关闭socket。出现在网络中断后。一般是进程死循环或等待其他条件。可以重启对应进程。 FIN-WAIT-2 从远程TCP等待连接中断请求 网络中断过,需要12分钟左右自行恢复。 SYN-SENT 再发送连接请求后等待匹配的连接请求 TCP连接请求失败。一般是服务端CPU占用率过高,处理不及时导致。DDos攻击也会出现此情况。 FIN-WAIT-1 等待远程TCP连接中断请求,或先前的连接中断请求的确认 网络中断过,此状态可能不会自行修复(等15分钟以上确认),如果长期占用端口需要重启OS恢复。
  • 排查思路 以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。 如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。 图1 网络不通排查思路 表1 网络不通排查思路 可能原因 处理措施 路由表配置不正确 请在路由表中添加指向公网NAT网关的默认路由或路由,详细操作请参考检查路由表是否配置指向公网NAT网关网关的默认路由。 弹性云服务器绑定了弹性公网IP 请为弹性云服务器解绑弹性公网IP,详细操作请参考检查弹性云服务器是否绑定了弹性公网IP。 安全组规则未放通 请放通弹性云服务器对应的安全组规则,详细操作请参考检查安全组规则。 网络ACL配置不正确 请配置网络ACL规则放通子网流量,详细操作请参考检查网络ACL是否放通子网流量。 弹性公网IP的带宽超限 请扩大EIP带宽,详细操作请参考检查弹性公网IP的带宽是否超限。 公网NAT网关业务量超过规格上限 请提升公网NAT网关规格,详细操作请参考检查公网NAT网关业务量是否超过规格上限。 公网NAT网关的状态异常 请确保公网NAT网关资源状态为“运行中”,详细操作请参考检查公网NAT网关状态是否异常。 弹性云服务器端口未监听 请重新开启弹性云服务器端口,详细操作请参考检查弹性云服务器端口。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 用户Token也就是调用获取用户Token获取请求认证接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 表3 请求Body参数 参数 是否必选 参数类型 描述 tags 否 Array of Tag objects 包含标签对象列表,最多包含10个key,每个key下面的value最多10个,结构体不能缺失,key不能为空或者空字符串。Key不能重复,同一个key中values不能重复。返回包含所有标签的资源列表,key之间是与的关系,key-value结构中value是或的关系。无tag过滤条件时返回全量数据。 tags_any 否 Array of Tag objects 包含任意标签对象列表,最多包含10个key,每个key下面的value最多10个,结构体不能缺失,key不能为空或者空字符串。Key不能重复,同一个key中values不能重复。返回包含标签的资源列表,key之间是或的关系,key-value结构中value是或的关系。无过滤条件时返回全量数据。 not_tags 否 Array of Tag objects 不包含标签对象列表,最多包含10个key,每个key下面的value最多10个, 结构体不能缺失,key不能为空或者空字符串。Key不能重复,同一个key中values不能重复。返回不包含标签的资源列表,key之间是与的关系,key-value结构中value是或的关系。无过滤条件时返回全量数据。 not_tags_any 否 Array of Tag objects 不包含任意标签对象列表,最多包含10个key,每个key下面的value最多10个,结构体不能缺失,key不能为空或者空字符串。Key不能重复,同一个key中values不能重复。返回不包含标签的资源列表,key之间是或的关系,key-value结构中value是或的关系。无过滤条件时返回全量数据。 limit 否 String 查询记录数(action为count时无此参数)如果action为filter默认为1000,limit最多为1000,不能为负数,最小值为1 offset 否 String (索引位置), 从offset指定的下一条数据开始查询。查询第一页数据时,不需要传入此参数,查询后续页码数据时,将查询前一页数据时响应体中的值带入此参数(action为count时无此参数)如果action为filter默认为0,必须为数字,不能为负数 action 是 String 操作标识(仅限于filter,count):filter(过滤),count(查询总条数) 如果是filter就是分页查询,如果是count只需按照条件将总条数返回即可。禁止返回其他字段。 matches 否 Array of Match objects 搜索字段列表,key为要匹配的字段,如resource_name等。value为匹配的值。此字段为固定字典值。 根据不同的字段确认是否需要模糊匹配,如resource_name默认为模糊搜索(不区分大小写),如果value为空字符串精确匹配。resource_id为精确匹配。 表4 Tag 参数 是否必选 参数类型 描述 key 是 String 键。最大长度127个unicode字符。key不能为空。(搜索时不对此参数做校验) ,key不能为空或者空字符串,不能为空格,校验和使用之前先trim 前后空格。 values 是 Array of strings 值列表。每个值最大长度255个unicode字符,不能为空格,校验和使用之前先trim 前后空格。 *为系统保留字符,value可为空但不可缺省。 如果里面的value是以*开头表示按照*后面的值全模糊匹配。 如果values为空列表,则表示any_value(查询任意value)。value之间为或的关系。 表5 Match 参数 是否必选 参数类型 描述 key 是 String 键。限定为resource_name。 value 是 String 值。每个值最大长度255个unicode字符。
  • 请求示例 查询公网NAT网关资源实例,其中,操作标识为filter,进行分页查询,查询记录数为100条。 POST https://{VPC_endpoint}/v2.0/9ad601814ac94c80bf7bb9073ded66fc/nat_gateways/resource_instances/action{ "offset" : "100", "limit" : "100", "action" : "filter", "matches" : [ { "key" : "resource_name", "value" : "nat_gateways" } ], "not_tags" : [ { "key" : "key1", "values" : [ "*value1", "value2" ] } ], "tags" : [ { "key" : "key2", "values" : [ "*value3", "value4" ] } ], "tags_any" : [ { "key" : "key3", "values" : [ "*value5", "value6" ] } ], "not_tags_any" : [ { "key" : "key4", "values" : [ "*value7", "value8" ] } ]} 查询公网NAT网关资源实例,其中,操作标识为count,按照条件将总条数返回。 POST https://{VPC_endpoint}/v2.0/9ad601814ac94c80bf7bb9073ded66fc/nat_gateways/resource_instances/action{ "action" : "count", "matches" : [ { "key" : "resource_name", "value" : "nat_gateways" } ], "not_tags" : [ { "key" : "key1", "values" : [ "*value1", "value2" ] } ], "tags" : [ { "key" : "key2", "values" : [ "*value3", "value4" ] } ], "tags_any" : [ { "key" : "key3", "values" : [ "*value5", "value6" ] } ], "not_tags_any" : [ { "key" : "key4", "values" : [ "*value7", "value8" ] } ]}
  • 响应示例 状态码: 200 查询操作成功。 示例1:action为filter时的响应体 示例2:action为count时的响应体 示例 1 { "resources" : [ { "resource_detail" : null, "resource_id" : "e5ad289f-9c56-4daf-b08b-2e53a983473a", "resource_name" : "nat_gateways", "tags" : [ { "key" : "key2", "value" : "value4" }, { "key" : "key2", "value" : "value3" } ] } ], "total_count" : 1000} 示例 2 { "total_count" : 1000}
  • 操作场景 公网NAT网关创建后,如果您在使用过程中发现当前的公网NAT网关规格不能满足自己的需求,可以修改公网NAT网关规格、名称和描述。 提升公网NAT网关规格不影响业务;降低公网NAT网关规格取决于当前的业务量是否超过降档后规格的上限。 包年/包月的公网NAT网关不支持规格降级。 包年/包月的公网NAT网关转按需,需包年/包月资费模式到期后,按需的资费模式才会生效;按需的公网NAT网关可以随时转包年/包月。
  • 弹性云服务器使用公网NAT网关和直接绑定弹性公网IP有区别吗? 公网NAT网关提供SNAT和DNAT功能,可允许多台弹性云服务器共享弹性公网IP。 弹性云服务器直接绑定弹性公网IP为独占IP的方式。 当同一个弹性云服务器同时设置了SNAT和弹性公网IP时,会优先使用弹性公网IP进行转发。 当同一个弹性云服务器同时设置了DNAT和弹性公网IP时,入云方向的弹性公网IP取决于客户端用户的自主选择(DNAT规则绑定的弹性公网IP或ECS直接绑定的弹性公网IP),而出云方向优先使用弹性云服务器直接绑定的弹性公网IP,所以如果入云和出云使用的弹性公网IP不一致,流量会不通。 不建议弹性云服务器同时使用公网NAT网关和直接绑定弹性公网IP。 父主题: 公网NAT网关