【发布时间】:2015-05-11 17:35:27
【问题描述】:
我怎么能说端口是打开或关闭的。打开端口和关闭端口的确切含义是什么。
【问题讨论】:
我怎么能说端口是打开或关闭的。打开端口和关闭端口的确切含义是什么。
【问题讨论】:
我最喜欢的检查特定端口是打开还是关闭的工具是telnet。您可以在所有操作系统上找到此工具。
语法为:telnet <hostname/ip> <port>
这是端口打开时的样子:
telnet localhost 3306
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
这是关闭端口后的样子:
telnet localhost 9999
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
根据您的用例,您可能需要在另一台机器上执行此操作,以排除防火墙规则的问题。例如,仅仅因为我能够在本地 telnet 到端口 3306 并不意味着其他机器能够访问端口 3306。他们可能会将其视为由于防火墙规则而关闭。
就开放/关闭端口的含义而言,开放端口允许将数据发送到侦听该端口的程序。在上面的示例中,端口 3306 是打开的。 MySQL 服务器正在侦听该端口。这允许 MySQL 客户端连接到 MySQL 数据库并发出查询等。
有other tools可以查看多个端口的状态。您可以通过 Google 搜索 Port Scanner 以及您正在使用的操作系统以获取其他选项。
【讨论】:
打开的端口是您可以连接 (TCP)/发送数据 (UDP) 的端口。它是打开的,因为有一个进程打开了它。
有许多不同类型的端口。在 Internet 上使用的是 TCP 和 UDP 端口。
要查看现有连接列表,您可以使用netstat(在 Unix 和 MS-Windows 下可用)。在 Linux 下,我们有 -l (--listen) 命令行选项将列表限制为打开的端口(即监听端口)。
> netstat -n64l
...
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN
...
udp 0 0 0.0.0.0:53 0.0.0.0:*
...
raw 0 0 0.0.0.0:1 0.0.0.0:* 7
...
在我的示例中,我展示了一个打开的 TCP 端口 6000。这通常用于 X11 访问(因此您可以在计算机之间打开窗口。)
另一个端口 53 是 DNS 系统使用的 UDP 端口。请注意,UDP 端口“刚刚打开”。您可以随时向他们发送数据包。您不能像使用 TCP/IP 那样创建客户端/服务器连接。因此,在这种情况下,您看不到 LISTEN 状态。
这里的最后一个条目是“raw”。这是一种本地类型的端口,仅适用于一台计算机内的进程之间。进程可以使用它来发送 RPC 事件等。
【讨论】: