两台linux服务器上建立ip隧道
服务器server的地址192.168.18.251,服务器client的地址192.168.18.252。
建立隧道
在服务器server上执行以下命令:
- ip tunnel add ethn mode ipip local 192.168.18.251 remote 192.168.18.252
其中,ip tunnel为隧道操作,add ethn为添加隧道(ethn为隧道的虚拟网卡名,可自定义)
mode ipip设置隧道的模式为ipip。除ipip,还有很多其他模式,如gre/sit等等,以ipip和gre最为常见。
local指定本机的地址,remote指定对方的地址。
同样,在服务器client上执行以下命令:
- ip tunnel add ethm mode ipip local 192.168.18.252 remote 192.168.18.251
ethm为隧道的虚拟网卡名,可自定义。
至此,ip隧道已经建立起来了。
隧道地址
但是要想实现server和client通过ip隧道通信,还需要给server和client的隧道对应的网卡设置一个ip。
在服务器server上执行以下命令:
- ifconfig ethn 1.1.1.1
在服务器client上执行以下命令:
- ifconfig ethm 2.2.2.2
这里server和client的隧道网卡的ip可以随便设定。
可以在server和client上分别ifconfig看看,是不是多了ethn/ethm这个网卡。
添加路由
最后一步,设置一下路由规则。
在服务器server上执行以下命令:
- route add -host 2.2.2.2 dev ethn
让目的ip为2.2.2.2的数据包走ethn这个网卡。
在服务器client上执行以下命令:
- route add -host 1.1.1.1 dev ethm
让目的ip为1.1.1.1的数据包走ethm这个网卡。
测试隧道
在服务器server上执行以下命令:
- ping 2.2.2.2
在服务器client上执行以下命令:
- ping 1.1.1.1
如果可以ping通,说明ip隧道已经成功建立了。
效果下图所示:
转载自:https://birdteam.net/2017/11/build-ip-tunnel-on-two-linux-servers.html
好记性不如烂笔头,最难不过坚持