Windows 子系统WSL2 Ubuntu使用事项

Windows 子系统WSL2 Ubuntu使用事项

要使外部设备能够访问运行在 Windows 上的 WSL2 实例,你可以端口转发的方法。由于 WSL2 是在虚拟化环境中运行,直接访问比 WSL1 更为复杂.

1 如何实现子系统可以被外部系统SSH

1.1 端口转发: 通过windows代理WSL2的子服务器

端口转发是实现外部访问 WSL2 的常用方法。你可以在 Windows 上设置端口转发,以便将来自外部的网络请求转发到 WSL2 实例。以下是设置端口转发的步骤:

  1. 查找 WSL2 IP 地址: 打开 WSL2 终端,使用命令 ip addr 查找 WSL2 实例的 IP 地址,通常显示在 eth0 接口下。

  2. 设置端口转发规则: 在 Windows 上,打开 PowerShell 或命令提示符作为管理员,然后使用以下命令来设置端口转发。假设你想从外部通过 2222 端口访问 WSL2 的 SSH 服务(默认端口为 22):

    netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=WSL2_IP connectport=22
    

    其中 WSL2_IP 是你在第一步中找到的 WSL2 的 IP 地址。

  3. 配置防火墙: 确保 Windows 防火墙允许流量通过你选择的端口(在这个例子中是 2222)。你可能需要在防火墙设置中手动打开此端口。

1.1.1 windows端配置防火墙

要确保 Windows 防火墙允许流量通过特定的端口(如端口 2222),你需要添加一个入站规则来允许这个端口的数据通行。下面是如何在 Windows 防火墙中添加规则的详细步骤:

  • 打开 Windows 防火墙设置
  1. 打开控制面板:在 Windows 搜索栏中输入“控制面板”,然后打开它。
  2. 进入防火墙设置:点击“系统和安全”下的“Windows 防火墙”。
  3. 高级设置:在左侧菜单中选择“高级设置”,这将打开“Windows 防火墙高级安全”窗口。
  • 创建新的入站规则
  1. 新建规则
    • 在“Windows 防火墙高级安全”窗口的左侧,点击“入站规则”。
    • 右侧面板中点击“新建规则…”按钮。
  2. 选择规则类型
    • 在打开的“新建入站规则向导”中,选择“端口”选项,然后点击“下一步”。
  3. 指定端口
    • 选择“特定本地端口”,然后在旁边的文本框中输入你想要开放的端口号,例如 2222。
    • 点击“下一步”继续。
  4. 允许连接
    • 在接下来的窗口中选择“允许连接”,然后点击“下一步”。
  5. 配置规则应用的配置文件
    • 选择适用于此规则的配置文件(例如,如果你希望无论是在家庭还是公共网络都能访问,可以勾选“域”,“私有”,和“公共”)。
    • 点击“下一步”。
  6. 命名规则
    • 为规则命名,例如“SSH Port 2222”,并可选地提供描述。
    • 点击“完成”保存规则。
  • 确认规则是否生效
  1. 检查规则
    • 在“Windows 防火墙高级安全”窗口的“入站规则”列表中查找你刚才创建的规则,确认它是否被启用。
  2. 测试端口
    • 你可以使用工具如 telnet 或在线端口检查工具,从另一台机器测试端口 2222 是否可以访问。

通过上述步骤,你将成功在 Windows 防火墙中为特定端口(本例中为 2222)添加入站规则,从而允许通过该端口的网络流量。这对于确保能够通过网络与运行在 WSL2 或其他应用上的服务进行通信是必要的。如果你在配置过程中遇到问题,检查防火増设置是否正确无误,并确保没有其他软件(如第三方防火墙或安全软件)阻止该端口的通信。

做完上述服务,即可在外部服务器比如Mac中建立连接(通过Windows的代理端口代理到UBUNTU 子系统),如图所示

在这里插入图片描述

2 WSL2子系统部署的Jupyter如何被外部访问

1. 配置 Jupyter 允许外部访问

首先,确保 Jupyter Notebook 配置允许来自除 localhost 以外的地址的连接。这需要调整 Jupyter 的配置文件:

编辑配置文件: 打开生成的配置文件,通常位于 ~/.jupyter/jupyter_notebook_config.py。使用文本编辑器打开该文件,例如:

nano ~/.jupyter/jupyter_notebook_config.py

修改配置: 在配置文件中找到以下条目并取消注释,然后进行相应修改:

c.ServerApp.notebook_dir = '/home/kython/python_work'


c.ServerApp.ip = '0.0.0.0'  # 监听所有接口
c.ServerApp.port = 8888     # 默认端口是 8888,可以根据需要更改

2. 设置端口转发

由于 WSL2 使用虚拟化网络,直接从外部访问 WSL2 实例的端口可能会有困难。你需要在 Windows 上设置端口转发,将端口 8888 的流量转发到 WSL:

  1. 打开 PowerShell(管理员模式):

    • 右键点击开始菜单,选择“Windows PowerShell(管理员)”。
  2. 添加端口转发规则: 使用 netsh 命令来添加端口转发规则。如果你知道 WSL 的 IP 地址,可以直接使用;如果不知道,你可能需要定期更新这个规则:

    netsh interface portproxy add v4tov4 listenport=8888 listenaddress=0.0.0.0 connectport=8888 connectaddress=WSL_IP_ADDRESS
    

3. 配置防火墙

确保 Windows 防火墙允许流量通过 8888 端口:

  • 按照前面提到的步骤添加 Windows 防火墙的入站规则,允许 8888 端口的通信。

4. 测试连接

从其他机器使用浏览器尝试访问你的 Jupyter Notebook,使用 URL:http://<Windows-IP>:8888,其中 <Windows-IP> 是你的 Windows 机器的 IP 地址。

完成上述步骤后,你的 Jupyter Notebook 应该可以从任何可以访问你 Windows 机器的网络设备上访问了。确保按照操作进行,特别是安全相关的设置,如设置强密码或 token。

在这里插入图片描述

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值