情况
我自己使用win11笔记本电脑,想要远程win11服务器上的wsl2
我这里只有服务器安装了wsl2,win11笔记本没有安装
因此下面提到的Ubuntu终端指的是win服务器上的wsl2终端
一定要区分是在哪里输入命令!!
安装SSH
在服务器上,打开Ubuntu终端
安装ssh
sudo apt-get install openssh-server
启动ssh
service ssh start
检查ssh的状态
sudo service ssh status
如果出现这行字说明ssh已经在运行了
在wsl2中设置ssh
以下命令在Ubuntu终端
执行:
更改sshd的配置
sudo gedit /etc/ssh/sshd_config
取消对应注释且更改对应设置如下:
# 端口默认是22,可以改为指定的端口,此处改成3456
Port 3456
ListenAddress 0.0.0.0
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_keyPasswordAuthentication yes
PermitRootLogin yes
Port 3456 表示win服务器连接wsl2的端口
重启ssh服务
sudo service ssh restart
以下命令在win服务器终端
输入:
测试一下win服务器是否能够连接连接wsl2
ssh id@wsl2_ip -p 3456
这里的id是ubuntu系统的id,于我而言是syh
wsl2_ip 指的是wsl的ip地址
这里的3456就是sshd_config设置的端口
正常情况下,可以连接成功,让你输密码,然后显示下面的图片
设置端口转发
win电脑访问win服务器上的wsl2的方法是,先访问wsl所在服务器(宿主)然后宿主通过指定的端口将访问请求转发给wsl2
以下命令在win服务器终端
输入:
netsh interface portproxy set v4tov4 listenport=1758 connectport=3456 connectaddress=127.0.0.1
# listenport= port1 将port1设置为1758;表示其他电脑远程win系统服务器的端口是1758;需要自己配置
# connectport=port2 将port2设置为3456;表示win系统服务器连接wsl2的端口是3456,需要配置成sshd_config中设置的端口;需要自己配置
# connectaddress=127.0.0.1:转发的目标 IP 地址,这里是本地回环地址,表示将请求转发到当前计算机上的另一个服务(如 WSL2);不用改
然后可以使用下面的命令(在win服务器终端
输入),查看端口转发成不成功:
netsh interface portproxy show all
表示访问Windows服务器IP:1758 → 转发到 WSL 的 3456 端口(WSL 的 SSH 服务)
然后设置防火墙设置入站规则,这里直接把防火墙都关闭,在win服务器终端
输入
netsh advfirewall set allprofiles state off
重启测试连接情况,在win服务器终端
输入
wsl --shutdown
wsl
sudo service ssh restart
win电脑连接win服务器上的wsl2
以下命令在win服务器终端
输入
ipconfig
下面的地址是win服务器的ipv4地址
然后回到你使用的win电脑
上,打开终端:
ssh id@win_ip -p port1
# 这里的id是ubuntu系统的id,于我而言是syh
# win_ip 指的是win系统服务器的ip地址!!!!!!!就是上面图片中的地址
# 这里的port1就是1758,表示其他电脑远程win系统服务器的端口是1758
如果连接不上:
去win服务器的ubuntu终端
上重启ssh:
sudo service ssh restart
如果还不行,重启win服务器,重启大法好
win电脑上的vscode远程win服务器上的wsl2
添加WSL插件
安装远程开发插件Remote Development和SSH
按照下面的图操作,简单的一批:
会要求你填入命令,格式就是前面提到的:
例如我这里就是 ssh syh@10.129.65.xxx -p 1758
然后回车,选这个:
然后出现这个:
我这里有两个,是因为我还ssh了别的【我这里把wsl重命名为了wsl2】
ctrl+s进行保存,然后刷新后就会出现下面的结果:
点击这个箭头,远程wsl2
因为我们的ssh是通往Ubuntu的,因此选择liunx
这里输入ubuntu的密码:
打开ubuntu中的文件:
点击OK:
完结!!!!!!!!