一根网线——Windows共享网络给Linux访问互联网

【避坑指南】一根网线让Windows共享WiFi给Linux上网:解决IP冲突与DNS问题

前言

最近遇到一个需求:我的台式机(Linux系统)没有无线网卡,且路由器端口不够用了。但是我的笔记本(Windows系统)连着WiFi。

能不能用一根网线,把Windows的WiFi网络共享给Linux,让Linux也能上网?

答案是肯定的!但这其中踩了不少坑(IP冲突、DNS配置、SSH连接失败等)。本文将记录完整的配置过程和避坑指南。


一、环境准备

  • 主机A(Windows):已连接WiFi,能正常上网。
  • 主机B(Linux/Ubuntu):通过网线连接到Windows的网口。
  • 物理连接:一根网线,连接两台电脑的以太网口。

二、Windows端配置(开启网络共享)

这是最关键的一步,Windows将充当"路由器"的角色。

  1. 按下 Win + R,输入 ncpa.cpl 打开网络连接面板。
  2. 找到你的 WLAN(WiFi适配器) ,右键点击 -> 属性
  3. 切换到 "共享" 选项卡。
  4. 勾选 "允许其他网络用户通过此计算机的Internet连接来连接"
  5. 在"家庭网络连接"下拉菜单中,务必选择 你连接Linux网线的那个网卡(通常叫"以太网")。
  6. 点击确定。

注意

开启共享后,Windows会自动将"以太网"适配器的IP地址修改为 192.168.137.1。这是Windows作为网关的默认地址,请记住这个IP!


三、Linux端配置(配置静态IP与网关)

这是最容易踩坑的地方!

常见错误:IP地址冲突

很多教程会让你把Linux的IP也设成 192.168.137.1这是绝对错误的!

Windows已经是 192.168.137.1 了,如果Linux也设成这个,会导致IP冲突,网络直接瘫痪。

正确配置步骤

我们需要给Linux设置一个同网段但不同的IP(例如 192.168.137.2.3),并指向Windows为网关。

可以直接在linux网络设置中进行配置,

  • IP:Linux的IP不能是192.168.137.1(该地址作为windows的IP,即Linux的网关),范围:192.168.137.2-254,这里设为192.168.137.3
  • 子网掩码: 255.255.255.0
  • 网关: 192.168.137.1

配置DNS(关键!!!否则能ping通IP, 但无法上网)

Ubuntu20.04及以上 使用systemd-resolved,建议直接修改配置

复制代码
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
echo "nameserver 223.5.5.5" | sudo tee -a /etc/resolv.conf

Ubuntu18.04 则略有不同

  • 使用 systemd-resolved,不能直接改 /etc/resolv.conf:

    sudo nano /etc/systemd/resolved.conf

  • 使用vim或nano打开文件,取消注释并修改:

    [Resolve]
    DNS=8.8.8.8 223.5.5.5
    FallbackDNS=1.1.1.1

  • 修改保存后,重启服务

    sudo systemctl restart systemd-resolved

  • 验证

测试外网

ping -c 4 8.8.8.8

ping -c 4 www.baidu.com

Windows通过MobaXterm连接操作Linux(ssh)

  • windows、linux、外网三者能互ping之后,安装并启动linux的ssh服务
  • ip: 192.168.137.3
  • username: robuster(注意大小写)
  • password: *********
相关推荐
AlfredZhao2 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo3 天前
Linux 彻底且安全地删除文件
linux
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者6 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo6 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10157 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao8 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3109 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql