A10端口映射后服务器怎么配置?核心结论是:A10负责把公网端口转换成内网服务器的指定端口,但外网能否真正访问,最终取决于服务器本地防火墙、服务监听端口和回程路由是否同步放行。 很多人以为在A10上配好VIP就完事,其实A10只完成了“前半个链路”,后半个链路在服务器上,如果你第一次做A10负载均衡或端口映射,建议按下面顺序操作,否则容易两头怀疑,问题还定位不到。
a10端口映射后服务器怎么配置才有效?三步走
先确认A10虚拟服务器与真实端口的对应关系
A10上的“端口映射”,实际上由虚拟服务器(VIP)、服务组(Service Group)、真实服务器(Real Server)三个对象配合完成,行业共识认为,大多数映射故障都出在端口不一致上。
举个例子:你希望外网通过80端口访问内网服务器,而服务器上跑的是8080端口,那么A10虚拟服务器端口就是80,服务组里的成员端口必须写8080,如果服务组里错填成80,A10会去连接服务器上的80端口,而这个端口根本没监听,外网自然打不开。
在ACOS CLI里,查看已有虚拟服务器配置可以用:
show slb virtual-server VS_web
重点看两个地方:port 80是否存在于列表中,以及该端口下是否绑定了正确的服务组,如果服务组没绑定,A10不会转发任何流量。
再放行服务器侧防火墙端口
登录服务器本机,先确认服务真的在监听,Linux执行:
ss -tlnp | grep 8080
如果输出显示的是0.0.1:8080,说明服务只绑定了回环地址,必须改成0.0.0:8080,否则A10从内网访问不到。
然后处理防火墙:
-
CentOS / RHEL / Rocky Linux:
firewall-cmd --permanent --add-port=8080/tcp --zone=public && firewall-cmd --reload -
Ubuntu / Debian:
ufw allow 8080/tcp
如果是Windows Server,打开“高级安全Windows Defender防火墙”,新建入站规则,选择“端口”,协议选TCP,端口填8080,作用域建议限定为A10的内网SNAT地址段,不要直接开放所有来源。
这一步完成后,最好用A10命令行做一次连通性测试:show slb service-group SG_web,看成员状态是否变为Up。
最后确认回程路由能回到A10
A10端口映射默认走NAT模式,服务器收到请求时,源IP已经被替换成A10的SNAT地址,服务器回包的目标地址就是这个SNAT地址,而不是客户端公网IP。
在服务器上执行 ip route,确认默认网关能到达A10所在的内网网段,如果服务器有多块网卡,尤其是有多个业务网段时,需要手动添加一条静态路由,强制回包走连接A10的那块网卡,避免流量从其他网关出去,导致“握手包到了,回包却丢在路上”的情况。
如果服务器和A10在同一个二层广播域,Linux下可以用:
arp -a | grep <A10的SNAT地址>
确认服务器ARP表里有A10的MAC地址,看不到这个条目,说明二层通信有问题,优先查交换机端口VLAN隔离。
a10负载均衡端口映射的A10侧配置步骤
下面以A10 Thunder系列ACOS CLI为例,演示完整配置流程,这套步骤也适用于其他型号的A10设备,只是界面菜单名称略有差异。
配置真实服务器
真实服务器就是内网那台业务机器,需要指定IP和端口:
enable
configure terminal
slb server SRV_web 192.168.1.10
port 8080 tcp
exit
如果服务器上监听的是TCP 8080,这里就写8080,如果同时有HTTPS服务,可以再加一行port 8443 tcp。
配置服务组
服务组把多台真实服务器聚成一个逻辑池子,单台服务器也要走这一步。
slb service-group SG_web tcp member SRV_web 8080 health-check TCP exit
health-check会定期探测真实服务器的8080端口,探测失败时A10会自动摘除该成员,如果探测源IP被服务器防火墙挡住,成员状态会显示Down,所以建议在防火墙里放行A10与服务器之间的双向通信。
配置虚拟服务器和端口映射
虚拟服务器就是对外提供的公网IP和端口池:
slb virtual-server VS_web 203.0.113.10
port 80 tcp
service-group SG_web
source-nat pool SNAT_POOL
exit
这里公网80端口映射到服务组SG_web对应的8080端口,端口转换已经体现在“服务组端口”与“虚拟端口”不一致上。source-nat pool需要提前定义,
ip nat pool SNAT_POOL 192.168.200.10 192.168.200.20 netmask 255.255.255.0
如果不用SNAT,服务器回包的源IP是自身IP,目标IP是客户端IP,而内网服务器往往没有去公网的默认路由,回包就丢了,所以端口映射场景下,A10侧建议无条件启用SNAT。
保存配置
配置完成后执行:
write memory
A10双机热备环境下,还需要确认配置已经同步到备机,否则主备切换后端口映射悄悄失效,外网访问直接中断,排查起来很隐蔽。
a10端口映射后服务器无法访问?按这4个地方查
查A10虚拟服务器状态
执行show slb virtual-server VS_web,看State是否显示为UP,如果显示Down,说明虚拟服务器可能没有正确绑定服务组,或者VIP地址没有配置在设备接口上,用show ip address确认公网IP是否生效。
查服务组成员健康状态
执行show slb service-group SG_web,看成员State,如果Down,按顺序检查三件事:
- 服务器本地端口是否监听,
ss -tlnp | grep 8080 - 服务器防火墙是否放行了A10健康检查的源地址
- 服务器安全组或网络ACL是否拦截了来自A10内网IP的流量
排除这三项后,成员状态通常会自己恢复为Up,如果仍然Down,可以临时把健康检查类型改为TCP,并减少探测间隔,方便快速观测。
查服务器端口监听与防火墙
在服务器上执行:
tcpdump -i eth0 tcp port 8080
如果能看到来自A10内网IP的SYN包,但服务器没有回SYN-ACK,基本都是防火墙拦截,如果连SYN包都看不到,说明A10到服务器的路径不通,要检查服务组配置或交换机二层隔离。
查云安全组或网络ACL
服务器放在简米云、酷番云、华为云等平台时,除本地防火墙之外,云平台安全组也要放行入站端口,安全组规则里需要放行源地址为A10内网IP、目标端口为8080的TCP流量,不少用户本地防火墙全开,却忘了安全组入站规则,同样会导致a10端口映射后服务器无法访问。
a10端口映射后服务器怎么配置”的3个常见问题
A10端口映射后服务器需要改网关吗?
不需要,A10端口映射在NAT模式下,服务器回包的目标地址是A10的SNAT地址,只要服务器现有默认路由能到达该地址,就不用改网关,随意改动网关容易引发不对称路由,导致连接超时。
A10虚拟服务器端口和服务器端口必须一致吗?
不一定,A10虚拟服务器端口是公网对外端口,服务组成员端口是内网真实端口,两者可以不同,例如公网80映射到内网8080,只要虚拟服务器端口写80,服务组写8080即可。
a10端口映射后服务器无法访问,先查A10还是服务器?
先查A10服务组成员状态,再查服务器监听和防火墙,因为A10健康检查状态直接反映链路连通性,如果成员是Up但访问不通,问题多半在虚拟服务器配置或回程路由;如果成员是Down,优先处理服务器侧端口和防火墙。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/691499.html





