–2025.6.23二更– 因为隔壁宿舍的个人需要,他们也打算搞一个软路由来实现多用,所以帮了帮忙,在此期间又遇到了好些问题,遂补充一下笔记

知识点

路由转发、DHCP、iptables、校园网

–2025.6.23二更– 因为隔壁宿舍的个人需要,他们也打算搞一个软路由来实现多用,所以帮了帮忙,在此期间又遇到了好些问题,遂补充一下笔记

  • 还要备好若干网线,一条vga线或者hdmi线(有些工控机的显示口是vga的,你得接上屏幕了才能操作,不然你看啥)

知识点

路由转发、DHCP、iptables、校园网

  • 工控机刷一个linux环境(切记切记最好让店家帮你刷好一个干净的系统,否则你自己还得多一个装系统的步骤),这边用到的是Ubuntu22.04

知识点

路由转发、DHCP、iptables、校园网

可以先给工控机通上网络,以便后续的一些软件包的下载: 将前文下载的linux版本的锐捷客户端在工控机中运行,认证成功后方可通网

  • 还要备好若干网线,一条vga线或者hdmi线(有些工控机的显示口是vga的,你得接上屏幕了才能操作,不然你看啥)

知识点:路由转发、DHCP、iptables、校园网

  • 工控机刷一个linux环境(切记切记最好让店家帮你刷好一个干净的系统,否则你自己还得多一个装系统的步骤),这边用到的是Ubuntu22.04 补充: 这边建议给自己的工控机系统装上ssh,然后网络认证成功后,用自己的主机通过ssh连接上工控机后再进行后续的操作,不然敲指令还挺累的

搭建过程:

① 硬件购置

  • 先去闲鱼上购买一个二手的工控机(这里使用的是J1900软路由工控机),要求搭配双网口(千兆最好),内存和硬盘无要求(有个人需求可以让店家帮你升级配置,一般应该可以diy的)
  • 然后再购置一个路由器或者交换机,用于后续的多设备联网(或者搭wifi) 可以先给工控机通上网络,以便后续的一些软件包的下载: 将前文下载的linux版本的锐捷客户端在工控机中运行,认证成功后方可通网
  • 还要备好若干网线,一条vga线(工控机的显示口是vga的,你得接上屏幕了才能操作,不然你看啥)

② 环境准备

  • 工控机刷一个linux环境(可以让店家帮你刷好),这边用到的是Ubuntu22.04 补充: 这边建议给自己的工控机系统装上ssh,然后网络认证成功后,用自己的主机通过ssh连接上工控机后再进行后续的操作,不然敲指令还挺累的

  • 去学校网站下一个linux版本的校园网认证系统(没有linux版本的话可能就寄了),这边用到的是锐捷的linux版本,然后拉到工控机里(用u盘cp或者直接在工控机里拉取都行,直接拉取的前提是有网) 可以先给工控机通上网络,以便后续的一些软件包的下载: 将前文下载的linux版本的锐捷客户端在工控机中运行,认证成功后方可通网

③ 搭建

  1可以先给工控机通上网络,以便后续的一些软件包的下载:
  2将前文下载的linux版本的锐捷客户端在工控机中运行,认证成功后方可通网
  3可以先给工控机通上网络,以便后续的一些软件包的下载:
  4将前文下载的linux版本的锐捷客户端在工控机中运行,认证成功后方可通网
  5可以先给工控机通上网络,以便后续的一些软件包的下载:
  6将前文下载的linux版本的锐捷客户端在工控机中运行,认证成功后方可通网
  7可以先给工控机通上网络,以便后续的一些软件包的下载:
  8将前文下载的linux版本的锐捷客户端在工控机中运行,认证成功后方可通网
  9
 10
 11```bash
 12+ 建议先修改一下系统的apt源,方便后续的工具下载,推荐aliyun源:
 13
 14```bash
 15sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
 16sudo vim /etc/apt/sources.list
 17```bash
 18#写入以下内容
 19deb https://mirrors.aliyun.com/ubuntu focal main restricted
 20deb https://mirrors.aliyun.com/ubuntu focal-updates main restricted
 21deb https://mirrors.aliyun.com/ubuntu focal universe
 22deb https://mirrors.aliyun.com/ubuntu focal-updates universe
 23deb https://mirrors.aliyun.com/ubuntu focal multiverse
 24deb https://mirrors.aliyun.com/ubuntu focal-updates multiverse
 25```bash
 26deb https://mirrors.aliyun.com/ubuntu focal-security main restricted
 27deb https://mirrors.aliyun.com/ubuntu focal-security universe
 28```bash
 29
 30#保存后,执行下面指令
 31+ 配置网卡地址,将lan口(eth1)设置为静态ip(这里必须要注意,你得确认好你工控机是哪个网卡是lan哪个网卡是wan,根据自己的情况去调整,wan口对应的网卡在运行锐捷认证成功后会被直接分配ip,所以没ip的那个就是lan口)
 32```bash
 33```bash
 34# 修改/etc/netplan/中的yaml文件(每个人的可能会有不同)
 35
 36# 参考如下(要注意空格 缩进等)
 37
 38```sh
 39sudo apt install net-tools
 40
 41#然后就可以查看网卡信息
 42ifconfig -a
 43```bash
 44
 45      addresses: #ip地址要跟wan口在不同网段,比如wan口的网段为192.168.200.xxx的话,lan口就得换成别的
 46
 47+ (非必要)修改网卡名为eth0,eth1(每个人的网卡名不同):
 48+ 配置网卡地址,将lan口(eth1)设置为静态ip(这里必须要注意,你得确认好你工控机是哪个网卡是lan哪个网卡是wan,根据自己的情况去调整,wan口对应的网卡在运行锐捷认证成功后会被直接分配ip,所以没ip的那个就是lan口)
 49```sh
 50# 保存后执行
 51# 修改/etc/netplan/中的yaml文件(每个人的可能会有不同)
 52#找到GRUB_CMDLINE_LINUX=""改为
 53# 执行后,通过ifconfig查看eth1网卡应该会显示有对应的ip地址,与上面设置的为同一个,如果没有,可能是配置文件中的一些细节没写好(缩进,空格等)
 54# 如果是缩进没有问题的话,就看看是不是lan口没有接网线,拿网线跟你的机子或者路由器接上看看有没有分配到ip
 55# 如果还是没有分配到ip,看看是不是有些服务器没有成功启动,比如说systemd-networkd这个服务
 56
 57#保存后执行
 58sudo grub-mkconfig -o /boot/grub/grub.cfg
 59
 60```bash
 61sudo vim /etc/netplan/00-installer-config.yaml
 62```bash
 63#将对应的网卡名改为eth0和eth1,后续把0做wan口,1做lan口
 64      addresses: #ip地址要跟wan口在不同网段,比如wan口的网段为192.168.200.xxx的话,lan口就得换成别的
 65#保存后,重启工控机
 66sudo reboot now
 67```bash
 68
 69# 保存后执行
 70
 71+ 配置网卡地址,将lan口(eth1)设置为静态ip
 72# 执行后,通过ifconfig查看eth1网卡应该会显示有对应的ip地址,与上面设置的为同一个,如果没有,可能是配置文件中的一些细节没写好(缩进,空格等)
 73# 如果是缩进没有问题的话,就看看是不是lan口没有接网线,拿网线跟你的机子或者路由器接上看看有没有分配到ip
 74# 如果还是没有分配到ip,看看是不是有些服务器没有成功启动,比如说systemd-networkd这个服务
 75```sh
 76#修改/etc/netplan/中的yaml文件(每个人的可能会有不同)
 77
 78#参考如下(要注意空格 缩进等)
 79# This is the network config written by 'subiquity'
 80network:
 81```bash
 82    eth0:
 83      dhcp4: yes
 84    eth1:
 85      dhcp4: no
 86      optional: true
 87      addresses: #ip地址要跟wan口在不同网段
 88        - 192.168.99.1/24
 89```bash
 90  renderer: networkd
 91  
 92#保存后执行
 93sudo netplan apply
 94
 95#*执行后,通过ifconfig查看eth1网卡应该会显示有对应的ip地址,与上面设置的为同一个,如果没有,可能是配置文件中的一些细节没写好(缩进,空格等)
 96```bash
 97
 98```bash
 99
100```bash
101
102```sh
103#安装isc-dhcp-server
104sudo apt-get install isc-dhcp-server
105
106#修改配置文件/etc/default/isc-dhcp-server(如果需要用到ipv6,也可以将interfacesv6一并配置)
107INTERFACESv4=""
108	↓↓↓↓↓
109INTERFACESv4="eth1"
110
111
112#修改/etc/dhcp/dhcpd.conf
113option domain-name-servers ns1.example.org, ns2.example.org;
114	↓↓↓↓↓
115option domain-name-servers 8.8.8.8,114.114.114.114;
116
117#在末尾增加以下内容
118subnet 192.168.99.0 netmask 255.255.255.0 {
119```bash
120  option domain-name-servers 192.168.99.1;
121  option subnet-mask 255.255.255.0;
122  option broadcast-address 192.168.99.255;
123  option routers 192.168.99.1;
124}
125
126#如果想要永久开启ip转发,则需要修改以下内容:
127sudo vim /etc/sysctl.conf
128
129# 找到下面这行 去掉注释 改为1 然后保存
130net.ipv4.ip_forward = 1
131
132
133# 转发规则,根据你自己的wan口和lan口的网卡情况调整
134
135#修改/etc/dhcp/dhcpd6.conf(没有ipv6需要可不配置)
136#在末尾添加以下内容
137subnet6 2001:db8:0:1::/64 {
138        # Range for clients
139        range6 2001:db8:0:1::129 2001:db8:0:1::254;
140
141        # Range for clients requesting a temporary address
142        range6 2001:db8:0:1::/64 temporary;
143
144        # Additional options
145        option dhcp6.name-servers fec0:0:0:1::1;
146        option dhcp6.domain-search "domain.example";
147```bash
148        # Prefix range for delegation to sub-routers
149        prefix6 2001:db8:0:100:: 2001:db8:0:f00:: /56;
150
151        # Example for a fixed host address
152```bash
153
154#如果想要永久开启ip转发,则需要修改以下内容:
155sudo vim /etc/sysctl.conf
156
157# 找到下面这行 去掉注释 改为1 然后保存
158net.ipv4.ip_forward = 1
159
160
161# 转发规则,根据你自己的wan口和lan口的网卡情况调整
162                host-identifier option dhcp6.client-id 00:01:00:01:4a:1f:ba:e3:60:b9:1f:01:23:45;
163                fixed-address6 2001:db8:0:1::127;
164```bash
165}  
166
167
168#重启dhcp server
169sudo systemctl restart isc-dhcp-server
170sudo systemctl status isc-dhcp-server
171```bash
172
173
174
175+ 开启linux内核的路由转发功能
176可能遇到的问题都暂时写在正文里了
177```sh
178#开启root用户
179su -
180```bash
181#把eth1网卡的数据包通过nat转发到eth0,根据自己的需要修改相应的网卡
182echo "1" > /proc/sys/net/ipv4/ip_forward
183iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
184iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
185iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
186
187#保存iptables规则
188```bash
189sudo iptables-save > /etc/iptables/rules.v4
190
191#安装iptables-persistent软件包,安装过程会询问是否将当前iptables规则保存到文件中,选择y,继续安装
192sudo apt-get install iptables-persistent
193
194#安装完成后,iptables-persistent就会自动加载保存的iptables规则文件,重启后也会自动加载
195```bash
196
197```bash
198
199+ 配置dns
200
201
202#停用系统自带的dns
203sudo systemctl disable systemd-resolved
204sudo systemctl stop systemd-resolved
205
206#删除符号链接的resolv.conf文件
207sudo rm /etc/resolv.conf
208echo "nameserver 8.8.8.8" > /etc/resolv.conf
209
210#安装dnsmasq
211sudo apt-get install dnsmasq
212sudo systemctl restart isc-dhcp-server
213
214#完成上述流程后,正常情况下客户机电脑可以通过eth1自动获取ip和dns
  • 通过lan口(eth1)连接客户机(自己的电脑),此时应该可以顺利接通网络

④可能会遇到的问题

在配置过程中,实际遇到的问题还是有点多的,但我忘记了,想到了回来补)