You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何搭建可接收外部消息的本地服务器?CTF场景Telnet消息转发方案

CTF场景下本地服务接收Telnet服务器消息的解决方案

一、让Telnet服务器直接访问本地服务的方法

核心是解决本地服务的公网可达性问题,推荐两种实用方式:

  • 内网穿透工具(快速便捷)
    用ngrok这类工具把本地端口暴露到公网:

    1. 安装ngrok后,执行命令:ngrok tcp <本地服务端口>(比如本地服务跑在1234端口就输ngrok tcp 1234)
    2. 命令执行后会生成一个公网TCP地址(格式类似tcp://x.tcp.ngrok.io:xxxx),把这个地址的IP和端口配置给Telnet服务器,它发送的消息会自动转发到你的本地服务端口。
  • 路由器端口映射(有公网IP时可用)
    如果你的本地机器所在网络有公网IP,进入路由器管理后台找到「端口转发」设置:

    1. 添加一条映射规则,将公网端口(比如5678)指向本地机器的内网IP和服务端口(比如192.168.1.100:1234)
    2. 将路由器的公网IP和映射的公网端口提供给Telnet服务器即可。

二、其他接收消息的替代方案

如果不想暴露本地服务,也可以用中转或直接监听的方式:

  • VPS中转服务
    在公网VPS上搭建简单的TCP监听程序,先接收Telnet服务器的消息,再按需处理:
    示例Python监听脚本:

    import socket
    
    # 监听所有网卡的9999端口
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.bind(('', 9999))
        s.listen()
        conn, addr = s.accept()
        with conn:
            print(f"来自{addr}的连接")
            while True:
                data = conn.recv(1024)
                if not data:
                    break
                print(f"收到消息: {data.decode()}")
    

    运行脚本后,把VPS的公网IP和9999端口给Telnet服务器,消息会直接打印在VPS终端;如果需要转发到本地,可通过SSH反向隧道实现:ssh -R 9999:127.0.0.1:<本地服务端口> <VPS用户名>@<VPS公网IP>。

  • Netcat直接监听
    有公网机器的话,直接用nc -lvnp <监听端口>(比如nc -lvnp 9999)启动监听,Telnet服务器发过来的消息会实时显示在终端,适合快速接收文本类消息的场景。

  • 反向连接模式
    若能控制Telnet服务器主动发起连接,可在本地用nc -lvnp <本地端口>监听,再通过内网穿透工具把本地端口暴露到公网,让Telnet服务器主动连接该公网地址,从而接收消息。

内容的提问来源于stack exchange,提问作者Liraz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 10:16:21