wsl2连不上网络

博客介绍了两项网络相关操作。一是在powershell中以管理员权限输入命令添加防火墙入站规则;二是通过sudo vim /etc/resolv.conf添加nameserver 8.8.8.8来修改DNS,但存在重启后文件自动还原的问题,还给出了参考文章链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 添加防火墙入站规则

powershell中以管理员权限输入以下命令

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow

2. 修改DNS

再 sudo vim /etc/resolv.conf,添加nameserver 8.8.8.8

但每次重启文件就自动还原了

参考文章
https://blog.youkuaiyun.com/Cypher_X/article/details/123011200
https://blog.youkuaiyun.com/makarov5/article/details/122493701

### 解决 Shell 无法连接到 WSL2 的问题 当遇到 Shell 无法连接到 WSL2 的情况时,可以按照以下方法排查并解决问题。 #### 配置 SSH Server 确保在 WSL2 中已安装并配置好 OpenSSH 服务器。可以通过以下命令检查是否已安装 `openssh-server`: ```bash sudo apt update && sudo apt install openssh-server ``` 确认服务状态以及启动该服务: ```bash sudo service ssh status sudo service ssh start ``` 如果发现服务未运行,则需要手动启动它[^1]。 #### 修改 SSH 配置文件 编辑 `/etc/ssh/sshd_config` 文件以允许 Root 登录和其他必要的设置: ```bash sudo nano /etc/ssh/sshd_config ``` 修改或添加如下参数: - 将 `PermitRootLogin prohibit-password` 改为 `PermitRootLogin yes` 或者更安全的方式是使用密钥认证。 - 确认 `PasswordAuthentication` 是否被启用(如果是基于密码验证的话),通常建议关闭此选项而采用公私钥方式登录。 - 设置监听端口,默认情况下可能不是标准的22端口,在WSL环境下常用自定义端口号如2222。 保存更改后重启 SSH 服务使新设定生效: ```bash sudo systemctl restart sshd.service ``` #### 处理本地网络映射 由于 WSL2 使用的是虚拟网卡,因此外部程序需通过特定 IP 地址来访问内部实例。一种简单的方法是指定 localhost 并绑定指定端口转发规则。例如上述提到的命令即实现了这一点——利用 PowerShell 执行 `ssh root@localhost -p 2222` 来建立链接。 另外需要注意防火墙策略是否会阻止相应端口的数据传输;必要时调整 Windows Defender Firewall 或其他第三方防护软件的相关入站规则以便放行目标端口流量[^2]。 #### 测试连接性 完成以上步骤之后尝试重新发起 shell 连接请求看问题是否得到解决。假如仍然存在障碍可进一步核查日志记录定位具体原因所在。查看 SSH daemon 日志路径一般位于 `/var/log/auth.log` 下面查找错误提示信息辅助诊断过程。 ```bash tail -f /var/log/auth.log ``` ### 总结 综上所述,要成功实现从 Shell 客户端至 WSL2 子系统的稳定接入操作,不仅依赖于正确部署 SSH server 和合理定制化其行为模式,还需要兼顾主机层面对于跨平台通信的支持程度等因素共同作用下达成最终目的[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值