ubuntu 变为路由器

转自 ubuntu 变为路由器 | 冰糖可乐 (sinchie.com)

原文分为两部分,iptables 来实现nat 转发,使用 dnsmasq 来实现dhcp 和 dns ,我只截取了nat转发部分,推荐阅读原文。

硬件基础

最少拥有两个网口,可插入两根网线。也就是说最少有一个 wan 口,一个 lan 口。

安装系统

安装系统就不多说了,直接下载目前最新的 LTS 版本 ubuntu server 18.04 安装就行了。

配置 wan 口

我的机器目前只有两个物理网卡,一个作为 wan 口,一个作为 lan 口,当然有更多的网口就更好了,配置方法都是一样的。 ubuntu 18.04 和之前的版本的网卡配置有变化,现在配置文件是 /etc/netplan/50-cloud-init.yaml。由于我家的网络不是拨号上网的,插上网线就能分配到 ip 上网,所以我的配置就很简单了,只保留 wan 口作为 dhcp 客户端就行了。

network:
ethernets:
  # wan 口网卡名为 ens18,配置为 dncp 获取 ip 就行了。ip link 命令可以查看自己的网络设备名
  ens18:
    dhcp4: true
version: 2

然后执行 netplan apply 使它生效。

配置 lan 口

路由器一般会有多个 lan 口组成一个交换机。linux 来实现这个功能很简单,配置一个网桥,并把多个 lan 口都加入这个网桥就行了。

# 添加一个名为 br-lan 的网桥设备 
ip link add br-lan type bridge 

# 将所有作为 lan 口的网卡都加入到 br-lan 中 
# 我的 lan 口网卡名为 ens19 有多个 lan 网口就依次执行几次 
ip link set dev ens19 master br-lan 

# 给网桥设置一个 ip 作为路由器的管理 ip 和网关 
ip addr add 10.1.1.1/24 dev br-lan 

# 开启所有 lan 网卡 多个网卡需要依次设置 
ip link set ens19 up 

# 开启网桥 
ip link set br-lan up

上面的每次命令执行后,都可以用 ip addr 和 ip link 来查看修改是否成功。

配置 nat

首先需要先开启系统的转发功能,打开 /etc/sysctl.conf, 在文件的最后加入

net.ipv4.ip_forward=1

执行 sysctl -p 使它生效。然后通过 iptables 来设置 nat。

# 内网去外网的 nat 转发 ens18 是 wan 口网卡名称 
# 因为默认路由是从 ens18 出网,所以可以直接这么设置 
# 路由路径可以使用 route -n 查看 

iptables -t nat -A POSTROUTING -o ens18 -j MASQUERADE

这个时候路由器已经可以使用了,wan 口连接外网,lan 口插入 pc。pc 手动设置一个 10.1.1.0/24 网络内的 ip,并把网关指向 10.1.1.1 就行了。


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注