以下是在Ubuntu上搭建一个基本的内网路由器的完整步骤:
- 安装必要的软件:
sudo apt update
sudo apt install dnsmasq iptables-persistent
安装过程中,你将被要求配置iptables-persistent
,选择保存当前的iptables规则。
- 配置网络接口:
编辑网络配置文件:
sudo nano /etc/netplan/01-netcfg.yaml
然后,在配置文件中添加以下内容,假设eth0
连接到Internet,eth1
连接到内部网络:
network:
version: 2
renderer: networkd
ethernets:
eth0: # 连接到互联网的接口
dhcp4: yes
eth1: # 内部网络的接口
dhcp4: no
addresses: [192.168.1.1/24]
保存并关闭文件。
应用配置:
sudo netplan apply
- 启用IP转发:
编辑sysctl配置文件:
sudo nano /etc/sysctl.conf
确保以下行没有被注释(没有前面的 #
符号):
net.ipv4.ip_forward=1
保存文件并退出。
应用更改:
sudo sysctl -p /etc/sysctl.conf
- 配置DHCP服务器(dnsmasq):
备份原始配置文件:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
创建新的配置文件:
sudo nano /etc/dnsmasq.conf
在文件中添加以下内容:
interface=eth1
dhcp-range=192.168.2.50,192.168.2.150,12h
dhcp-option=3,192.168.2.1
这将配置eth1
接口作为DHCP服务器,分配的IP地址范围为 192.168.2.50
到 192.168.2.150
,默认网关为 192.168.2.1
。
保存并关闭文件。
- 设置NAT转发:
使用iptables设置NAT转发,eth0
外部网络接口,允许内部网络的流量访问外部网络:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- 保存iptables规则:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
- 重启服务:
sudo systemctl restart dnsmasq
sudo systemctl restart systemd-networkd
现在你已经搭建了一个基本的内网路由器。确保连接到内部网络的设备能够成功获取IP地址,并能够访问互联网。