要在unix服务器上运行的netstat命令,我应该将哪些命令用于我的用例以及为什么?

时间:2013-10-27 03:36:03

标签: linux unix port netstat

提前抱歉这样一个noob问题,但我当然是个菜鸟。 我的问题是,对于与我的例子相关的端口上的LISTEN或ACCEPT是什么意思?

实施例: 我有一个tomcat服务器,它将使用端口8080.我想确保该端口可供我使用。

我应该在unix服务器上执行哪些命令?为什么?

这样的命令会给我什么信息:netstat -an | grep LISTEN

5 个答案:

答案 0 :(得分:1)

如果端口在netstat中显示为LISTEN,则表示服务器进程正在使用该端口,因此您无法使用它。这是一个例子:

tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN

表示端口 631 正在使用中。

最后忽略UNIX类型套接字 - 它们无关紧要。

答案 1 :(得分:1)

要检查端口8080是否正在使用,您只需使用命令netstat -an|grep 8080即可。如果您获得以下格式的输出,这意味着8080已经在使用,您需要为tomcat分配一个新端口。

# netstat -an
tcp        0      0 127.0.0.1:8080              0.0.0.0:*                   LISTEN

Netstat命令显示各种网络相关信息,如网络连接,路由表,接口统计,伪装连接,组播成员资格等,

    带有a
  • netstat选项会为您提供收听和非收听端口

  • n选项如果您不希望显示主机,端口或用户的名称,请使用netstat -n选项。这将以数字显示,而不是解析主机名,端口名称,用户名。这也会加快输出速度,因为netstat没有执行任何查找。

答案 2 :(得分:1)

要了解更多信息,请在此处使用netstat命令:

-a : All ports
-t : Ports TCP
-u : Ports UDP
-l : Listening ports
-n : IP address without domain name resolution
-p : Name of the program and it associated PID

所以:

- 显示所有端口(TCP& UDP),PId以及程序的相关名称:

 $ netstat -paunt

- 显示所有侦听端口(TCP),PId以及程序的相关名称:(我们也可以使用grep命令进行过滤)

 $ sudo netstat -plnt | grep ':80'

我希望它会有所帮助:)

答案 3 :(得分:0)

您还可以使用telnet检查端口是否已打开并正在侦听,例如

Zeeshan$ telnet google.com 80
Trying 173.194.35.5...
Connected to google.com.
Escape character is '^]'.

我在端口80上远程登录google.com。如果您在输出中看到第三行,您会注意到它已与Google的Web服务器连接。与你有一个名为Tomcat的JAVA应用服务器的方式相同,它正在侦听端口8080.事实上,它要求客户端在端口8080上连接它,这样它就可以向客户端提供JAVA服务。当我将从客户端telnet localhost 8080使用时,我将以与我在端口80上与Google的Web服务器连接相同的方式连接。只要Tomcat正在运行并侦听端口8080.如果端口8080不是免费的并且被某些人占用其他应用程序,您只需将端口8080更改为另一个自由端口。 Telnet应该给你以下状态:

accepted (connected), refused, and timeout
  • 连接被拒绝 - 该端口上没有任何内容正在运行
  • 已接受 - 某些应用程序正在端口上运行
  • 超时 - 防火墙阻止访问

所以现在有两种可能的方法来检查。从运行Tomcat服务器的同一台机器上:

telnet localhost 8080

如果你想从其他机器或网络外检查它:

telnet 192.168.1.1 8080

我希望有所帮助。

答案 4 :(得分:0)

use也可以运行下面的命令,它会列出端口和相应的PID,如果有任何进程正在使用那些端口

   netstat -tulpn