写作业的时候,在后台运行的 shadowsocks 突然弹出“Shadowsocks 错误:端口已被占用 2000”的报错。

自己是头一次遇到这类问题,下面通过图片演示解决方案。

Step0 重新启动 shadowsocks

关闭 Shadowsocks,并在任务管理器查看 ShadowsocksR 是否已经正常关闭,之后重启之。

这或许是最简单有效的办法,如果还是不能解决问题,则可以进行 Step1->Step2 的步骤。

Step1 在命令提示符中查看对应端口的运行情况

首先进入命令提示符,如图所示输入 netstat -aon|findstr 2000,查看端口2000被哪个PID所占用,结果如下图所示。可见,端口2000所对应的PID7420.

之后,输入tasklist |findstr 7420,找到 PID 为7420所对应的进程名字。

Step2

Solution1 直接在命令提示符中杀掉进程

在 Step1 的基础上,继续在命令提示符中输入taskkill -pid “7420” -f
强制关闭 PID=7420 的进程。

Solution2 在任务管理器中杀掉进程

尽管 Step2-1 已经足够简单,但这里依然演示一下如何在任务管理器中杀掉进程。如下图所示,打开任务管理器后,在“详细信息”一栏中,根据 PID 的数值找到对应的进行,之后鼠标右键结束任务即可。

Step3 更换 shadowsocks 的端口

如果跑完上面的步骤你仍未能解决端口占用的问题,请尝试更改 shadowsocks 的端口:右键任务栏中小飞机的图标,点击端口设置,更改本地端口的值。这里我们被占用的端口是 2000,尝试改成未被占用的端口,如1080.

Good luck!