如何使标准 ssh 端口成为隐形端口?

Ram*_*ead 0 tcpip firewall ssh stealth server-settings

我在非标准端口上运行个人 ssh 服务器。如果有人尝试通过标准端口 22 登录我的 ssh 服务器,则服务器似乎发送“连接被拒绝”消息。

$ ssh localhost
ssh: connect to host localhost port 22: Connection refused
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它不发送这样的消息并且它的行为就像它没有运行一样?

Ste*_*iss 7

您已经完成了 - 当尝试连接到没有任何监听的端口时,操作系统会发送连接拒绝响应。


Mas*_*imo 6

服务器没有发送任何东西,是客户端告诉您服务器拒绝了连接。如果在您尝试连接时关闭了 TCP 端口,这就是预期的行为。

如果您希望系统在不发送“此端口已关闭”的 TCP 应答(所谓的隐蔽端口)的情况下静默丢弃数据包,则需要在系统上和/或在系统与客户端之间使用防火墙。

  • 这是不正确的!服务器网络堆栈正在发送数据包。当客户端程序发送 TCP SYN 数据包以请求连接时,根据对捕获的数据包的检查,设置了 ACK 和 RST 标志的回复数据包被归类为连接拒绝错误。没有服务器正在侦听该端口,并且正如您所说的那样,该端口已关闭。 (5认同)