linux下解决80端口被占用

重装nginx服务,在启动的时候报80端口被占用了

首先我们查一下占用80端口的有哪些服务,netstat -lnp|grep 80 查看80端口被那些服务占用。


我们会发现其实就是nginx自己占用了80端口,重装的时候只是删除了nginx文件,并没有关闭nginx,所以出现这种情况,服务名称前面是他的pid号。我只要把它进程给结束掉就可以了。

命令:kill -9 25158

在去查看一下80被占用的情况netstat -lnp|grep 80,发现已经没有被占用了。

然后在nginx目录启动nginx.

./sbin/nginx



### 解决 LinuxNginx 80 端口占用的方法 当遇到 Nginx 启动时提示 80 端口已被占用的情况,可以按照以下方法排查并解决问题。 #### 查找占用端口的进程 通过 `netstat` 或者更现代的 `ss` 命令来查找当前监听于 80 端口的服务及其对应的 PID。对于较新的系统推荐使用 `ss` 替代 `netstat`: ```bash ss -tuln | grep :80 ``` 这会显示所有正在监听 TCP 协议下的本地地址和端口号,并过滤出包含 ":80" 的行[^1]。 如果结果显示有其他程序占用了该端口,则可以根据最后一列给出的信息找到具体的进程 ID (PID),进而决定下一步操作。 #### 处理非 systemd 进程 如果不是由 `systemd` 自身或其他核心组件占据此端口的话,可以直接终止相应的进程。例如,在上述命令返回的结果中看到类似如下输出: ``` tcp 0 0 :::80 :::* LISTEN 1468/nginx ``` 这里表示 PID 为 1468 的 nginx 实例已经在运行并绑定了 80 端口。此时可以通过发送信号给这个特定的进程来进行重启或者停止它: ```bash kill -HUP 1468 # 或者完全关闭 kill -TERM 1468 ``` 注意这里的 `-HUP` 和 `-TERM` 参数分别代表平滑重载配置以及正常退出应用的方式[^2]。 #### 应对 systemd 导致的冲突 然而,如果是像引用提到的一样,发现是由 `systemd` 或其管理的服务占据了 80 端口,那么简单的杀死进程并不是一个好的解决方案,因为这样做可能会破坏系统的稳定性。这时应该考虑调整 Nginx 配置文件 `/etc/nginx/nginx.conf` 来改变默认监听端口至未使用的值,比如 8080 : ```nginx server { listen 8080; } ``` 保存更改后重新加载 Nginx 使新设置生效: ```bash service nginx reload ``` 另外一种情况是确认是否有不必要的服务也在尝试绑定相同的端口;如果有冗余的服务存在,应当禁用它们以释放资源[^3]。 #### 修改防火墙规则 最后还需确保服务器上的防火墙允许访问所选的新端口(假设不是标准 HTTP/HTTPS)。对于基于 RedHat/CentOS 发行版来说,可能需要更新 SELinux 设置或 iptables 规则集以便让外部能够连接到指定端口上。 ```bash firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --reload ``` 以上措施可以帮助有效解决端口争用而引起的 Nginx 启动失败问题。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值