• 端口分析


    简介:

    比如我们在服务器上运行 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服务器的基础知识了,在遇到问题后,应该也会有一些调查思路。

  • 相关阅读:
    Longest Palindromic Substring
    PayPal MLSE job description
    Continuous Median
    Remove Duplicates From Linked List
    Valid IP Address
    Longest substring without duplication
    Largest range
    Subarray sort
    Multi String Search
    Suffix Trie Construction
  • 原文地址:https://www.cnblogs.com/Paul-watermelon/p/10407602.html
Copyright © 2020-2023  润新知