当前位置: 首页 > 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.hskmm.com/?act=detail&tid=29052

相关文章:

  • PVE8.x仅克隆虚拟机配置
  • 常用的sql语句
  • SQL常用语句分类及示例
  • 台式机主板上的电池要更换啦
  • 微信小程序 app.js中onLaunch中方法执行完毕后再执行index首页数据请求
  • 轻量服务器Lighthouse + 1Panel 部署.NET 8 Web应用
  • bash alias 多引号问题
  • 关于近期调研各类游戏开发引擎的一些感想
  • Electron38-Vue3OS客户端OS系统|vite7+electron38+arco桌面os后台管理
  • 终于在vim中用上了molokai的炫酷色彩配置了(゚∀゚)
  • 我是如何在Vim8.1中安装好的NERDTree插件的
  • Kafka监控工具 EFAK-AI 介绍
  • 视频拍摄技巧 - 希区柯克变焦/滑动变焦 All In One
  • 信息化说课-教学设计(6)
  • 记录:git
  • 实验1 现代C++编程初体验
  • 10.11总结
  • 2025年10月门窗十大品牌最新推荐榜单,十大品牌测评排名与选择指南
  • CF60E Mushroom Gnomes
  • CF691E Xor-sequences
  • LCPC12E - Johnnys Empire 题解
  • 中微笔记-cp.1 技术
  • P1896 [SCOI2005] 互不侵犯小总结
  • 美国能源部《生成式人工智能参考指南》解读
  • 分析InfluxDB中读取时CPU飙升
  • win10系统访问smb服务时提示密码错误
  • 《小说课》读书笔记
  • 2025-10-11?
  • 高二停课周记(信息学竞赛) Week1
  • AtCoder Beginner Contest 427 ABCDEF 题目解析