zoukankan      html  css  js  c++  java
  • Linux查看端口使用状态、关闭端口方法

    【摘要】

          今天在编写socket,在期间遇到查看某个端口的状态,随后从网上找了一下,现在总结一下。

    【内容】

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

    1. 查看端口

    Command

    netstat -anp

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

    2. 查看端口对应的应用程序

    Command

    lsof -i:xxx

         (xxx指对应的端口号)。或者你也可以查看文件/etc/services,从里面可以找出端口所对应的服务。
    (注:有些端口通过netstat查不出来,更可靠的方法是"~$ sudo nmap -sT -O localhost")

    3. 关闭端口

    iptable

    sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"
    sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"   
    kill
    kill -9 PID" (PID:进程号)

         1)通过iptables工具将该端口禁掉,如:  
         2)或者关掉对应的应用程序,则端口就自然关闭了

    4. Kill

         使用kill关闭进程使用的-9,下面介绍一下kill的使用, kill 实际的实际作用是给进程发信号(signal), 其常用格式为

    Kill

    kill -sig pid

         这里的 sig 可以是信号对应的数字,也可以是信号名,比如你如果用 kill -9 pid 实际是发 9号信号给进城,9对应的信号名是 KILL。所以 kill -9 等价于 kill -KILL pid。 常用的几个信号是

    Kill

    INT  这个就是你在bash下面用Ctrl+C 来结束一个程序时,bash会向进程发送这个信号,默认的,进程收到这个程序会结束。 你可以用 kill -INT pid 来发这个信号。
    QUIT  这个是你在bash下用 Ctrl+ 来结束程序时,发的信号,进程默认受到这个信号后也是结束 
    KILL  这个信号之所以被称为“强杀”,就是因为无法改变进程收到这个信号后所执行的动作,进程只能退出。(前面说的两个信号,虽然默认是退出,但是应用程序自己可以通过signal系统调用来修改成其他动作,比如忽略那两个信号等动作)
         更多信息,可以man kill,有时间学习一下linux的信号机制,信号相关的系统调用等。
  • 相关阅读:
    [NSURL initFileURLWithPath:]: nil string parameter 错误的解决方案
    Parser Error Message: Could not load type 错误原因
    C# DropDownList做友情链接打开新窗口
    前两天去A公司面试,面试管问的题目一下子闷了。很郁闷。重新答题。在这里分享一下
    获取枚举描述信息(Description)
    生成实体层的界面(webForm1.aspx)代码
    java中Filter 技术
    hdu_1332&poj_1102_LCDisplay
    hdu_1997_汉诺塔VII
    hdu_1134_Game of Connections_卡特兰数列
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4191665.html
Copyright © 2011-2022 走看看