zoukankan      html  css  js  c++  java
  • linux 端口

    前提:首先你必须知道,端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。下次若某个进程再次开启,则相应的端口也再次开启。而不要纯粹的理解为关闭掉某个端口,不过可以禁用某个端口。

    1. 可以通过"netstat -anp | grep 8013" 来查看哪些端口被打开。

    (注:加参数'-n'会将应用程序转为端口显示,即数字格式的地址,如:nfs->2049, ftp->21,因此可以开启两个终端,一一对应一下程序所对应的端口号)

    2. 然后可以通过"lsof -i:$PORT"查看应用该端口的程序($PORT指对应的端口号)。或者你也可以查看文件/etc/services,从里面可以找出端口所对应的服务。
    (注:有些端口通过netstat查不出来,更可靠的方法是"sudo nmap -sT -O localhost")
    3. 若要关闭某个端口,则可以:
    1)通过iptables工具将该端口禁掉,如:
    "sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"
    "sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"
    2)或者关掉对应的应用程序,则端口就自然关闭了,如:
    "kill -9 PID" (PID:进程号)
    如: 通过"netstat -anp | grep ssh"
    有显示: tcp 0 127.0.0.1:2121 0.0.0.0:* LISTEN 7546/ssh
    则: "kill -9 7546"

    (可通过"chkconfig"查看系统服务的开启状态)

    解决办法:

    1
    2
    3
    [xiaoju@rico-public order]$ lsof -i:8420
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    shop 17279 xiaoju 10u IPv4 3919976561 0t0 TCP *:8420 (LISTEN)
     如果这条命令没有返回任何结果那么表明端口没被占用,如果返回信息,那么我们就可以看到PID

    1
    2
    3
    [xiaoju@rico-public order]$ ll /proc/17279
    lrwxrwxrwx 1 xiaoju xiaoju 0 Jun 21 22:56 cwd -> /home/xiaoju/shop/output
    lrwxrwxrwx 1 xiaoju xiaoju 0 Jun 21 22:53 exe -> /home/xiaoju/shop/output/bin/shop<br>-r--r--r-- 1 xiaoju xiaoju 0 Jun 21 23:19 cmdline
     然后根据PID查到是被什么程序占用。

  • 相关阅读:
    [ PyQt入门教程 ] Qt Designer工具的使用
    [ PyQt入门教程 ] PyQt5开发环境搭建和配置
    Notepad++提升工作效率小技巧
    思考:测试人员如何快速成长
    Linux /tmp目录下执行脚本失败提示Permission denied
    使用Quartz实现定时任务
    算法篇(前序)——Java的集合
    深入理解 JVM(上)
    Linux集锦
    秒杀系统实现高并发的优化
  • 原文地址:https://www.cnblogs.com/1124li/p/12965102.html
Copyright © 2011-2022 走看看