运行 django runserver 的时候,出现 Error 10013,即 8000 端口被占用。
使用 apache wsgi 也是说端口占用。
不想换端口,有一段快捷方式在浏览器上呢,所以需要找出那个占用端口的进程,然后卸掉。
1、查看所有的端口占用情况
C:\Users\Administrator\>netstat -ano
活动连接
协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 764
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1718 0.0.0.0:0 LISTENING 392
TCP 0.0.0.0:2425 0.0.0.0:0 LISTENING 248
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 9416
TCP 0.0.0.0:3690 0.0.0.0:0 LISTENING 2620
TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING 3108
TCP 0.0.0.0:11211 0.0.0.0:0 LISTENING 1708
TCP 0.0.0.0:15576 0.0.0.0:0 LISTENING 392
TCP 0.0.0.0:30985 0.0.0.0:0 LISTENING 248
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING 456
TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING 828
TCP 0.0.0.0:49154 0.0.0.0:0 LISTENING 964
TCP 0.0.0.0:49157 0.0.0.0:0 LISTENING 568
TCP 0.0.0.0:49173 0.0.0.0:0 LISTENING 556
TCP 127.0.0.1:49155 127.0.0.1:49156 ESTABLISHED 1708
TCP 127.0.0.1:49156 127.0.0.1:49155 ESTABLISHED 1708
TCP 192.168.25.99:139 0.0.0.0:0 LISTENING 4
TCP 192.168.25.99:49539 218.30.118.68:80 ESTABLISHED 2024
TCP 192.168.25.99:49567 116.255.135.90:80 CLOSE_WAIT 248
TCP 192.168.25.99:49748 114.112.66.186:80 ESTABLISHED 2520
TCP 192.168.25.99:50320 74.125.31.125:5222 ESTABLISHED 2900
TCP 192.168.25.99:50841 123.58.182.253:80 ESTABLISHED 3880
TCP 192.168.25.99:50945 123.58.182.251:443 CLOSE_WAIT 3880
TCP 192.168.25.99:50946 123.58.182.251:443 CLOSE_WAIT 3880
TCP 192.168.25.99:50954 114.112.66.109:80 ESTABLISHED 392
TCP 192.168.25.99:50955 123.58.182.251:443 CLOSE_WAIT 3880
TCP 192.168.25.99:50956 123.58.182.251:443 CLOSE_WAIT 3880
TCP 192.168.25.99:50957 123.58.182.251:443 CLOSE_WAIT 3880
TCP 192.168.25.99:50958 123.58.182.251:443 CLOSE_WAIT 3880
TCP 192.168.25.99:50959 123.58.182.251:443 CLOSE_WAIT 3880
TCP 192.168.25.99:50960 123.58.182.251:443 CLOSE_WAIT 3880
TCP 192.168.25.99:50961 123.58.182.251:443 CLOSE_WAIT 3880
TCP 192.168.25.99:50962 123.58.182.251:443 CLOSE_WAIT 3880
TCP [::]:135 [::]:0 LISTENING 764
TCP [::]:445 [::]:0 LISTENING 4
TCP [::]:3306 [::]:0 LISTENING 9416
TCP [::]:11211 [::]:0 LISTENING 1708
TCP [::]:49152 [::]:0 LISTENING 456
TCP [::]:49153 [::]:0 LISTENING 828
TCP [::]:49154 [::]:0 LISTENING 964
TCP [::]:49157 [::]:0 LISTENING 568
TCP [::]:49173 [::]:0 LISTENING 556
UDP 0.0.0.0:500 *:* 964
UDP 0.0.0.0:1900 *:* 392
UDP 0.0.0.0:2425 *:* 248
UDP 0.0.0.0:3600 *:* 2024
UDP 0.0.0.0:4500 *:* 964
UDP 0.0.0.0:5355 *:* 1236
UDP 0.0.0.0:6235 *:* 392
UDP 0.0.0.0:6445 *:* 392
UDP 0.0.0.0:7908 *:* 392
UDP 0.0.0.0:11211 *:* 1708
UDP 0.0.0.0:11509 *:* 392
UDP 0.0.0.0:58131 *:* 2024
UDP 0.0.0.0:58173 *:* 2900
UDP 127.0.0.1:59144 *:* 2024
UDP 192.168.25.99:137 *:* 4
UDP 192.168.25.99:138 *:* 4
UDP [::]:500 *:* 964
UDP [::]:4500 *:* 964
UDP [::]:5355 *:* 1236
UDP [fe80::30df:1257:5ad3:e070%11]:546 *:* 828
难得找,直接查看指定端口的占用情况
C:\Users\Administrator\>netstat -aon|findstr "8000"
TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING 3108
也就是说这个该死的 3108 占用了我的 8000 端口。
2、查看 PID 等于 3108 的进程
C:\Users\Administrator\>tasklist|findstr "3108"
说明:不是我写漏了,结果是空,就是空,也就是说没有找到这个进程。
我也去任务浏览器中查看了进程表,没有发现 PID 等于 3108 的(如果任务管理器中没有 PID 这一项,可以在任务管理器中选"查看"-"选择列")。
3、不管了,直接结束 3108 进程
C:\Users\Administrator\>taskkill /pid 3108
错误:没有找到进程 "3108"。
悲剧了,我的 8000 端口僵尸了!
见鬼了,我发现直接访问 8000 端口能打开 django 网页,试着重启一下,真的好了,原因不明。
PS:
为了验证方法没有错误,我关闭占用 3306 端口的进程(也就是 mysql 啦)试了一下。
C:\Users\Administrator\>netstat -aon|findstr "3306"
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 9416
TCP [::]:3306 [::]:0 LISTENING 9416
C:\Users\Administrator\>tasklist|findstr "9416"
mysqld.exe 9416 Services 0 10,536 K
C:\Users\Administrator\>taskkill /f /t /pid 9416
成功:已终止 PID 为 9416 的进程。
也可以根据进程名称关闭进程:
C:\Users\Administrator\>taskkill /f /t /im mysqld.exe
PS:
还有一次运行 runserver 的时候突然爆出一个 10013 错误,网上的说法是 8000 端口被酷狗占用了(确实在听歌),只好改用 8080 端口。