收到 TCP 连接后执行命令

收到 TCP 连接后执行命令

我想bash在成功建立到指定本地开放端口的远程连接时运行命令。我已经调查过网猫索卡特,但我不确定是否具有我想要的功能。我不关心通信的内容,只关心已经建立了连接(启动后可以立即断开连接)。

这是因为,我有一个本地资源(a我的世界服务器),我只想在请求时启动。理论上,客户端应该尝试连接(最初当然会失败),然后服务器将启动,几分钟后客户端可以再次连接到正在运行的服务器。

答案1

有一个-F选项nc

-F 使用 sendmsg(2) 将第一个连接的套接字传递到 stdout 并退出。这与 -X 结合使用非常有用,可以让 nc 执行与代理的连接设置,然后将其余连接保留给另一个程序(例如,使用 ssh_config(5) ProxyUseFdpass 选项的 ssh(1))。

猜测你可以沿着这条线使用它:

nc -Fl 22222 | true && echo connection arrived

当然,您会启动服务器而不是回显。22222是端口,l代表监听。

相关内容