📅  最后修改于: 2023-12-03 15:38:50.698000             🧑  作者: Mango
在编写网络程序时,经常需要检查端口是否打开。本文将介绍在Mac的Shell/Bash环境中如何检查端口是否打开。
使用telnet命令可以检查端口是否打开。telnet是一种应用程序,它将终端作为与远程主机的交互界面,以便在远程主机上进行基于文本的通信。
以下命令将检查本地主机的80端口是否打开:
telnet localhost 80
如果80端口打开,则你将看到如下输出:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
否则,你将看到如下输出:
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
nc命令是一个在Unix和Linux系统上使用的用于在网络上处理数据的工具。它可以用来检查端口是否打开。
以下命令将检查本地主机的80端口是否打开:
nc -zv localhost 80
如果80端口打开,则你将看到如下输出:
Connection to localhost port 80 [tcp/http] succeeded!
否则,你将看到如下输出:
nc: connectx to localhost port 80 (tcp) failed: Connection refused
nc: connectx to localhost port 80 (tcp) failed: Connection refused
lsof命令是一种检查哪些文件被打开、哪些进程正在使用这些文件的工具。它也可以用来检查端口是否打开。
以下命令将检查是否有进程正在使用本地主机的80端口:
sudo lsof -i :80
如果有进程正在使用80端口,则你将看到如下输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 1064 root 4u IPv6 0xd8d1dc9b02d436fb 0t0 TCP *:http (LISTEN)
httpd 1073 _www 4u IPv6 0xd8d1dc9b02d436fb 0t0 TCP *:http (LISTEN)
否则,你将看到空输出。
以上是在Mac Shell/Bash环境中检查端口是否打开的三种方法。每种方法都有其优点和适用场景。希望本文能对你有所帮助。