Windows系统常用端口详解

7,9,13,17,19

这是几个简单的TCP/IP服务,在windows中被Simple TCP/IP Services管理。

  • 7 : Echo 服务:将接收到的数据原样返回。
  • 9 : Discard 服务:会丢弃所有接收到的数据,并且不返回任何数据。
  • 13 : Daytime 服务:返回系统的时间。
  • 17 : Quote of the Day 服务:每日一句。
  • 19 : Character Generator 服务: 会发送一个字符序列,每个字符由一个字节表示。

java测试代码

点击展开/折叠代码块
public class SocketTest {


    /**
     * echo服务会将接收到的数据原样返回。
     */
    @Test
    @SneakyThrows
    public void echoTest() {
        String host = "localhost";
        try (var s = new Socket(host, 7)) { // Echo 使用端口 7
            s.setSoTimeout(5000);
            try (OutputStream out = s.getOutputStream(); InputStream in = s.getInputStream()) {
                String message = "Hello, Echo!";
                out.write(message.getBytes(StandardCharsets.UTF_8));
                out.flush();

                byte[] buffer = new byte[1024];
                int bytesRead = in.read(buffer);
                String response = new String(buffer, 0, bytesRead, StandardCharsets.UTF_8);
                System.out.println("Received: " + response);
            }
        }
    }

    /**
     * Discard 服务会丢弃所有接收到的数据,并且不返回任何数据。为了验证这个服务,可以发送一些数据并观察没有响应。
     */
    @Test
    @SneakyThrows
    public void discardTest() {
        String host = "localhost";
        try (var s = new Socket(host, 9)) { // Discard 使用端口 9
            s.setSoTimeout(5000);
            System.out.println("connect localhost Discard 9 port : " + s.isConnected());
            try (OutputStream out = s.getOutputStream()) {
                out.write("Test data".getBytes(StandardCharsets.UTF_8));
                out.flush();
            }
            System.out.println("Data sent, no response expected.");
        }
    }

    /**
     * 获取daytime协议服务器的时间
     */
    @Test
    @SneakyThrows
    public void socketTest() {
//        String host = "time-a.nist.gov";
        String host = "localhost";
        try (var s = new Socket(host, 13)) {
            s.setSoTimeout(5000);
            try (var in = new Scanner(s.getInputStream(), StandardCharsets.UTF_8)) {
                while (in.hasNextLine()) {
                    String line = in.nextLine();
                    System.out.println(line);
                }
            }
        }
    }


    /**
     * quote of the day,返回一句名言
     */
    @Test
    @SneakyThrows
    public void quoteTest() {
        String host = "localhost";
        try (var s = new Socket(host, 17)) { // Quote of the Day 使用端口 17
            s.setSoTimeout(5000);
            try (var in = new Scanner(s.getInputStream(), StandardCharsets.UTF_8)) {
                while (in.hasNextLine()) {
                    String line = in.nextLine();
                    System.out.println(line);
                }
            }
        }
    }


    /**
     * Character Generator 服务会发送一个字符序列,每个字符由一个字节表示。
     */
    @Test
    @SneakyThrows
    public void characterGeneratorTest() {
        String host = "localhost";
        try (var s = new Socket(host, 19)) { // Character Generator 使用端口 19
            s.setSoTimeout(5000);
            try (var in = new Scanner(s.getInputStream(), StandardCharsets.UTF_8)) {
                for (int i = 0; i < 10 && in.hasNextLine(); i++) {
                    String line = in.nextLine();
                    System.out.println(line);
                }
            }
        }
    }
}

135

135端口主要用于Microsoft的远程过程调用(RPC)服务。RPCSS(Remote Procedure Call Subsystem) 服务是 COM 和 DCOM 服务器的服务控制管理器。它执行 COM 和 DCOM 服务器的对象激活请求、对象导出程序解析和分布式垃圾回收。如果此服务被停用或禁用,则使用 COM 或 DCOM 的程序将无法正常工作。强烈建议你运行 RPCSS 服务。

3389

3389端口是Windows 的远程桌面连接(Remote Desktop Protocol,RDP)使用的默认端口。远程桌面允许你使用远程桌面客户端(适用于Windows、Android、iOs和 macOs)从远程设备连接到这台电脑并加以控制。这样,你就可以通过其他设备工作,如同直接在这台电脑上工作一样。

5357端口

5357端口通常用于Microsoft Windows的WS-Discovery(Web Services Dynamic Discovery)。这是一个用于网络设备自动发现的协议,特别是在局域网内使用。这意味着某些Windows设备可能会在这个端口上进行广播,以便发现和识别同一网络中的其他设备。

要关闭端口5357上的WS-Discovery服务,可以通过禁用相关服务来实现。以下是步骤:

通过服务管理器禁用 WS-Discovery 服务

  1. 打开服务管理器:

Windows + R,输入 services.msc,然后按回车。

  1. 找到并禁用服务:

在服务列表中找到名为 Function Discovery Resource PublicationSSDP Discovery 的服务。
对每个服务右键单击,选择“属性”。
将“启动类型”设置为“禁用”。
如果服务正在运行,点击“停止”。

posted @ 2024-07-31 22:26  雨中遐想  阅读(473)  评论(0编辑  收藏  举报