当前位置: 首页>>技术教程>>正文


如何确定Ubuntu 8.04上是否有端口?

, ,

问题描述

我可以从bash运行任何命令来告诉我端口是否已打开吗?

最佳思路

使用”netstat”检查当前使用的端口。

netstat -antp

Proto Recv-Q Send-Q Local Address        Foreign Address   State    PID/Program name
tcp        0      0 xxx.xxx.xxx.xxx      0.0.0.0:*         LISTEN   16297/named     
tcp        0      0 xxx.xxx.xxx.xxx:53   0.0.0.0:*         LISTEN   16297/named     
tcp        0      0 xxx.xxx.xxx.xxx:53   0.0.0.0:*         LISTEN   16297/named     
tcp        0      0 127.0.0.1:53         0.0.0.0:*         LISTEN   16297/named     

次佳思路

这个(netstat)是最快的解决方案…

netstat -lnt

…但是这给您更多的控制权(以速度为代价(有时很多速度))…

lsof -n -i -a -u www-data

上面的示例示例显示了所有打开的TCP端口,它们处于LISTEN状态,并且属于Apache(www-data)用户的AND(-a)。

第三种思路

所有好的答案。

但是,您没有提及是否登录到有问题的计算机。 ; P

如果不是,那么nmap是您的朋友。

对于初学者,请尝试:

nmap -O target

amap也是一个不错的选择,它还将尝试通过抓住标语页来猜测服务器软件。

对于初学者,请尝试:

amap target 1-6000

第四种思路

尝试

lsof -i :<port number>

如果您得到任何结果,则表示正在监听并绑定,例如

# lsof -i :80
COMMAND   PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nginx    1833 nobody    3u  IPv4 51091229      0t0  TCP odessa.cheney.net:http->79.173.188.214:52918 (ESTABLISHED)
nginx    1833 nobody    5u  IPv4 46221856      0t0  TCP odessa.cheney.net:http->66.36.243.182:37876 (CLOSE_WAIT)
nginx    1833 nobody    9u  IPv4 34733048      0t0  TCP localhost.localdomain:http (LISTEN)
nginx    1833 nobody   10u  IPv4 34733049      0t0  TCP odessa.cheney.net:http (LISTEN)
nginx    1833 nobody   14u  IPv4 46221857      0t0  TCP odessa.cheney.net:http->66.36.243.182:37880 (CLOSE_WAIT)
nginx    1833 nobody   15u  IPv4 51091030      0t0  TCP odessa.cheney.net:http->msnbot-65-55-106-132.search.msn.com:51708 (ESTABLISHED)
nginx   11832   root    9u  IPv4 34733048      0t0  TCP localhost.localdomain:http (LISTEN)
nginx   11832   root   10u  IPv4 34733049      0t0  TCP odessa.cheney.net:http (LISTEN)

第五种思路

netstat -tlnp  

显示正在l分配中的t cp端口,仅显示n编号(不解析名称-使其速度更快),并显示正在监听的p进程(仅当您是root用户时,p才有效)

netstat -ulnp  

显示正在监听的udp端口,仅显示数字(不解析名称-使其速度更快),并显示正在进行监听的过程(仅当您是root用户时p才有效)

netstat -unp  

显示已打开但未监听的u dp端口,仅显示n的数字(不要解析名称-使其速度更快),并显示正在监听的p进程(仅当您是root用户时,p才有效)

netstat -an

显示正在使用的a ll端口,仅显示n的数字-不解析名称

lsof -i <proto>@<host>:<port>

例如

lsof -i tcp@localhost:25

查看端口localhost 25 /TCP上是否正在侦听任何内容,或者

lsof -i tcp@0.0.0.0:636 

查看是否有任何本地或远程套接字正在侦听(本地)或连接到(本地或远程)任何主机/接口

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10972.html,未经允许,请勿转载。