linux - 两台主机之间的隧道 Gre 问题(vps 和专用服务器)
问题描述
大家好,我需要解决这个问题(所有服务器都安装了centos 7):我正在尝试通过vps(在意大利-OpenVZ)和专用服务器(在德国)创建一个gre隧道,但它们内部没有通信( ping 和 ssh 命令测试)。接下来我创建了一个 gre tunnel trought vps(在意大利 - OpenVZ)和 vps(在法国 - KVM OpenStack)并进行通信,接下来我创建了一个隧道 vps(在法国 - KVM OpenStack)和一个专用服务器(在德国) 他们的交流。我不明白为什么 vps(在意大利 - OpenVZ)和专用服务器(在德国)不通信,关于如何修复的想法(我也尝试禁用 iptables,firewalld 未启用)?谢谢
换句话说:
在其他尝试中(我的意思是我成功地在这些机器之间创建了 GRE 隧道):
- VPS(法国)和 VPS(意大利)内部通信(ping 和 ssh 命令测试)
- VPS(法国)和专用服务器(德国)内部通信(ping 和 ssh 命令测试)
问题(我的意思是我无法在这些机器之间成功创建 GRE 隧道):
- VPS(意大利)和专用服务器(德国)不进行内部通信(ping 和 ssh 命令测试)。我还询问托管服务他们是否有任何限制,但没有。
我的配置:
隧道的 VPS 命令:
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
iptunnel add gre1 mode gre local VPS_IP remote DEDICATED_SERVER_IP ttl 255
ip addr add 192.168.168.1/30 dev gre1 ip link set gre1 up
隧道专用服务器命令:
iptunnel add gre1 mode gre local DEDICATED_SERVER_IP remote VPS_IP ttl 255
ip 地址添加 192.168.168.2/30 开发 gre1
ip链接设置gre1
[root@VPS ~]# ping 192.168.168.2 PING 192.168.168.2 (192.168.168.2) 56(84) 个字节的数据。 ^C --- 192.168.168.2 ping 统计 --- 89个包发送,0个接收,100%丢包,时间87999ms
[root@DE ~]# ping 192.168.168.1 PING 192.168.168.1 (192.168.168.1) 56(84) 字节数据。 ^C --- 192.168.168.1 ping 统计 --- 92个包发送,0个接收,100%丢包,时间91001ms
[root@VPS ~]# tcpdump -i venet0 "proto gre" tcpdump:详细输出被抑制,使用 -v 或 -vv 在 venet0 上进行完整协议解码侦听,链接类型 LINUX_SLL(Linux 熟),捕获大小 262144 字节 ^C 0 个数据包被捕获 1 个数据包被过滤器接收 0 个数据包被内核丢弃
[root@DE ~]# tcpdump -i enp2s0 "proto gre" tcpdump:详细输出被抑制,使用 -v 或 -vv 在 enp2s0 上进行完整的协议解码侦听,链接类型 EN10MB(以太网),捕获大小 262144 字节 ^C 0捕获的数据包 过滤器接收的 0 个数据包 内核丢弃的 0 个数据包
[root@VPS ~]# lsmod | grep ip_gre 4242 -2 ip_tunnel 4242 -2 坐,ip_gre gre 4242 -2 ip_gre
[root@DE ~]# lsmod | grep ip_gre 22707 0 ip_tunnel 25163 1 ip_gre gre 13144 1 ip_gre
解决方案
如果隧道工作需要ip_forwarding,你需要做/sbin/sysctl -p
什么ip tunnel show
以及ip route show
两端的和输出是什么
推荐阅读
- mysql - 如何在mysql数据库中存储公交路线的方向?
- javascript - 如何在秒表中添加分钟
- java - Spring Thymeleaf 找不到 js/css
- sql - 如何在 Postgres 中自动创建对 CREATE 的评论?
- vue.js - 无法在 vue 3 组合 API 中的组件上使用模板引用
- postman - 即使通过firebase提供文件,邮递员也没有上传文件
- python - 使用 pandas 找不到 Google Colaboratory 文件
- reactjs - 使用 map() 在 react-native 中处理复选框
- numpy - dask.array.from_array(np.random.random) 和 dask.array.random.random 有什么区别
- javascript - 不能分配超过 1 个获胜者