1
2
FATAL Permission denied. You can't use port 4000.
FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html

在运行hexo s命令时,如果提示端口被占用,这意味着在同一台计算机上已经有其他应用程序正在使用该端口。解决这个问题的方法是更改Hexo的运行端口。
以下是你可以尝试的解决方法:

Linux、MacOS系统下解决方法

  1. 手动指定一个空闲的端口来运行Hexo。在命令行中,输入以下命令:

    1
    hexo s -p 端口号

    将”端口号”替换为你想要使用的端口号,例如3000或4000。这将告诉Hexo使用指定的端口运行。

  2. 如果你不确定哪些端口正在被占用,可以使用以下命令查看当前被占用的端口号:

    1
    lsof -i :端口号

    将”端口号”替换为你怀疑被占用的端口号。命令将显示与该端口相关的程序的详细信息。你可以停止正在运行的程序,或者选择一个空闲的端口。

Windows系统下解决方法

  1. 首先,尝试手动指定一个空闲的端口来运行Hexo。在命令行中输入以下命令:

    1
    hexo s -p 端口号

    将”端口号”替换为你想要使用的端口号,例如3000或4000。这将告诉Hexo使用指定的端口运行。

  2. 如果你不确定哪些端口正在被占用,可以使用以下命令查看当前被占用的端口号:

    1
    netstat -ano | findstr 端口号

    将”端口号”替换为你怀疑被占用的端口号。此命令将显示与该端口相关的程序的详细信息,包括进程PID。

  3. 使用以下命令结束正在占用指定端口的进程:

    1
    taskkill /F /PID 进程PID

    将”进程ID”替换为你在前一步骤中找到的进程PID。这将强制关闭该进程,释放端口并允许Hexo使用它。

  4. 有些时候情况比较特殊,重新指定任何空闲的端口都运行不了,这时候你可以通过重启Windows NAT Driver服务来解决

    1
    2
    net stop winnat
    net start winnat