环境准备:
- Windows11一台(本人ThinkPad T16)
- MacBook Pro
- 两台电脑在同一个局域网内
Windows wls安装ubuntu(本人18.04)并设置ssh登录:
1、修改软件源,否则国内下载很慢
sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo apt update && sudo apt upgrade -y
2、安装配置 ssh 服务
sudo apt install openssh-server
3、修改配置
sudo vim /etc/ssh/sshd_config
将如下内容修改:
Port 3333 # 端口根据自己意愿来
AddressFamily any
ListenAddress 0.0.0.0
PasswordAuthentication yes
4、启动ssh服务
# 如果启动遇到这个错误 请执行下面命令: sshd: no hostkeys available -- exiting
sudo ssh-keygen -A
# 启动ssh服务
sudo /usr/sbin/service ssh start
Windows防火墙设置:
打开控制面板\系统和安全\Windows Defender 防火墙。
- 最左边有高级设置
- 右键点击入站规则
- 新建入站规则
- 点击端口,特定端口设置 3333
- 然后命名之后一路下一步就行
或者通过 shell 设置,以管理员身份打开 PowerShell:
New-NetFirewallRule -Name sshd -DisplayName 'sshd for WSL' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 3333
设置完成后可在windows wls里测试ssh自连接(ssh localhost)和Power Shell中通过ssh命令连接wsl子系统
端口转发(重要):
Macbook 连接windows的wls,需要做端口转发,否则ssh连接的地址始终是windows本机,无法连接到子系统,毕竟wls子系统是个虚拟机。
管理员在Power Shell执行:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=[PORT] connectaddress=[IP] connectport=[PORT]
# PORT 为你设置的端口,我这里为3333
# IP地址为wls linux子系统的ip地址,可通过ifconfig查看