如何找出 Ubuntu 8.04 上某个端口是否可用?

如何找出 Ubuntu 8.04 上某个端口是否可用?

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

答案1

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

网络状态监测

Proto Recv-Q Send-Q 本地地址 外部地址 状态 PID/程序名称
tcp 0 0 xxx.xxx.xxx.xxx 0.0.0.0:* 侦听 16297/命名     
tcp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0:* 侦听 16297/命名     
tcp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0:* 侦听 16297/命名     
tcp 0 0 127.0.0.1:53 0.0.0.0:* 侦听 16297/命名     

答案2

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

netstat -lnt

...但这会给你更多的控制权(以速度为代价(有时会降低很多速度))...

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

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

答案3

所有答案都很好。

但是您没有提到是否登录了该计算机。;P

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

对于初学者来说,请尝试:

nmap -Otarget

一张地图也是一个不错的选择,它还会通过抓取横幅页面来尝试猜测服务器软件。

对于初学者来说,请尝试:

amaptarget1-6000

答案4

netstat -tlnp  

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

netstat -ulnp  

显示u正在监听的 dp 端口l​​,仅显示n号码(不解析名称 - 使其更快)并显示p正在进行监听的进程(p仅当您是 root 时才有效)

netstat -unp  

显示u打开但未监听的 dp 端口​​,n仅显示端口号(不解析名称-使其更快)并显示p正在进行监听的进程(p仅当您是 root 时才有效)

netstat -an

显示a所有正在使用的端口,n仅显示号码 - 不解析名称

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

例如

lsof -i tcp@localhost:25

查看是否有任何东西在监听 localhost 25/TCP 端口,或者

lsof -i [email protected]:636 

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

相关内容