思路步骤
- 准备事项
- wsl和windows宿机之间是公用端口和IP的相同会导致冲突
- 检查端口没有被占用
- 检查服务安装并启用
- 检查wsl确定为版本2
- (windows)安装服务
- microsoft store 搜索 ubuntu 下载安装
- 进入wsl-ubuntu 安装ssh服务端
- 退出wsl-ubuntu 在 windows的powerShell中允许局域网访问到wsl中
- 测试局域网是否可以连接到wsl中的ssh
- 进入wsl-ubuntu 安装frpc并启动
- (云服务linux)安装服务
- Frps 服务端安装配置启动
- 测试终端连接服务器IP与端口穿透到内网中的wsl中
涉及命令
# windows power shell 命令
ps> netstat -ano | findstr "端口号"
ps> tasklist | findstr "进程id号"
ps> taskkill /f /t /im "进程id或者进程名称"
ps> wsl -l -v #查看现有的子系统 带版本
ps> wsl --set-default-version 2 #设置默认子系统版本
ps> wsl --set-version Ubuntu-18.04 2 #将子系统转成 版本2
ps> netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=[wsl中的IP地址] # 允许局域网访问端口
ps> netsh interface portproxy show all #查看允许的端口
ps> netsh interface portproxy delete v4tov4 listenport=22 listenaddress=0.0.0.0 #删除
ps> telnet ip
# windows-wsl操作命令
$ sudo apt-get remove openssh-server
$ sudo apt-get install openssh-server
$ sudo vi /etc/ssh/sshd_config
>>> Port 22
>>> PermitRootLogin yes
>>> PasswordAuthentication yes
$ sudo vim /etc/hosts.allow #追加一行
>>> sshd: ALL
$ sudo service ssh --full-restart #重启服务
# 云服务操作命令
$ sudo nc -l 25500 #启动一个tcp服务
$ sudo nc -v xxx.xxx.xxx.xxx 25500 #连接一个TCP服务
相关资料
Netsh interface portproxy 官方文档
netsh interface portproxy 示例操作
如何用笔记本ssh连接局域网内其他电脑上的wsl2 ubuntu