在Linux环境下配置路由器主要涉及网络接口配置、路由表管理、NAT设置、防火墙规则等操作,以下为具体步骤和相关扩展知识:
1. 网络接口配置
使用`ip`或`ifconfig`命令配置接口IP地址和状态:
bash
启用网卡并设置IP(示例为eth0)
sudo ip addr add 192.168.1.1/24 dev eth0
sudo ip link set eth0 up
传统ifconfig方式(部分系统需安装net-tools)
sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
扩展:
现代Linux推荐使用`iproute2`工具集(如`ip addr`、`ip link`),取代过时的`ifconfig`和`route`。
持久化配置需修改`/etc/network/interfaces`(Debian系)或`/etc/sysconfig/network-scripts/ifcfg-eth0`(RHEL系)。
2. 路由表管理
添加静态路由或默认网关:
bash
添加默认网关(指向上级路由)
sudo ip route add default via 192.168.1.254 dev eth0
添加静态路由(目标子网通过特定网关)
sudo ip route add 10.0.0.0/24 via 192.168.1.2 dev eth0
扩展:
查看路由表:`ip route show`或`route -n`。
启用IP转发需修改内核参数:`echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward`,永久生效需在`/etc/sysctl.conf`中设置`net.ipv4.ip_forward=1`。
3. NAT配置(共享上网)
使用`iptables`或`nftables`实现源地址转换(SNAT):
bash
启用MASQUERADE(动态IP适用)
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
指定静态IP的SNAT
sudo iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 203.0.113.1
扩展:
`eth0`通常为内网接口,`eth1`为外网接口。
若要持久化规则,安装`iptables-persistent`(Debian)或保存到`/etc/sysconfig/iptables`(RHEL)。
4. DNS与DHCP服务
为客户端分配IP和DNS(可选):
bash
安装dhcpd(如ISC DHCP服务器)
sudo apt install isc-dhcp-server # Debian
sudo yum install dhcp # RHEL
配置文件示例(/etc/dhcp/dhcpd.conf):
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
}
5. 防火墙规则
限制流量或开放端口:
bash
允许SSH访问(示例)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -P INPUT DROP # 设置默认拒绝策略
允许内网访问外网
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
扩展:
复杂规则建议使用`nftables`(新一代替代工具)。
可结合`ufw`简化配置:`sudo ufw allow from 192.168.1.0/24`。
6. 调试与监控
常见故障排查命令:
bash
检查接口状态
ip addr show
测试连通性
ping -c 4 8.8.8.8
traceroute 8.8.8.8
监控流量
nload eth0 # 实时带宽
iftop # 按连接排序流量
7. 进阶配置
VPN集成:使用`openvpn`或`wireguard`实现远程访问。
QoS策略:通过`tc`(Traffic Control)限制带宽,例如:
bash
tc qdisc add dev eth0 root handle 1: htb default 10
tc class add dev eth0 parent 1: classid 1:10 htb rate 10mbps
通过以上步骤,Linux系统可充当功能完整的路由器。实际部署时需根据网络拓扑调整参数,并注意安全性(如关闭不必要的服务、更新系统)。