You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何断开指定IP与10000端口服务器的连接?Python Socket方案失效

解决指定IP禁用连接的问题

你的现有代码逻辑完全不对——这段代码是尝试主动连接目标IP的端口,根本不是断开已有的客户端连接,而且服务器端口被占用是正常状态(因为你的服务本身就在监听这个端口),所以它肯定无法实现需求。

下面给你两种可行的解决思路:

方法一:用操作系统防火墙拦截(最推荐)

这是最直接有效的方式,从底层网络层面阻止指定IP访问你的10000端口,不需要修改服务器代码:

Linux 系统

  • 用iptables添加规则:
    iptables -A INPUT -s 要禁用的IP地址 -p tcp --dport 10000 -j DROP
    
    比如要禁用192.168.1.100,就执行:
    iptables -A INPUT -s 192.168.1.100 -p tcp --dport 10000 -j DROP
    
  • 如果你用ufw防火墙(Ubuntu等系统常用):
    ufw deny from 要禁用的IP地址 to any port 10000
    

Windows 系统

  1. 打开「Windows Defender 防火墙高级设置」
  2. 新建入站规则,选择「自定义」类型
  3. 在「协议和端口」步骤指定TCP协议、本地端口10000
  4. 在「作用域」步骤添加要阻止的IP地址
  5. 最后选择「阻止连接」完成配置

方法二:修改服务器代码(如果服务器是你自己开发的)

如果你的10000端口服务器是用Python写的,可以在连接建立时检查客户端IP,直接拒绝指定IP的连接:

import socket

# 要禁用的IP列表
BLOCKED_IPS = {"192.168.1.100", "10.0.0.5"}

def run_server():
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind(("0.0.0.0", 10000))
    server_socket.listen(5)
    print("服务器监听10000端口...")
    
    while True:
        conn, addr = server_socket.accept()
        client_ip = addr[0]
        if client_ip in BLOCKED_IPS:
            print(f"拒绝来自{client_ip}的连接")
            conn.close()
            continue
        # 正常处理合法连接的逻辑
        print(f"接受来自{client_ip}的连接")
        # 这里写你的业务代码...

if __name__ == "__main__":
    run_server()

这段代码在每次有新连接时,先检查客户端IP是否在黑名单里,是的话直接关闭连接,不处理后续请求。

内容的提问来源于stack exchange,提问作者EgasVegas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 09:22:33