码迷,mamicode.com
首页 > 其他好文 > 详细

端口分析

时间:2019-02-20 17:20:12      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:选项   修改   传输   listen   strong   tin   inter   学习   programs   

简介:

比如我们在服务器上运行 Nginx,访问的时候就是连接不上,我们可以使用 ps aux | grep nginx看下nginx进程是不是启动了,也可以看下 80端口有没有被占用。换句话说,如果没有任何程序跑在这个端口上(或者说没有任何程序使用这个端口),证明忘了启动相关程序或者没能启动成功,或者说程序使用的端口被修改了,不是80了,那又怎么可能能访问到呢?

1.查看全部端口占用情况

Linux中我们可以使用 netstat 工具来进程网络分析,netstat 命令有非常多选项,这里只列出了常用的一部分
-a或--all 显示所有连接中的Socket,默认不显示 LISTEN 相关的。
-c或--continuous 持续列出网络状态,不断自动刷新输出。
-l或--listening 显示监听中的服务器的Socket。
-n或--numeric 直接使用IP地址,而不是展示域名。
-p或--programs 显示正在使用Socket的程序进程PID和名称。
-t或--tcp 显示TCP传输协议的连接。
-u或--udp 显示UDP传输协议的连接。

比如我们可以查看服务器中监控了哪些端口,如果我们的nginx是使用80端口,uwsgi使用的是7001端口,我们就能知道通过下面的命令

> netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:7001            0.0.0.0:*               LISTEN      2070/uwsgi      
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      1575/redis-server 1

就能知道80端口的 nginx 是不是启动成功了,7001端口的uwsgi是不是启动成功了。

注意:如果PID和Program Name显示不出来,证明是权限不够,可以使用sudo运行

 

2.查看具体端口占用情况

> sudo lsof -i :80 (注意端口80前面有个英文的冒号)
COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   4123   admin    3u  IPv4  13031      0t0  TCP *:http (LISTEN)
nginx   4124   admin    3u  IPv4  13031      0t0  TCP *:http (LISTEN)

我们可以通过这个方法查询出占用端口的程序,如果遇到端口已经被占用,原来的进程没有正确地终止,可以使用kill命令停掉原来的进程,这样我们就又可以使用这个端口了。

 

除了上面讲的一些命令,在部署过程中会经常用到下面的一些Linux命令,如果不清楚它们是做什么的,可以提前自行学习下这些Linux基础命令:

ls, touch, mkdir, mv, cp, ps, chmod, chown

学习完了这些内容,我们应该就具备了部署Linux服务器的基础知识了,在遇到问题后,应该也会有一些调查思路。

端口分析

标签:选项   修改   传输   listen   strong   tin   inter   学习   programs   

原文地址:https://www.cnblogs.com/Paul-watermelon/p/10407602.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!