ubuntu网络共享

文章目录

      • [方法 1:使用 Ubuntu 内置网络共享(界面)](#方法 1:使用 Ubuntu 内置网络共享(界面))
        • [1. 确保 Ubuntu 已连接 Wi-Fi](#1. 确保 Ubuntu 已连接 Wi-Fi)
        • [2. 用网线连接 Ubuntu 和 Windows](#2. 用网线连接 Ubuntu 和 Windows)
        • [3. 在 Ubuntu 上启用网络共享](#3. 在 Ubuntu 上启用网络共享)
        • [4. 检查 Ubuntu 有线接口 IP*](#4. 检查 Ubuntu 有线接口 IP*)
        • [5. 在 Windows 上配置网络](#5. 在 Windows 上配置网络)
        • [6. 测试网络连接](#6. 测试网络连接)
      • [方法 2:手动配置 IP 转发(配置命令行配置)](#方法 2:手动配置 IP 转发(配置命令行配置))
        • [1. 在 Ubuntu 上启用 IP 转发](#1. 在 Ubuntu 上启用 IP 转发)
        • [2. 设置 NAT 规则](#2. 设置 NAT 规则)
        • [3. 配置有线接口 IP](#3. 配置有线接口 IP)
        • [4. 在 Windows 上手动设置 IP](#4. 在 Windows 上手动设置 IP)
      • 常见问题解决
        • [1. Windows 无法上网](#1. Windows 无法上网)
        • [2. 接口名称不同](#2. 接口名称不同)
        • [3. NAT 规则重启失效](#3. NAT 规则重启失效)

使用Ubuntu 通过有线共享无线网络给 Windows,可以按照以下步骤操作:


方法 1:使用 Ubuntu 内置网络共享(界面)

1. 确保 Ubuntu 已连接 Wi-Fi
  • 点击右上角网络图标,确保已连接到可用的 Wi-Fi 网络。
2. 用网线连接 Ubuntu 和 Windows
  • 使用以太网线将 Ubuntu 主机和 Windows 电脑连接起来。
3. 在 Ubuntu 上启用网络共享
  • 打开 "设置" (Settings)→ "网络"(Network)。
  • 选择左侧的 "有线"(Wired)连接,点击齿轮图标(⚙️)。
  • IPv4 设置 选项卡中,选择 "共享给其他计算机"(Shared to other computers)。
  • 点击 "应用"(Apply)保存设置。
4. 检查 Ubuntu 有线接口 IP*
  • 打开终端,运行:

    bash 复制代码
    ip addr show

    有线接口(如 enp0s25eth0)的 IP 应为 10.42.0.1(Ubuntu 会自动分配)。

5. 在 Windows 上配置网络
  • 确保 Windows 使用 DHCP(自动获取 IP)

    • 打开 "控制面板""网络和共享中心""更改适配器设置"
    • 右键点击 以太网"属性" → 双击 "Internet 协议版本 4 (TCP/IPv4)"
    • 选择 "自动获取 IP 地址""自动获取 DNS 服务器地址"
    • 点击 "确定" 保存。
  • 手动设置(可选,如果 DHCP 不生效)

    • IP 地址:10.42.0.2
    • 子网掩码:255.255.255.0
    • 默认网关:10.42.0.1
    • DNS:8.8.8.8(或 Ubuntu 的 IP 10.42.0.1
6. 测试网络连接
  • 在 Windows 上打开命令提示符(cmd),运行:

    cmd 复制代码
    ping 8.8.8.8

    如果成功,说明网络共享已生效。

方法 2:手动配置 IP 转发(配置命令行配置)

如果方法 1 不生效,可以手动设置 NAT 转发:

1. 在 Ubuntu 上启用 IP 转发
  • 编辑 /etc/sysctl.conf

    bash 复制代码
    sudo nano /etc/sysctl.conf
  • 取消注释或添加:

    ini 复制代码
    net.ipv4.ip_forward=1
  • 应用更改:

    bash 复制代码
    sudo sysctl -p
2. 设置 NAT 规则
  • 假设:

    • 无线接口(Wi-Fi):wlp3s0(用 ip a 查看)
    • 有线接口(以太网):enp0s25(用 ip a 查看)
  • 运行以下命令:

    bash 复制代码
    sudo iptables -t nat -A POSTROUTING -o wlp3s0 -j MASQUERADE
    sudo iptables -A FORWARD -i enp0s25 -o wlp3s0 -j ACCEPT
    sudo iptables -A FORWARD -i wlp3s0 -o enp0s25 -m state --state RELATED,ESTABLISHED -j ACCEPT

以下是三条iptables命令的详细解释:

  1. NAT地址伪装(MASQUERADE)
bash 复制代码
sudo iptables -t nat -A POSTROUTING -o wlp3s0 -j MASQUERADE
  • 作用 :将来自有线网卡enp0s25的流量通过无线网卡wlp3s0发出时,自动修改源IP为无线网卡的IP地址
  • 关键点
    • -t nat:操作NAT表
    • POSTROUTING:在数据包发出前的最后处理阶段
    • -o wlp3s0:指定出口网卡
    • MASQUERADE:动态IP伪装(适用于DHCP获取IP的情况)
  1. 正向流量放行规则
bash 复制代码
sudo iptables -A FORWARD -i enp0s25 -o wlp3s0 -j ACCEPT
  • 作用 :允许从有线网卡(enp0s25)进入,从无线网卡(wlp3s0)转发的流量
  • 流向客户端 → 有线网卡 → 无线网卡 → 互联网
  1. 反向流量控制规则
bash 复制代码
sudo iptables -A FORWARD -i wlp3s0 -o enp0s25 -m state --state RELATED,ESTABLISHED -j ACCEPT
  • 作用:仅允许与已有连接相关的返回流量通过
  • 保护机制
    • -m state:启用连接状态检测
    • RELATED,ESTABLISHED:只放行已建立的连接或关联的新连接(如FTP数据传输)
    • 阻止外部主动发起的连接请求,增强安全性

整体网络流

客户端请求 → enp0s25 → (NAT转换) → wlp3s0 → 互联网

互联网响应 → wlp3s0 → (状态检测) → enp0s25 → 客户端


3. 配置有线接口 IP
  • 将有线接口设为静态 IP:

    bash 复制代码
    sudo ip addr add 10.42.0.1/24 dev enp0s25
4. 在 Windows 上手动设置 IP
  • 按照 方法 1 的步骤 5 手动设置 Windows 的 IP 为 10.42.0.2,网关为 10.42.0.1

常见问题解决

1. Windows 无法上网
  • 检查 Ubuntu 的防火墙是否允许转发:

    bash 复制代码
    sudo ufw allow in on enp0s25
  • 确保 Windows 的网关和 DNS 设置正确。

如果windwos 已获取了10.42.0.x的IP,但是不能访问互联网,则需要手动写NAT规则。

  • 假设:

    • 无线接口(Wi-Fi):wlp3s0(用 ip a 查看)
    • 有线接口(以太网):enp0s25(用 ip a 查看)
  • 运行以下命令:

    bash 复制代码
    sudo iptables -t nat -A POSTROUTING -o wlp3s0 -j MASQUERADE
    sudo iptables -A FORWARD -i enp0s25 -o wlp3s0 -j ACCEPT
    sudo iptables -A FORWARD -i wlp3s0 -o enp0s25 -m state --state RELATED,ESTABLISHED -j ACCEPT

2. 接口名称不同
  • ip aifconfig 确认你的实际接口名(如 eth0enp0s3 等)。
3. NAT 规则重启失效
  • 若要持久化 iptables 规则,安装 iptables-persistent

    bash 复制代码
    sudo apt install iptables-persistent
    sudo netfilter-persistent save

  • 推荐方法 1(图形化设置),简单快捷,NAT规则。
  • 如果无效,再尝试 方法 2(手动配置 NAT)。
  • 确保 Windows 使用 自动获取 IP 或手动设置正确的网关(10.42.0.1)。
相关推荐
领尚14 小时前
openclaw 极简安装(Ubuntu 24.04 server)
linux·运维·ubuntu
Gofarlic_OMS14 小时前
Windchill的license合规使用报告自动化生成与审计追踪系统
大数据·运维·人工智能·云原生·自动化·云计算
迷途之人不知返14 小时前
shell相关知识与Linux权限
linux
SPC的存折14 小时前
3、主从复制实现同步数据过滤
linux·运维·服务器
SPC的存折14 小时前
openEuler 24.03 MariaDB Galera 集群部署指南(cz)
linux·运维·服务器·数据库·mysql
xcbrand14 小时前
文旅行业品牌策划公司找哪家
大数据·运维·人工智能·python
SPC的存折15 小时前
MySQL 8.0 分库分表
linux·运维·服务器·数据库·mysql
cyber_两只龙宝15 小时前
【Oracle】Oracle之DQL中WHERE限制条件查询
linux·运维·数据库·云原生·oracle
斌味代码15 小时前
Shell 性能监控:指标采集、告警规则与可视化大盘设计
运维
22信通小白15 小时前
USRP初学者使用手册(基础配置及bug记录)——Linux+Clion(单台X310收发)
linux·运维·c++·5g·bug·信息与通信