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

WSL中执行sudo mvn提示command not found 求助

解决WSL Ubuntu 24下Spring Boot绑定80端口及sudo找不到mvn的问题

一、先解决sudo: mvn: command not found的问题

sudo执行时的PATH环境变量和普通用户不一致,导致找不到mvn,有两种快速解决方式:

  • 使用mvn绝对路径执行:先在普通用户下执行which mvn,获取mvn的完整路径(比如/home/xxx/.apache-maven/bin/mvn),然后用sudo执行绝对路径的mvn:
    sudo /home/xxx/.apache-maven/bin/mvn spring-boot:run
    
  • 修改sudo的PATH配置:用visudo编辑/etc/sudoers文件(必须用visudo,避免语法错误导致sudo失效),找到Defaults secure_path行,把maven的bin目录追加进去,示例:
    Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/xxx/.apache-maven/bin"
    
    保存后,sudo就能直接找到mvn命令了。

二、更安全的替代方案:不用sudo跑Spring Boot

直接用sudo运行Java应用存在安全风险,推荐用以下方式解决80端口绑定权限问题:

  • 给Java进程添加低端口绑定能力:
    1. 先获取Java的绝对路径:which java(比如/usr/lib/jvm/java-17-openjdk-amd64/bin/java)
    2. 执行setcap命令赋予权限:
      sudo setcap 'cap_net_bind_service=+ep' /usr/lib/jvm/java-17-openjdk-amd64/bin/java
      
    之后普通用户直接执行mvn spring-boot:run,就能正常绑定80端口了。
  • 端口转发(iptables):
    1. 把Spring Boot配置文件application.properties里的server.port改成8080(普通用户可绑定的高端口)
    2. 用iptables设置端口转发:
      sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
      
      若需要重启WSL后规则生效,可安装iptables-persistent保存规则:
      sudo apt install iptables-persistent
      sudo netfilter-persistent save
      
  • 反向代理(Nginx):
    1. 安装Nginx:sudo apt install nginx
    2. 修改Nginx配置(比如/etc/nginx/sites-available/spring-boot-app),添加反向代理规则:
      server {
          listen 80;
          server_name localhost;
      
          location / {
              proxy_pass http://localhost:8080;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
          }
      }
      
    3. 启用配置并重启Nginx:
      sudo ln -s /etc/nginx/sites-available/spring-boot-app /etc/nginx/sites-enabled/
      sudo nginx -t && sudo systemctl restart nginx
      
    4. Spring Boot应用设置server.port=8080,普通用户直接运行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:32:43