如何检查端口是否正在Linux服务器上侦听?
netstat -an | grep PORTNUMBER | grep -i listen
如果输出为空,则说明该端口未使用。
如何检查端口是否正在Linux服务器上侦听?
netstat -an | grep PORTNUMBER | grep -i listen
如果输出为空,则说明该端口未使用。
Answers:
您可以使用来检查进程是否侦听TCP或UDP端口netstat -tuplen
。
要检查一些端口是从外部访问(这可能是你想要的),你可以像使用一个端口扫描器的Nmap从另一个系统。在您要检查的同一主机上运行Nmap对于您的目的来说是毫无用处的。
telnet
命令通常仅支持TCP,因此如果要检查的服务在其他协议上运行,您将很不走运。
sudo netstat -tuplen
。这将使您不仅拥有自己的进程,而且还拥有其他进程的进程,如果还没有显示为非root用户,它将打印其他详细信息(例如PID /程序名)。
测试TCP端口是否打开(包括您可能拥有的任何硬件防火墙)的最快方法是从远程计算机(例如,台式机)上键入:
telnet myserver.com 80
它将尝试打开到该服务器上端口80的连接。如果超时或拒绝,则端口未打开:)
if you get a time out or deny, the port is not open
好的,总而言之,您拥有一台可以登录的服务器。您想查看某端口是否正在监听。以超级用户身份运行:
netstat -nlp
这将显示侦听TCP和UDP端口的进程列表。您可以扫描(或grep)它来查找您感兴趣的进程和/或您希望看到的端口号。
如果不存在您期望的进程,则应启动该进程并再次检查netstat。如果存在该过程,但是正在侦听您不期望的接口和端口,则存在配置问题(例如,它可能正在侦听,但仅在环回接口上侦听,因此您将看到127.0.0.1:3306和如果是MySQL的默认配置,则端口3306的端口无其他行)。
如果该过程已完成,并且正在侦听您期望的端口,则可以尝试从办公室/家庭中的Macbook运行“ telnet”到该端口,例如,
telnet xxxxxxxxxxxx.co.uk 443
这将测试(假设标准端口)是否为SSL配置了Web服务器。请注意,只有在进程正在侦听TCP端口的情况下,使用telnet进行的此测试才有效。如果是UDP端口,则最好尝试使用要用于连接到它的任何客户端。(我看到您使用的是端口224。这是masqdialer,我不知道那是什么)。
如果有该服务,但您不能从外部访问它,则有防火墙阻止您。在这种情况下,请运行:
iptables -L -n
这将显示系统上定义的所有防火墙规则。您可以发布它,但是通常,如果您不允许INPUT链上的所有内容,则可能需要显式允许有关端口上的流量:
iptables -I INPUT -p tcp --dport 224 -j ACCEPT
或类似的规定。不要根据陌生人在Internet上告诉您的内容盲目运行防火墙命令。考虑一下你在做什么。
如果包装盒上的防火墙允许您所需的流量,则您的托管公司可能正在运行防火墙(例如,它们仅允许SSH(22 / tcp),HTTP(80 / tcp)和HTTPS(443 / tcp)并拒绝所有其他传入流量)。在这种情况下,您将需要与他们一起打开服务台票证以解决此问题,尽管我认为您的cPanel中可能存在某些允许它的东西。
我使用的组合netstat
和lsof
:
netstat -an | grep <portnumber>
lsof -i:<portnumber>
查看端口是否正在使用以及正在使用什么端口。