在现代网络架构中,GRE隧道(Generic Routing Encapsulation)是一种常见的IP隧道技术,用于在两个网络之间封装并传输数据包。尤其在Linux网络配置中,GRE被广泛用于构建跨地域的虚拟专用网络(VPN)、负载均衡、网络隔离等场景。
本教程将从零开始,用通俗易懂的语言,带你了解什么是GRE协议,并在Linux系统上亲手搭建一个简单的GRE隧道。即使你是网络小白,也能轻松上手!
GRE(Generic Routing Encapsulation)是一种由Cisco开发的隧道协议,现已成为IETF标准(RFC 2784)。它的核心思想是:将一种网络协议的数据包“包裹”在另一种协议的数据包中进行传输。例如,你可以把IPv4数据包封装在另一个IPv4数据包里,穿越中间不支持原始协议的网络。
这种技术常用于实现网络虚拟化,比如连接两个私有子网,即使它们位于不同的物理位置或云服务商之间。
假设你有两个服务器A和B,分别位于不同城市,IP地址为:
你想让192.168.1.0/24 和 192.168.2.0/24 这两个私有网络互通。这时就可以在A和B之间建立GRE隧道,创建一个虚拟接口(如 gre1),并通过这个接口路由私网流量。
以下操作需在两台Linux服务器上分别执行(以Ubuntu/CentOS为例)。
sudo modprobe ip_gre
大多数现代Linux发行版默认已加载该模块,但建议手动确认。
在服务器A上执行:
sudo ip tunnel add gre1 mode gre remote 198.51.100.20 local 203.0.113.10 ttl 255sudo ip link set gre1 upsudo ip addr add 10.0.0.1/30 dev gre1
在服务器B上执行:
sudo ip tunnel add gre1 mode gre remote 203.0.113.10 local 198.51.100.20 ttl 255sudo ip link set gre1 upsudo ip addr add 10.0.0.2/30 dev gre1
说明:
mode gre:指定使用GRE协议remote 和 local:分别指定对端和本机的公网IP10.0.0.1/30 和 10.0.0.2/30:为隧道两端分配点对点IP地址为了让192.168.1.0/24能访问192.168.2.0/24,在服务器A上添加路由:
sudo ip route add 192.168.2.0/24 via 10.0.0.2 dev gre1
在服务器B上添加:
sudo ip route add 192.168.1.0/24 via 10.0.0.1 dev gre1
在服务器A上执行:
ping 192.168.2.1
如果看到回复,说明GRE隧道已成功建立!
通过本教程,你已经掌握了在Linux系统中配置GRE隧道的基本方法。这项技术是实现IP隧道协议应用的重要手段,也是构建灵活、可扩展网络架构的基础。无论是用于数据中心互联、混合云部署,还是实验环境搭建,GRE都是一种简单高效的解决方案。
记住四个关键词:GRE隧道、Linux网络配置、IP隧道协议、网络虚拟化——它们是你深入学习网络工程的关键入口!
本文由主机测评网于2025-11-24发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511524.html