ssh端口已经被监听
2022年7月5日大约 2 分钟
上一级页面:index-la
前言
查看信息如下
netstat -tan | grep LIST
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
netstat -tulpn
(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)
激活Internet连接 (仅服务器)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
实际原因是,我通过某种方法将WSL2的22端口暴露给Windows,以便在Windows中调用WSL2的ssh服务
这样会造成PID/Program name一项是空值。
而端口被占用的原因是:
Windows 如果安装了 SSH Server 服务,listenport=22
会导致端口冲突,
解决方案是,可以更换wsl2的sshd端口号,卸载禁用 Windows 的 SSH 服务。具体见Python 实现 WSL 2 自动 Windows 主机IP和端口转发,可远程 SSH 登录和访问_Java 小先的博客-CSDN博客_wsl2 端口转发
另外一方面,自 2021 年 10 月起,WSL 2 不会将端口转发到 Windows 外部。这困扰了许多想要将其ssh服务器暴露给Windows外部的用户,并且没有简单的解决方案可以解决这个问题。
Distrod 提供了一个非常简单的端口转发解决方案,使用Distrod内置的portproxy.service
就可以将端口暴露给Windows(端口转发),详见wsl-distrod/references.md at main · nullpo-head/wsl-distrod (github.com)
参考、引用、致谢
Python 实现 WSL 2 自动 Windows 主机IP和端口转发,可远程 SSH 登录和访问_Java 小先的博客-CSDN博客_wsl2 端口转发