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

Ubuntu Linux双网卡实现在校园网环境下的网络共享

实例描述:

双千兆网卡x86架构主机,Ubuntu Linux 22.04 Desktop版(Server版本同理),enp1s0连接需要认证的校园网(可能有设备最大连接数限制),enp2s0连接路由器。此时假设Ubuntu Linux已经通过校园网的认证并设置无感上网。

需求

让enp1s0的网络转发到enp2s0的路由器里面,无需认证实现上网冲浪。

一、设置网卡

使用ifconfig查看网卡信息,如图:
屏幕截图 2025-10-12 010943
netplan中设置网卡:
sudo nano /etc/netplan/00-installer-config.yaml
yaml 文件名称可能不同,tab出来哪个就是哪个。
配置文件修改如下,其中enp2s0连接路由器,address是内网局域网的网关,是自己定的。无线网卡设置不在这里,默认就行。
让enp1s0使用DHCP服务获取校园网给定的ip地址,enp2s0使用静态ip并分配网段,可以为192.168.1.1/24172.10.0.1/2410.0.0.1/24等私网ip,子网掩码分别为255.255.255.0255.255.0.0255.0.0.0,子网掩码代表了最大可分配给设备ip的数量。
ctrl + X 按下Y回车保存退出
使配置生效:
sudo netplan apply

二、开启内核转发
编辑/etc/sysctl.conf配置文件,
sudo nano /etc/sysctl.conf
找到#net.ipv4.ip_forward=1这一行,去掉注释,改为 net.ipv4.ip_forward=1
使生效:
sudo sysctl -p

三、配置NAT转发规则
sudo iptables -t nat -A POSTROUTING -s 172.168.2.0/24 -o enp1s0 -j MASQUERADE
使用sudo iptables -t nat -nL 查看配置规则,sudo iptables -t nat -F 清空规则。
这条命令让来自 172.168.2.0/24 网段的所有流量(all 协议),在离开本机时会进行 IP 伪装(MASQUERADE),通常用于共享本机网络。
172.168.2.0/24 网段的设备通过本机的公网 IP 访问外部网络。

然而这是临时的,服务器重启后便会失效,因此使用iptables-persistent工具永久保存。
sudo apt install iptables-persistent
netfilter-persistent save
四、配置DHCP服务
使用isc-dhcp-server
sudo apt install isc-dhcp-server -y
修改配置文件
sudo nano /etc/default/isc-dhcp-server
屏幕截图 2025-10-12 012321

第一个ipv4协议改为要连接路由器网口的名称。
接下来修改dhcpd.conf文件
sudo nano /etc/dhcp/dhcpd.conf
前面的全部注释(注意确保所有内容全为#注释,否则将影响路由规则),添加以下内容在最后:

subnet 172.168.2.0 netmask 255.255.255.0 {range 172.168.2.10 172.168.2.233;option routers 172.168.2.1;option domain-name-servers 172.168.2.1;option broadcast-address 172.168.2.255;default-lease-time 600;max-lease-time 7200;
}

最后重启DHCP服务
sudo service isc-dhcp-server restart

大功告成,试着运行sudo systemctl status isc-dhcp-server查看运行情况
屏幕截图 2025-10-12 012644

出现active(running)即代表DHCP服务正常运行,从下面的输出能看到路由器通过DHCP获取到的IP地址和路由器WAN网口的MAC地址。
最后把DHCP服务器加入开机自启计划
sudo systemctl enable isc-dhcp-server
验证一下
sudo systemctl enable isc-dhcp-server
出现enable则代表已经加入开机自启。

四、测试
ping 一下enp1s0获取到的DNS和网关,看看能不能通。
ping一下enp2s0的通过enp1s0获取到的DNS和网关,看看能不能通。
ping一下外部网络,如cn.bing.com,www.baidu.com, 看看能不能通。
以上三者全部返回数据包,则任务圆满完成。

http://www.gsyq.cn/news/19225.html

相关文章:

  • 台式机主板上的电池要更换啦
  • 微信小程序 app.js中onLaunch中方法执行完毕后再执行index首页数据请求
  • 轻量服务器Lighthouse + 1Panel 部署.NET 8 Web应用
  • 关于近期调研各类游戏开发引擎的一些感想
  • 终于在vim中用上了molokai的炫酷色彩配置了(゚∀゚)
  • 我是如何在Vim8.1中安装好的NERDTree插件的
  • P12012 [Ynoi April Fools Round 2025] 牢爱 题解
  • 10.11总结
  • CF691E Xor-sequences
  • 分析InfluxDB中读取时CPU飙升
  • 高二停课周记(信息学竞赛) Week1
  • 2025/10/11
  • 十年运维工程师总结
  • 运动控制教学——5分钟学会Dijkstra与A*搜索算法!(附仿真视频及代码) - 教程
  • CNN 发展历程
  • 实验报告5(链栈基本操作,数制转换,匹配算法,伴舞问题)
  • 企业推行OKR中层领导关注的10个关键问题及解决方案
  • P11229 [CSP-J 2024] 小木棍题解
  • 初识pytorch:数据标准化及数据增强的transforms
  • 前端实验(二)模板语法 - 实践
  • Num3:Prompt工程 - 指南
  • 国庆期间做题记录
  • 02020508 EF Core高级08-表达式树、Expression和委托的关系、查看表达式树结构、AST、手动创建表示树、工厂方法
  • commons-net - 详解
  • 02020505 EF Core高级05-实体的5种状态、EntityEntry、AsNoTracking、实体状态跟踪
  • linux防火墙操作命令
  • 机器学习社会影响与导航系统研究
  • 251011
  • 实用指南:漏标(Missing Mark)问题深度解析
  • SSL/TLS加密算法:守护网络通信的安全框架