允许局域网连接到wsl内的ssh-server

举报
Amrf 发表于 2023/02/27 00:09:18 2023/02/27
【摘要】 wsl2好像已经支持systemd了,不过我还是使用的wsl genie方式支持的systemd;如果采用genie来支持systemd,可以在wsl内执行(前提先把升级当前镜像到WSL2),然后安装geniesudo apt updatesudo apt install -y systemd-genie之后wsl --shuntdown以后使用下面的命令启动镜像就可以得到systemd支持...

wsl2好像已经支持systemd了,不过我还是使用的wsl genie方式支持的systemd;

  • 如果采用genie来支持systemd,可以在wsl内执行(前提先把升级当前镜像到WSL2),然后安装genie

sudo apt update
sudo apt install -y systemd-genie

之后

wsl --shuntdown

以后使用下面的命令启动镜像就可以得到systemd支持

wsl genie -s
  • 安装ssh-server

sudo apt update
sudo apt install openssh-server

  • 启动服务

sudo systemctl enable sshd.service
sudo systemctl start sshd.service
  • 设置端口转发

之后我们要将我wsl内的ssh端口代理到host上

netsh int portproxy reset all
// netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=22
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=127.0.0.1 connectport=22
netsh interface portproxy show v4tov4
  • 防火墙设置

netsh advfirewall firewall add rule name=”WSL SSH” dir=in action=allow protocol=TCP localport=22
  • 备注

经过前面的设置,局域网的电脑就能直接连接wsl内了,但是需要注意的是第二次开机之后,重新打开wsl服务之后,局域网ssh连接又连接不上了,netstat -ano之后可以看到22端口有大量处于time_waiting状态的连接,把22的可用连接句柄都占完了;这个时候可以先管理员权限运行netsh int portproxy reset all,然后wsl --shutdown,然后wsl genie -s,等待启动完成后,运行netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=22 connectaddress=127.0.0.1 connectport=22,这样局域网内就可以正常连接了;

  • 参考:

https://www.cnblogs.com/asdyzh/p/15190323.htmlhttps://github.com/arkane-systems/genie
https://medium.com/geekculture/enable-ssh-access-into-wsl-from-a-remote-computer-f2e4a962430
https://www.hanselman.com/blog/how-to-ssh-into-wsl2-on-windows-10-from-an-external-machine
https://www.cnblogs.com/asdyzh/p/15190323.html
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。