当前位置: 首页 > news >正文

ubuntu网络共享

文章目录

      • 方法 1:使用 Ubuntu 内置网络共享(界面)
        • 1. 确保 Ubuntu 已连接 Wi-Fi
        • 2. 用网线连接 Ubuntu 和 Windows
        • 3. 在 Ubuntu 上启用网络共享
        • 4. 检查 Ubuntu 有线接口 IP*
        • 5. 在 Windows 上配置网络
        • 6. 测试网络连接
      • 方法 2:手动配置 IP 转发(配置命令行配置)
        • 1. 在 Ubuntu 上启用 IP 转发
        • 2. 设置 NAT 规则
        • 3. 配置有线接口 IP
        • 4. 在 Windows 上手动设置 IP
      • 常见问题解决
        • 1. Windows 无法上网
        • 2. 接口名称不同
        • 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*
  • 打开终端,运行:
    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),运行:
    ping 8.8.8.8
    
    如果成功,说明网络共享已生效。

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

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

1. 在 Ubuntu 上启用 IP 转发
  • 编辑 /etc/sysctl.conf
    sudo nano /etc/sysctl.conf
    
  • 取消注释或添加:
    net.ipv4.ip_forward=1
    
  • 应用更改:
    sudo sysctl -p
    
2. 设置 NAT 规则
  • 假设:

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

    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)
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. 正向流量放行规则
sudo iptables -A FORWARD -i enp0s25 -o wlp3s0 -j ACCEPT
  • 作用:允许从有线网卡(enp0s25)进入,从无线网卡(wlp3s0)转发的流量
  • 流向客户端 → 有线网卡 → 无线网卡 → 互联网
  1. 反向流量控制规则
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:
    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 的防火墙是否允许转发:
    sudo ufw allow in on enp0s25
    
  • 确保 Windows 的网关和 DNS 设置正确。

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

  • 假设:

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

    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
    sudo apt install iptables-persistent
    sudo netfilter-persistent save
    

  • 推荐方法 1(图形化设置),简单快捷,NAT规则。
  • 如果无效,再尝试 方法 2(手动配置 NAT)。
  • 确保 Windows 使用 自动获取 IP 或手动设置正确的网关(10.42.0.1)。
http://www.xdnf.cn/news/1313569.html

相关文章:

  • 银行间交易IMIX协议加密相关
  • JetPack系列教程(八):PDF库——让Android应用也能优雅“翻页”
  • androidstudio内存大小配置
  • 《从混乱到有序:AI 如何一步步梳理数据质量难题》文章提纲
  • LIN-TestWait函数解析
  • 【Html网页模板】赛博朋克数据分析大屏网页
  • 【开发技巧】VS2022+QT5+OpenCV4.10开发环境搭建QT Creator
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘opencv-python’问题
  • 从希格斯玻色子到 QPU:C++ 的跨维度征服
  • 电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
  • 从频繁告警到平稳发布:服务冷启动 CPU 风暴优化实践01
  • Centos7.9安装Dante
  • 深度解析Java synchronized关键字及其底层实现原理
  • python---包
  • 《WINDOWS 环境下32位汇编语言程序设计》第2章 准备编程环境
  • 深入剖析 TOTP 算法:基于时间的一次性密码生成机制
  • IOMMU多级页表查找的验证
  • 【计算机网络架构】混合型架构简介
  • 39.离散化与哈希
  • 模型训练监控:TensorBoard与Weights Biases (WB) 使用详解
  • 《A Practical Guide to Building Agents》文档学习
  • 写一个linux脚本,要求实现查找9010端口,如果端口存在则kill,否则不处理,返回对应的提示
  • 24. async await 原理是什么,会编译成什么
  • Linux系统top命令详细指南
  • 安卓11 12系统修改定制化_____如何去除安卓11 12的系统签名验证
  • 基于Transformer的机器翻译——模型篇
  • 《后室Backrooms》中文版,购物误入异空间,怪物追逐,第一人称冒险逃生
  • 安卓11 12系统修改定制化_____修改系统 解锁system分区 去除data加密 自由删减系统应用
  • 服务器配置开机自启动服务
  • 线程池与异步编程——语法归纳