银河麒麟上配置GRE隧道需四步:启用IP转发并加载ip_gre模块;用iptunnel或ip tunnel创建并启用gre接口;配置隧道IP与MTU;添加静态路由后分步ping测隧道及内网连通性。

在银河麒麟操作系统上配置GRE隧道,可让两台位于不同公网环境下的麒麟主机建立虚拟直连链路,使各自内网段互通,无需依赖专线或云厂商VPC对等连接服务。
启用内核转发与加载GRE模块
执行 sudo nano /etc/sysctl.d/gre.conf,写入 net.ipv4.ip_forward=1 并保存;运行 sudo sysctl -p /etc/sysctl.d/gre.conf 生效。
加载GRE内核模块:sudo modprobe ip_gre。若提示“Module not found”,需确认系统已安装对应内核头文件(如 linux-headers-$(uname -r))并重试。
验证模块是否就绪:lsmod | grep ip_gre。输出含 ip_gre 行即成功;【未加载该模块会导致后续隧道创建失败且无明确报错】。
创建并激活GRE隧道接口
方法一:使用 iptunnel 命令(兼容性高,推荐初用)
执行:sudo iptunnel add gre0 mode gre remote 203.208.192.55 local 192.168.10.100 ttl 64,其中 remote 是对端公网IP,local 是本机用于发包的网卡IP(非内网IP)。
启用该隧道:sudo ip link set gre0 up。这一步必须在添加后立即执行,否则接口处于DOWN状态无法配置地址。
方法二:使用 ip tunnel(较新内核默认支持)sudo ip tunnel add gre1 mode gre remote 203.208.192.55 local 192.168.10.100 ttl 64sudo ip link set gre1 up
配置隧道IP地址与MTU
为隧道接口分配独立网段的点对点地址,例如:sudo ip addr add 172.16.100.1/30 peer 172.16.100.2/30 dev gre0。
设置合理MTU避免分片:sudo ip link set gre0 mtu 1476。这个值是经验安全值,若对端也设为1476,可规避大多数路径MTU发现(PMTUD)失效导致的传输中断问题。
注意:隧道地址不能与任一物理网卡所在子网重叠,否则路由冲突会导致内网失联。
添加隧道路由并测试连通性
第一步:添加静态路由,将对端内网网段指向隧道接口
假设对端内网是 10.20.30.0/24,执行:sudo ip route add 10.20.30.0/24 via 172.16.100.2 dev gre0。
第二步:添加本端内网路由(仅当本端内网不直连该主机时需要)
例如本机内网网关为 192.168.10.1,则加:sudo ip route add 192.168.10.0/24 via 192.168.10.1,确保回程路径正确。
第三步:测试隧道层连通性
执行:ping -c 4 172.16.100.2。能通说明GRE隧道已建立;不通请检查防火墙是否放行协议47(GRE)、两端公网IP是否可达、ip_forward 是否生效。
第四步:测试业务层互通
从本机 ping 对端内网某台主机,如 ping 10.20.30.10。若失败但第三步成功,大概率是路由缺失或对端未配回程路由。

















