三步搭建ubuntu下Linux路由器

三步搭建ubuntu下Linux路由器

环境:eno1 —ip 10.0.0.1 enp1s0—192.168.1.2 ,目标是 192网段可以通过10网段转发。

第一步:打开ip转发功能,开启路由功能。
编辑/etc/network/interfaces文件,将net.ipv4.ip_forward=1前面的#注释去掉,并确保值为1。确认结果可以查看cat /proc/sys/net/ipv4/ip_forward,返回值为1即可。

以下步骤 切记使用 sudo,否则提升没有权限或者没有安装iptables。同时,前提是电脑已经安装iptables,一般ubuntu 都自带该软件。

第二步:设置NAT功能。
Sudo iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE (自动获取eno1地址),此方法适用eno1地址不固定,但每次包转换都要有获取动作,影响效率。若果地址固定,则直接使用SNAT,效率较高。
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eno1 -j SNAT –to-source 10.0.0.1
切记加上-o 字段,否则部分机器无法确定转发网卡,导致ip不通,我的就是这样,最后加上-o,完美解决。

第三步:设置转发规则
sudo iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT


通过以上3步骤已经实现了路由转发功能,也就是实现了192.168.1.0下的所有电脑ping 通10.0.0.0的网段,NAT成10.0.0.1,实现10网段的权限。当然路由器的路由功能是通过route表实现的,这里不再叙述,具体可百度 route。

最后,需要保存iptables,即保存第2、3步命令,并实现关机后自动加载,否则每次关机后规则消失,需重设。自动加载完美解决。
切记:以下命令需要切换使用root用户登录,即su 至root用户后执行,少走弯路。
1、 保存规则到制定文件
Iptables-save > /etc/iptables.rules
2、 自动加载
在/etc/network/interfaces文件末尾添加:
pre-up iptables-restore < /etc/iptables.rules

以上实践花费个人2个小时,加上ip route rules table等基础理论学习,断断续续半个月。

参考来源:
https://blog.csdn.net/u012174021/article/details/45369457
https://blog.csdn.net/Yan_Chou/article/details/70305735

你可能感兴趣的:(linux)