AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 14429
Accepted
Codebeef
Codebeef
Asked: 2009-05-30 02:59:24 +0800 CST2009-05-30 02:59:24 +0800 CST 2009-05-30 02:59:24 +0800 CST

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

  • 772

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

ubuntu bash port
  • 10 10 个回答
  • 82644 Views

10 个回答

  • Voted
  1. Best Answer
    Caterpillar
    2009-05-30T03:08:17+08:002009-05-30T03:08:17+08:00

    使用“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/命名     
    tcp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0:* LISTEN 16297/命名     
    tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 16297/命名     
    • 39
  2. Xerxes
    2009-05-30T03:23:01+08:002009-05-30T03:23:01+08:00

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

    netstat -lnt
    

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

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

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

    • 13
  3. Dave Cheney
    2009-05-30T03:04:16+08:002009-05-30T03:04:16+08:00

    尝试

    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)
    
    • 8
  4. Matthew
    2009-05-30T03:35:39+08:002009-05-30T03:35:39+08:00

    所有好的答案。

    但是,您没有提及您是否已登录相关计算机。;P

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

    对于初学者尝试:

    nmap -Otarget

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

    对于初学者尝试:

    amaptarget1-6000

    • 8
  5. Jason Tan
    2009-05-30T08:21:41+08:002009-05-30T08:21:41+08:00
    netstat -tlnp  
    

    显示正在监听t的 cp 端口,仅显示数字(不解析名称 - 使其更快)并显示正在侦听的进程(如果您是 root,则唯一有效)lnpp

    netstat -ulnp  
    

    显示正在监听u的 dp 端口​​,仅显示数字(不解析名称 - 使其更快)并显示正在侦听的进程(如果您是 root,则唯一有效)lnpp

    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 
    

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

    • 4
  6. Jamie
    2009-05-30T03:06:07+08:002009-05-30T03:06:07+08:00

    lsof (list open files) 是一个很好的工具来查看一个进程是否正在监听一个端口

    lsof -P | grep :<端口号>

    netstat 是查看是否有任何活动连接的好工具。

    网络统计-n | grep :<端口号>

    • 2
  7. colmmacc
    2009-05-30T05:20:36+08:002009-05-30T05:20:36+08:00

    你没有提到你想使用什么协议,即 TCP 或 UDP - 认识到“端口”并不像系统支持消除套接字歧义的那样精细,这一点也很重要。例如,如果您的系统有多个 IP 地址,那么端口 80 可能正在用于所有 IP 地址(应用程序已绑定到“0.0.0.0”或“::”或连续绑定到每个 IP 地址),或者它可能在仅用于这些 IP 地址的子集。

    确定端口/地址是否空闲和可用的最好、最可靠的方法是尝试绑定到它。Netcat 很方便。

    nc -l [-s abcd] -p NN

    将尝试绑定到 TCP 端口 NN(可选,默认为所有地址) abcd 添加 -u 选项以在 UDP 中执行相同操作。

    接下来,要按照您的要求判断端口是否真正“开放” - 您需要开始查看潜在的防火墙规则。同样,最简单的事情是尝试连接到端口。如上所述在服务器上使用 netcat,从客户端使用 netcat 尝试连接到您打开的端口。

    nc [-u] abcd NN

    如果指定了 -u 标志,将使用 UDP 连接到 abcd 上的端口 NN。然后,您可以在客户端输入输入,它应该会显示在服务器上。如果没有,您需要查看系统和网络特定工具。

    • 2
  8. Oct
    2009-05-30T08:05:07+08:002009-05-30T08:05:07+08:00

    我使用fuser(在包 psmisc 中):

    fuser -n tcp 端口

    带回绑定到此端口的进程的pid 。

    如果这是为了知道端口是否正在侦听,那么好的旧telnet就可以了:)

    远程登录 127.0.0.1 端口

    • 2
  9. Josiah Johnston
    2011-06-28T11:30:05+08:002011-06-28T11:30:05+08:00

    这个单行程序将为您提供所有正在使用的 TCP 端口的列表。它适用于 Ubuntu 和 OS X 上的 bash。

    netstat -ant | sed -e '/^tcp/ !d' -e 's/^[^ ]* *[^ ]* *[^ ]* *.*[\.:]\([0-9]*\) .*$/\1/' | sort -g | uniq

    该列表将每行有一个端口,没有任何额外信息。

    • 2
  10. Alex028502
    2018-02-03T03:07:37+08:002018-02-03T03:07:37+08:00

    很多方法给我带来了问题,因为它们不能在 linux 和 osx 上运行,和/或因为它们没有显示 docker 使用的端口或 root 拥有的进程。现在我只使用这个 javascript 程序:

    (确保您已安装节点并且它不仅适用于node或nodejs相应地更改程序)

    check-port将以下内容保存到路径或项目中调用的文件中

    #!/usr/bin/env node
    var http = require('http');
    var app = new http.Server();
    app.listen(process.argv[2], () => {
      process.exit(0)
    });
    

    设置权限

    chmod +x path/to/check-port
    

    从你的路径跑

    check-port 8080
    

    或从同一目录运行

    ./check-port 8080
    

    到目前为止,它运行良好。

    • 0

相关问题

  • 如何在 Ubuntu 上设置简单的防火墙?

  • 设置没有密码的用户

  • 在 Ubuntu 上设置电子邮件服务器

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve