ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

北中医服务器端口白名单开放配置说明

北中医服务器端口白名单开放配置说明 一、配置目标目标仅允许指定业务服务器访问 AI 服务端口禁止其他服务器访问。统一白名单服务器IP用途10.64.128.122业务服务器110.64.128.123业务服务器210.64.128.124业务服务器3数字人服务器10.64.128.138第一台服务器Docker Host 网络服务端口开放1. 适用场景该服务器运行容器例如docker inspect 容器名称 | grep NetworkMode返回NetworkMode: host或者ss -lntp看到python 0.0.0.0:8000说明容器与宿主机共享网络Docker 不负责端口映射使用宿主机 INPUT 链控制访问网络流程客户端||宿主机IP:端口||INPUT链||服务进程示例一开放 8000/8001/8002/8007/8011-8014开放端口800080018002800780118012801380142. 添加白名单规则允许 10.64.128.122iptables -A INPUT \-p tcp \-s 10.64.128.122 \-m multiport \--dports 8000,8001,8002,8007,8011,8012,8013,8014 \-j ACCEPT允许 10.64.128.123iptables -A INPUT \-p tcp \-s 10.64.128.123 \-m multiport \--dports 8000,8001,8002,8007,8011,8012,8013,8014 \-j ACCEPT允许 10.64.128.124iptables -A INPUT \-p tcp \-s 10.64.128.124 \-m multiport \--dports 8000,8001,8002,8007,8011,8012,8013,8014 \-j ACCEPT3. 拒绝其他服务器iptables -A INPUT \-p tcp \-m multiport \--dports 8000,8001,8002,8007,8011,8012,8013,8014 \-j DROP4. 检查规则iptables -L INPUT -n --line-number正确结果1 ACCEPT 10.64.128.1222 ACCEPT 10.64.128.1233 ACCEPT 10.64.128.1244 DROP anywhere5. 验证端口查看监听ss -lntp | grep 8000客户端nc -vz 服务IP 8000或者telnet 服务IP 8000br语音服务器10.64.128.135第二台服务器Docker Bridge 端口映射服务开放1. 适用场景Dockerdocker ps看到例如0.0.0.0:8003-8003/tcp0.0.0.0:8105-8006/tcp并且docker inspect 容器名 | grep NetworkMode返回jyd_speaker_default说明Docker 自定义 bridge 网络外部访问宿主机映射端口使用 DOCKER-USER 链控制网络流程客户端||宿主机端口||DOCKER-USER||docker-proxy||容器示例二speaker服务开放端口Docker映射服务宿主机端口gpu08003gpu08104gpu18105gpu28106gpu38107实际开放800381048105810681072. 添加 DOCKER-USER 白名单允许 10.64.128.122iptables -A DOCKER-USER \-p tcp \-s 10.64.128.122 \-m multiport \--dports 8003,8104,8105,8106,8107 \-j ACCEPT允许 10.64.128.123iptables -A DOCKER-USER \-p tcp \-s 10.64.128.123 \-m multiport \--dports 8003,8104,8105,8106,8107 \-j ACCEPT允许 10.64.128.124iptables -A DOCKER-USER \-p tcp \-s 10.64.128.124 \-m multiport \--dports 8003,8104,8105,8106,8107 \-j ACCEPT3. 拒绝其他来源iptables -A DOCKER-USER \-p tcp \-m multiport \--dports 8003,8104,8105,8106,8107 \-j DROP4. 保留 Docker 默认规则必须iptables -A DOCKER-USER -j RETURN5. 检查规则iptables -L DOCKER-USER -n --line-number正确1 ACCEPT 10.64.128.1222 ACCEPT 10.64.128.1233 ACCEPT 10.64.128.1244 DROP anywhere5 RETURN6. 验证查看 Docker 暴露端口docker ps查看监听ss -lntp | grep -E 8003|8104|8105|8106|8107客户端nc -vz 服务IP 8003nc -vz 服务IP 8105三、两类服务器区别总结项目Docker Host模式Docker Bridge模式网络模式hostbridgedocker inspectNetworkModehost自定义网络名端口来源服务直接监听宿主机docker端口映射iptables链INPUTDOCKER-USER查看监听ss -lntpss -lntpDocker端口映射无有典型端口80008003/8104-8107四、统一排查流程遇到端口不通1. 查看服务监听ss -lntp | grep 端口2. 判断 Docker 网络docker inspect 容器名 | grep NetworkMode3. 检查防火墙Hostiptables -L INPUT -n -vBridgeiptables -L DOCKER-USER -n -v4. 抓包定位tcpdump -i any port 端口五、最终原则host 模式容器 → 配置 INPUTbridge 模式容器 → 配置 DOCKER-USER只允许指定服务器IP白名单规则必须在 DROP 前Docker 服务优先限制宿主机映射端口不限制容器内部端口按照以上流程即可完成所有 AI 服务服务器的端口白名单管理。135服务器插入新的白名单服务器直接允许 10.64.128.126iptables -A DOCKER-USER \-p tcp \-s 10.64.128.126 \-m multiport \--dports 8003,8104,8105,8106,8107 \-j ACCEPT不可以。你现在的 10.64.128.126 规则实际上不会生效因为你把新的 ACCEPT 加到了原来的 DROP 和 RETURN 后面。你当前规则是1 ACCEPT 10.64.128.122 → 8003,8104-81072 ACCEPT 10.64.128.123 → 8003,8104-81073 ACCEPT 10.64.128.124 → 8003,8104-81074 DROP 所有IP → 8003,8104-81075 RETURN 所有流量6 ACCEPT 10.64.128.126 → 8003,8104-8107 ← 太晚了7 DROP 所有IP → 8003,8104-81078 RETURN为什么不行iptables 是从上到下逐条匹配匹配到就执行并停止继续匹配。例如 10.64.128.126 访问10.64.128.135:8105执行过程规则1不是 122 → 跳过规则2不是 123 → 跳过规则3不是 124 → 跳过规则4匹配 → DROP所以根本到不了规则 6。正确处理方式你现在不要继续-A添加规则应该把错误重复规则删掉然后把 10.64.128.126 插入到 DROP 前面。第一步先删除你刚才新增的 3 条错误规则你现在的6 ACCEPT 10.64.128.1267 DROP8 RETURN删除iptables -D DOCKER-USER 8iptables -D DOCKER-USER 7iptables -D DOCKER-USER 6注意删除时规则编号会变化所以建议从最大的编号往下删。然后检查iptables -L DOCKER-USER -n --line-number应该恢复成1 ACCEPT 10.64.128.1222 ACCEPT 10.64.128.1233 ACCEPT 10.64.128.1244 DROP5 RETURN第二步把 126 插入 DROP 前直接执行iptables -I DOCKER-USER 4 -p tcp -s 10.64.128.126 -m multiport --dports 8003,8104,8105,8106,8107 -j ACCEPT这里使用的是-I DOCKER-USER 4而不是-A DOCKER-USER意思是把 10.64.128.126 的允许规则插入到当前第 4 条也就是 DROP 前面。第三步检查最终结果执行iptables -L DOCKER-USER -n --line-number正确情况下应该类似num target prot opt source destination1 ACCEPT tcp -- 10.64.128.122 0.0.0.0/0 multiport dports 8003,8104,8105,8106,81072 ACCEPT tcp -- 10.64.128.123 0.0.0.0/0 multiport dports 8003,8104,8105,8106,81073 ACCEPT tcp -- 10.64.128.124 0.0.0.0/0 multiport dports 8003,8104,8105,8106,81074 ACCEPT tcp -- 10.64.128.126 0.0.0.0/0 multiport dports 8003,8104,8105,8106,81075 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8003,8104,8105,8106,81076 RETURN all -- 0.0.0.0/0 0.0.0.0/0这才是你需要的结构122 ──┐123 ──┤124 ──┤── ACCEPT126 ──┘↓其他IP ──→ DROP↓RETURN
返回列表