首先确认内核支持并加载GRE模块,然后在两台主机上创建GRE隧道接口并配置IP地址,接着启用接口并验证连通性,最后根据需要配置静态路由实现子网互通,确保两端参数匹配且防火墙允许协议47。

Linux中的IP隧道(IP Tunneling)可用于在不同网络之间封装和传输数据包,常用于跨网络连接、IPv6过渡或构建虚拟专用网络。最常用的隧道类型是GRE、IPIP、SIT和VXLAN。以下以GRE隧道为例,说明如何在两台Linux主机之间建立和配置IP隧道。
1. 确认内核支持并加载模块
大多数现代Linux发行版默认支持IP隧道。可检查是否加载了相关内核模块:
modprobe ip_gre # 加载GRE模块
lsmod | grep gre # 确认模块已加载
如果使用IPIP或SIT(用于IPv6),则加载对应模块:
modprobe ipip
modprobe sit
2. 创建GRE隧道接口
在两端主机上分别创建GRE隧道。假设:
主机A公网IP:192.168.1.10主机B公网IP:192.168.1.20隧道内网IP:A端 10.0.0.1/30,B端 10.0.0.2/30
在主机A上执行:
ip tunnel add gre1 mode gre local 192.168.1.10 remote 192.168.1.20 ttl 255
ip addr add 10.0.0.1/30 dev gre1
ip link set gre1 up
在主机B上执行:
ip tunnel add gre1 mode gre local 192.168.1.20 remote 192.168.1.10 ttl 255
ip addr add 10.0.0.2/30 dev gre1
ip link set gre1 up
3. 验证隧道连通性
启用后,可在任一端ping对端隧道IP:
有道小P
有道小P,新一代AI全科学习助手,在学习中遇到任何问题都可以问我。
64 查看详情
ping 10.0.0.2 # 从主机A测试
查看隧道状态:
ip tunnel show gre1
ip addr show gre1
确认输出中状态为“UP”,且封装模式正确。
4. 配置路由(可选)
若想通过隧道访问远程子网,需添加静态路由。例如,主机B后端有子网172.16.2.0/24:
# 在主机A添加路由
ip route add 172.16.2.0/24 via 10.0.0.2
确保主机B也配置了返回路由:
ip route add 172.16.1.0/24 via 10.0.0.1 # 假设A后端是此网段
隧道建立后,数据包将通过GRE封装在公网上传输,实现逻辑直连。关闭隧道可使用:
ip link set gre1 down
ip tunnel del gre1
基本上就这些。根据需求选择IPIP(精简,仅IPv4)、SIT(IPv6 over IPv4)或VXLAN(大规模虚拟化)等类型,操作方式类似。关键是两端参数匹配,且防火墙允许协议47(GRE)或对应端口。
以上就是如何在Linux中隧道配置 Linux ip tunnel隧道建立的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/436356.html
微信扫一扫
支付宝扫一扫