searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

将Ubuntu配置为路由器

2024-09-29 09:55:05
21
0

what are you 弄啥呢

一直想搞一个家庭NAS,用来存点资料图片啥的;但有不太想去买个成品NAS。一方面,之前有个同事买了一个成品NAS,便宜的那种,1个T几百块,但是没有服务(内网穿透等),每次下载100K速率,滴滴沥沥,像前列腺炎最晚期;另一方面,像群辉这种,还是有点小贵,而且封闭系统,玩点不多,不值当。

于是乎,花了450在某鱼上买了一个工控机,j4125 4核2.0HZ,8G内存,128G SSD。大概长这样:
image.png

设备装的爱快系统,当个路由器。爱快系统支持虚拟机,所以在配置了一个虚拟机跑了一个开源网盘服务、gitea、一个blog系统。基本上也就这点追求了。
但是,这个系统不稳定,动辄就是卡死。简单排查了一下,疑似磁盘访问有问题,经常出现进程访问磁盘无法返回(处于D状态卡死)。怀疑是系统对磁盘存在兼容性问题(毕竟是一个路由器系统),或者磁盘本身品质不够好(坏块多)。who knows, 毕竟也是淘的二手的......

死马当活马医吧。 搞了个U盘,烧了centos7 镜像,重刷系统,一气呵成。没想到,系统启动后网络一直无法驱动! 一查,才发现设备是i226-v的网卡,centos7没有驱动。

度娘问了半天,找到intel官网,说有一个驱动集合包括i226-v的驱动;下载半天,解开发现确实有i226-v的驱动,windows的......

郁闷之际,想起一句老话:内事不决问百度,外事不决问谷歌,房事不决问天涯......

赶紧结印,召唤科学上网。一通搜索后找到有支持该驱动的开源操作系统:

image.png

虽然是个ubuntu桌面版(22.04.2, 计划是装个服务版,服务版也没有驱动),也不挑剔,能用才是王者。下载,制作启动盘,安装... 遇到启动镜像无法加载,配置ultraIso制作是选择raw方式写入,正常安装。
重启后,网络正常...

bingo,起死回生!

配置路由

网络规划

设备有4个独立的2.5G 网络接口,设计enp1 为WAN口,并配置一个网桥br0,将enp2 enp3 enp4 加入网桥,做成本地局域网。

ubuntu22.04 支持NetworkManager 和systemd-networkd两种网络管理方式。其中NetworkManager主要是用于图形化的网络配置管理。我这里选用了systemd-networkd作为网络管理服务(相对更轻量)。

修改 /etc/netplan/01-network-manager-all.yaml
添加如下内容:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: yes
    enp2s0:
      dhcp4: false
      dhcp6: false
    enp3s0:
      dhcp4: false
      dhcp6: false
    enp4s0:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [enp2s0,enp3s0,enp4s0]
      dhcp4: no
      addresses: [10.10.10.1/24]
      parameters:
        stp: false

配置完成后,调用 netplan apply 使配置生效,可以看到enp1 获取到IP地址,并且br0 也配置完成:

image.png

安装dnsmasq

配置本地局域网,需要为局域网提供DHCP和DNS解析,这里简单用dnsmasq就OK了。
卸载dnsmasq-base 版本,安装dnsmasq,编辑 /etc/dnsmasq.conf 添加监听的接口br0,dhcp网段 为10.10.10.100-10.10.10.235
image.png

image.png

保存后,启动dnsmasq服务。

注意​:这里可能会报错,原因是之前systemd-resolve服务会监听53端口,导致端口冲突。stop 、disable systemd-resolve服务,手动创建 /etc/resove.conf 文件,并填写解析dns地址(如 nameserver 114.114.114.114)重启dnsmasq。

启动完成后,PC介入设备的LAN口侧可以分配到10网段的地址,并且能够与设备互通

配置路由转发

首先,要启用协议栈转发功能: 编辑/etc/sysctl.conf 将IPV4 和IPV6 的forward 功能使能:
image.png

执行 sysctl -p 使配置生效

然后,配置SNAT,以支持地址映射:

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o br0 -j MASQUERADE

配置完成后,局域网PC 可以接入设备并能够访问外部网络...

最后,持久化iptables配置:

sudo netfilter-persistent save

验证

重启设备,确认网络链接正常、网桥配置正常、域名解析正常, 局域网PC可以正常接入,获取IP地址,并且能够正常上网。

what are you prepare to do?

接下来就随心所欲了:

  • 搭建网盘服务
  • 搭建代码服务
  • 搭建个人博客服务
  • 搭建全局代理
  • 搭建内网穿透
  • 搭建资源服务
  • things as your wish

Ending enjoy!

0条评论
0 / 1000
huskar
18文章数
2粉丝数
huskar
18 文章 | 2 粉丝
原创

将Ubuntu配置为路由器

2024-09-29 09:55:05
21
0

what are you 弄啥呢

一直想搞一个家庭NAS,用来存点资料图片啥的;但有不太想去买个成品NAS。一方面,之前有个同事买了一个成品NAS,便宜的那种,1个T几百块,但是没有服务(内网穿透等),每次下载100K速率,滴滴沥沥,像前列腺炎最晚期;另一方面,像群辉这种,还是有点小贵,而且封闭系统,玩点不多,不值当。

于是乎,花了450在某鱼上买了一个工控机,j4125 4核2.0HZ,8G内存,128G SSD。大概长这样:
image.png

设备装的爱快系统,当个路由器。爱快系统支持虚拟机,所以在配置了一个虚拟机跑了一个开源网盘服务、gitea、一个blog系统。基本上也就这点追求了。
但是,这个系统不稳定,动辄就是卡死。简单排查了一下,疑似磁盘访问有问题,经常出现进程访问磁盘无法返回(处于D状态卡死)。怀疑是系统对磁盘存在兼容性问题(毕竟是一个路由器系统),或者磁盘本身品质不够好(坏块多)。who knows, 毕竟也是淘的二手的......

死马当活马医吧。 搞了个U盘,烧了centos7 镜像,重刷系统,一气呵成。没想到,系统启动后网络一直无法驱动! 一查,才发现设备是i226-v的网卡,centos7没有驱动。

度娘问了半天,找到intel官网,说有一个驱动集合包括i226-v的驱动;下载半天,解开发现确实有i226-v的驱动,windows的......

郁闷之际,想起一句老话:内事不决问百度,外事不决问谷歌,房事不决问天涯......

赶紧结印,召唤科学上网。一通搜索后找到有支持该驱动的开源操作系统:

image.png

虽然是个ubuntu桌面版(22.04.2, 计划是装个服务版,服务版也没有驱动),也不挑剔,能用才是王者。下载,制作启动盘,安装... 遇到启动镜像无法加载,配置ultraIso制作是选择raw方式写入,正常安装。
重启后,网络正常...

bingo,起死回生!

配置路由

网络规划

设备有4个独立的2.5G 网络接口,设计enp1 为WAN口,并配置一个网桥br0,将enp2 enp3 enp4 加入网桥,做成本地局域网。

ubuntu22.04 支持NetworkManager 和systemd-networkd两种网络管理方式。其中NetworkManager主要是用于图形化的网络配置管理。我这里选用了systemd-networkd作为网络管理服务(相对更轻量)。

修改 /etc/netplan/01-network-manager-all.yaml
添加如下内容:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: yes
    enp2s0:
      dhcp4: false
      dhcp6: false
    enp3s0:
      dhcp4: false
      dhcp6: false
    enp4s0:
      dhcp4: false
      dhcp6: false
  bridges:
    br0:
      interfaces: [enp2s0,enp3s0,enp4s0]
      dhcp4: no
      addresses: [10.10.10.1/24]
      parameters:
        stp: false

配置完成后,调用 netplan apply 使配置生效,可以看到enp1 获取到IP地址,并且br0 也配置完成:

image.png

安装dnsmasq

配置本地局域网,需要为局域网提供DHCP和DNS解析,这里简单用dnsmasq就OK了。
卸载dnsmasq-base 版本,安装dnsmasq,编辑 /etc/dnsmasq.conf 添加监听的接口br0,dhcp网段 为10.10.10.100-10.10.10.235
image.png

image.png

保存后,启动dnsmasq服务。

注意​:这里可能会报错,原因是之前systemd-resolve服务会监听53端口,导致端口冲突。stop 、disable systemd-resolve服务,手动创建 /etc/resove.conf 文件,并填写解析dns地址(如 nameserver 114.114.114.114)重启dnsmasq。

启动完成后,PC介入设备的LAN口侧可以分配到10网段的地址,并且能够与设备互通

配置路由转发

首先,要启用协议栈转发功能: 编辑/etc/sysctl.conf 将IPV4 和IPV6 的forward 功能使能:
image.png

执行 sysctl -p 使配置生效

然后,配置SNAT,以支持地址映射:

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o br0 -j MASQUERADE

配置完成后,局域网PC 可以接入设备并能够访问外部网络...

最后,持久化iptables配置:

sudo netfilter-persistent save

验证

重启设备,确认网络链接正常、网桥配置正常、域名解析正常, 局域网PC可以正常接入,获取IP地址,并且能够正常上网。

what are you prepare to do?

接下来就随心所欲了:

  • 搭建网盘服务
  • 搭建代码服务
  • 搭建个人博客服务
  • 搭建全局代理
  • 搭建内网穿透
  • 搭建资源服务
  • things as your wish

Ending enjoy!

文章来自个人专栏
后台开发技术分享
18 文章 | 4 订阅
0条评论
0 / 1000
请输入你的评论
1
0