两台电脑连接交换机,使用其中一台电脑的网络上网(NAT转发)

场景

windows 电脑和 linux电脑连在同一台交换机上,linux电脑有通过无线网络。要实现Windows电脑通过交换机共享Linux电脑的无线网络上网,需将Linux设为网关并进行网络共享,步骤如下:

一、Linux电脑设置(网关配置)

  1. 开启IP转发‌
    编辑配置文件:
bash 复制代码
sudo vim /etc/sysctl.conf

取消注释:net.ipv4.ip_forward = 1
应用配置:sudo sysctl -p‌
不行的话就直接重启电脑
  1. 设置 linux 有线接口静态IP‌(可选)
    我跳过了这一步,直接在系统设置里设置了 ip。
    例如分配192.168.2.5/24给有线网卡:
bash 复制代码
sudo ip addr add 192.168.2.5/24 dev enp5s0
sudo ip link set enp5s0 up
  1. 配置NAT转发‌
    添加iptables规则(假设无线网卡为 wlx584120dbaca9 ,自动获取IP。有线网卡为 enp5s0 ,手动配置ip,例如配为 192.168.2.5):
bash 复制代码
依次执行:
#清除现有规则(可选)
sudo iptables -F
sudo iptables -t nat -F

#启用NAT(将 enp5s0 的流量转发到 wlx584120dbaca9 )
sudo iptables -t nat -A POSTROUTING -o wlx584120dbaca9 -j MASQUERADE
sudo iptables -A FORWARD -i wlx584120dbaca9 -o enp5s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i enp5s0 -o wlx584120dbaca9 -j ACCEPT

#保存规则
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
  1. 开启DHCP服务(可选,开启后 windows电脑可以不用设置固定ip,我跳过了这步)
bash 复制代码
sudo apt install isc-dhcp-server -y
sudo vim /etc/dhcp/dhcpd.conf

在文件中加入:
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.100 192.168.2.200;
option routers 192.168.2.5; # linux有线接口ip
option domain-name-servers 8.8.8.8; #DNS服务器
}

保存后,启动服务
sudo systemctl restart isc-dhcp-server

二、Windows电脑设置

  1. 有线网络配置静态IP‌(如果 linux 开启了 DHCP,则可改为自动获取 IP)

IP地址:192.168.2.6(与Linux同网段)

子网掩码:255.255.255.0

网关:192.168.2.5(指向Linux有线IP)

DNS:公共DNS 8.8.8.8 或运营商DNS‌

关闭防火墙测试‌

控制面板 → Windows Defender防火墙 → 启用/关闭防火墙(临时关闭验证连通性)‌

三、故障排除

开放Linux防火墙端口:

sudo ufw allow from 192.168.2.0/24 # 允许内网访问

相关推荐
乌恩大侠21 小时前
从真实 5G 网络采集 AI 训练数据:基于 NVIDIA Aerial Data Lake 构建 AI-RAN 数据平台
网络·人工智能·5g·aerial·o-ru·ai-ran
沫璃染墨21 小时前
从零入门计算机网络系列(十):HTTP协议进阶——从资源路径解析到状态码与请求头详解
linux·运维·服务器·网络·c++·http
Sayai21 小时前
Ubuntu 开发环境搭建避坑(一):网卡 EEE 致 60% 周期性丢包,Realtek RTL8125 网络黑洞排查与修复
linux·运维·网络·ubuntu·性能优化
墨染天姬21 小时前
【linux 网络1】数据怎么进网卡到内核?
linux·运维·网络
吴可可1231 天前
去除富怡裁片排版偏移轮廓技巧
电脑
|_⊙1 天前
应用层协议HTTP与HTTPS
网络·网络协议·http
牢姐与蒯1 天前
WSL2 迁移教程:把Ubuntu+WSL2从C盘挪到别的盘
linux·运维·服务器·网络·ubuntu·1024程序员节
垆边人似月.1 天前
RDMA 文件传输踩坑(二):为什么 `sleep()` 不能保证接收端准备好了?
linux·服务器·网络·rdma
深信达沙箱1 天前
轻量化沙箱防护|政企私有化IM防泄密升级,安全不增重
网络·源代码防泄密·源代码加密·磁盘加密·全盘加密·全磁盘加密
ESDWAN1 天前
SD-WAN 是什么?工作原理、适用场景与选型要点
开发语言·网络·数据库·架构·php