netstat/lsof

  1. netstat/lsof  
  2. netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况  
  3. -a 显示一个所有的有效连接信息列表(包括已建立的连接,也包括监听连接请求的那些连接)  
  4. -n 显示所有已建立的有效连接  
  5. -t tcp协议  
  6. -u udp协议  
  7. -l 查询正在监听的程序  
  8. -p 显示正在使用socket的程序识别码和程序名称  
  9. 例如:netstat -ntupl|grep processname  
  10. 如何只查询tomcat的连接?  
  11. netstat -na|grep ESTAB |grep 80 |wc-l  
  12. netstat -na|grep ESTAB |grep 8080 |wc-l  
  13. 常用端口介绍:  
  14. 端口:21  
  15. 服务:FTP服务器所开放的端口,用于上传、下载。  
  16. 端口: 22  
  17. 服务:ssh  
  18. 端口: 80  
  19. 服务:HTTP 用于网页浏览  
  20. 端口:389  
  21. 服务:LDAP ILS 轻型目录访问协议和NetMeetingInternet Locator Server  
  22. 端口:443  
  23. 服务:网页浏览端口 能提供加密和通过安全端口传输的另一种HTTP  
  24. 端口:8080  
  25. 服务:代理端口  
  26. 打开终端,执行如下命令,查看各进程占用端口情况:  
  27.   
  28. # ps -ef|wc -l //查看后台运行的进程总数  
  29. # ps -fu csvn //查看csvn进程  
  30.   
  31. # netstat -lntp //查看开启了哪些端口  
  32. # netstat -r //本选项可以显示关于路由表的信息  
  33. # netstat -a //本选项显示一个所有的有效连接信息列表  
  34. # netstat -an|grep 8080  
  35. # netstat -na|grep -i listen //可以看到目前系统侦听的端口号  
  36. # netstat -antup //查看已建立的连接进程,所占用的端口。  
  37. netstat -anp|grep1487  
  38. lsof -i:1487  
  39. 查看哪些进程打开了指定端口1487  
  40.   
  41. 关闭端口实际上是关闭其对应的服务,比如80端口是HTTPD 关闭80端口可以通过关闭httpd服务来实现  
  42. 每个端口都有一个守护进程,kill掉这个守护进程就可以了  
  43. 主机的端口分为监听端口与随机可用的高级端口  
  44. 监听端口:监听端口就是主机开启了哪些服务,这个服务会在linux系统里启用一个端口来监听客户端的请求  
  45. 随机可用的高级端口:  
  46. linux要向某个主机请求服务时,linux主机需要启用一个端口来对外连接linux会随机去用一个未被使用且端口号大于1024的端口进行连接  
  47. 只有root用户可以开启1-1024端口表明拥有root权限  
  48. netstat-n 显示连接状态  
  49. netstat-tl 显示当前正在监听的服务名称  
  50. linux是一个列出当前系统打开文件的工具,在linux环境下,任何事物都以文件的形式存在。  
  51. lsof输出信息 即可显示系统打开的文件默认显示所有进程打开的所有文件  
  52. lsof filename 显示打开指定文件的所有进程  
  53. lsof -c string 显示command列中包含指定字符的进程所有打开的文件  
  54. lsof -u username 显示所属user进程打开的文件  
  55. lsof -g gid 显示归属gid的进程情况  
  56. lsof -i 显示符合条件的进程情况  
  57. lsof -d 显示指定文件描述符的进程  
  58. lsof -a 标示两个参数都必须满足时才显示结果  
  59. 例如: lsof-i:1487  
  60. 查看所属root用户进程所打开的文件类型为txt的文件:  
  61. lsof -a -u root -d txt  
  62. lsof使用实例  
  63. 1.查找使用文件系统  
  64. 卸载文件系统时,如果文件系统中有任何打开的文件,就会出错。可以通过lsof可以找出那些进程在使用当前卸载的文件系统  
  65. # lsof /GTES11/  
  66. COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME  
  67. bash 4208 root cwd DIR 3,1 40962 /GTES11/  
  68. vim 4230 root cwd DIR 3,1 40962 /GTES11/  
  69. 2.恢复删除的文件  
  70. 当linux计算机受到入侵时,常见的情况是日志文件被删除,管理错误也会导致意外删除重要的文件。  
  71. 当进程打开了某个文件时,只要该进程保持打开该文件时,即使删除,依然存在于磁盘上。这意味着,进程并不知道文件已被删除,在/proc目录下,其中包含了反映内核和进程树的各种文件。  
  72. 当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问文件,可以通过lsof从/proc目录下恢复该文件  
  73. 使用lsof来查看当前是否有进程打开/var/logmessages文件  
  74. # lsof |grep /var/log/messages syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted) 从/proc/1283/fd/2  
  75. 对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用 
原文地址:https://www.cnblogs.com/syuf/p/7611111.html