提前抱歉这样一个noob问题,但我当然是个菜鸟。 我的问题是,对于与我的例子相关的端口上的LISTEN或ACCEPT是什么意思?
实施例: 我有一个tomcat服务器,它将使用端口8080.我想确保该端口可供我使用。
我应该在unix服务器上执行哪些命令?为什么?
这样的命令会给我什么信息:netstat -an | grep LISTEN
答案 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