linux跨网段实现内网互通_docker跨主机通信
大家好,又见面了,我是你们的朋友全栈君。
1.简介
TCP协议规定只有处于同一个网段的IP才能实现互通,如果处于不同网段,则需要借助于所属的网关,即我们可以配置一台双网卡机器作为网关,然后指定路由线路实现跨网段访问。
实现思路:将双网卡服务器作为一个代理服务器,实现双向网关的一个功能 如上图所示,Proxy作为双向网关 Client如果要实现Server的互通,如果Client和Server在同一个子网段可以直接ping同,但是如果不在同一个网段,Client就会先去找其网关,再由其网关寻找Server,对于Server也是这样。 2.实现方案 2.1 代理 1.开启数据包的转发功能
代理服务器打开终端执行如下命令
echo 1 >/proc/sys/net/ipv4/ip_forward
默认值0是禁止数据包转发,修改为1即开启数据包转发功能。如果提示无权限,可以使用vi或者gedit工具打开ip_forward文件直接修改。
2.2 设置路由表 用到的几个命令如下所示
新增静态路由sudo route add -net ip dev 网卡 删除静态路由sudo route del-net ip dev 网卡
具体配置方法:
代理服务器中新增发往Server端的路由表
sudo route add -net 10.168.9.0 netmask 255.255.255.0 dev eth1
这条路由表的含义就是发往10.168.9.0/24网段的数据包都由eth1网卡发出
代理服务器中新增发往Client端的路由表
sudo route add -net 192.168.1.0/24 netmask 255.255.255.0 dev eth0
这条路由表的含义就是发往192.168.1.0/24网段的数据包都由eth0网卡发出
Client服务器中设置网关为192.168.1.1
sudo route add default gw 192.168.1.1
设置之后就表示当Client端连接其他网段(非Client子网)时,就会找到192.168.1.1,进而使用192.168.1.1进行连接
注意:
网关只能设置为同一网段的其他IP; 如果只是设置了网关但是没有在代理服务器中指定路由表(即步骤1,2),则Client端可以ping通代理上面的两张网卡,但是不能ping通10.168.1.xx的其他子网,即不能ping通Server端
Server端设置网关为10.168.9.1
sudo route add defaultgw 10.168.9.1
以上步骤执行之后则可以互相ping通
3 永久配置方案 上面的步骤只能在终端中有效,平时测试没有问题,但是如果是工程实际应用中则需要进行永久配置
代理服务器需首先配置允许转发
sudo vim /etc/sysctl.conf
net.ipv4.ip_forward=1
代理服务器配置静态路由
# vi /etc/rc.local
然后将上一步的路由命令写入到该文件。
sudo route add -net 10.168.9.0 netmask 255.255.255.0 dev eth1
sudo route add -net 192.168.1.0/24 netmask 255.255.255.0 dev eth0
client、server端分别配置静态路由规则 client:
# vi /etc/rc.local
然后将上一步的路由命令写入到该文件。
sudo route add default gw 192.168.1.1
server:
# vi /etc/rc.local
然后将上一步的路由命令写入到该文件。
sudo route add default gw 10.168.9.1
重启后即生效。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194944.html原文链接:https://javaforall.cn
相关文章
- 利用Linux命令tail掌握日志信息(linux命令tail)
- Linux信号量机制实现通信(linux信号量通信)
- Linux下进程间通信机制研究(linux下进程通信)
- Linux进程间通信技术探索(linux进程的通信)
- Linux进程间通信方式:实现数据共享(linux进程通信方式)
- Linux私房菜第四版:让你的终端技能陡升(linux私房菜第四版)
- 掌握Linux的权限:编码之道(linux的权限代码)
- Linux安全防护:策略与实践(linux安全策略与实例)
- 跨系统文件共享:在Win机上访问Linux文件(win访问linux文件)
- Linux父子进程间的通信实践(linux父子进程通信)
- 使用U盘安装Linux系统(u盘里安装linux)
- Linux下实现跨平台通信的方式(linux通信方式)
- Linux下共享内存通信实践(共享内存通信linux)
- 嵌入式Linux为信息传输带来新的可能(嵌入式linux通信)
- 标题:Linux系统关闭防火墙指南(关闭linux的防火墙)
- 深入理解Linux进程创建过程(linux进程创建过程)
- Swap空间使用尽:Linux系统备选调整方案(swap用完linux)
- 掌握 Linux 资源管理器,轻松安排优化电脑硬件资源(linux资源管理器)
- Linux下共享内存:实现多任务间高效通信的利器(linux下共享内存)
- 深入探讨Linux进程通信的几种方式(linux进程通信的方式)
- Linux停止服务的命令:从正确的方向开始(linux停止服务的命令)
- Linux命令行中的文件合并技巧(linux合并文件命令行)