如何确定端口是否在 Ubuntu 8.04 上可用?

Cod*_*eef 28 ubuntu bash port

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

Cat*_*lar 39

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

netstat -antp

Proto Recv-Q Send-Q 本地地址外地址状态PID/程序名称
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 -antp | grep 80" 其中 80 是要搜索的端口号。 (3认同)

Xer*_*xes 13

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

netstat -lnt
Run Code Online (Sandbox Code Playgroud)

...但这给了你更多的控制(以速度为代价(有时是很多速度))......

lsof -n -i -a -u www-data
Run Code Online (Sandbox Code Playgroud)

例如,上面的示例向您展示了所有 TCP 端口打开并处于属于 Apache ( ) 用户的LISTENAND ( -a)状态www-data


Dav*_*ney 8

尝试

lsof -i :<port number>
Run Code Online (Sandbox Code Playgroud)

如果你得到任何结果,一些东西正在监听和绑定,例如

# 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)
Run Code Online (Sandbox Code Playgroud)


Mat*_*hew 8

所有的好答案。

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

如果没有,那么nmap就是你的朋友。

对于初学者尝试:

nmap -Otarget

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

对于初学者尝试:

amaptarget1-6000