遇到一个用户需求,产品是现成的,解决方案也是现成的,但要满足信创要求,所以需要在整套解决方案之外套上一套国产系统。即假设有一台终端A,通过一根网线管理机器M,终端A上面有全套的管理系统,并已经完成适配。
现在需要在外面使用一台国产终端G进行交互,屏蔽终端A的所有网络和端口,仅提供终端G的一些网络服务和端口,因此需要使用双网卡来完成系统的构建。具体业务有所差异,拓扑图也不宜提供,本文关键是描述如何实现双网卡情况下的跨网访问。
需求要点
-
完成外部到终端A的网络通信
-
完成机器M到外部的网络通信
需求1比较简单,主要是使用 Nginx 进行反向代理,以及 TCP/UDP 端口转发。
需求2则需要通过路由转发来实现子网跨网访问。
路由转发
在双网卡的情况下,可以通过路由转发来实现子网跨网访问。
下面是具体的步骤:
1、确认双网卡的配置情况,包括网卡的IP地址、子网掩码、网关等参数。其中一张网卡要连接外网,另一张网卡要连接内网。
2、在内网网卡的计算机上开启IP转发功能。在Linux系统下,可以使用如下命令来开启IP转发功能:
sudo sysctl -w net.ipv4.ip_forward=1
3、配置路由表,将内网的请求路由到外网。在Linux系统下,可以使用如下命令添加路由表项:
sudo route add -net 内网子网地址/子网掩码 gw 外网网关地址 dev 外网网卡名称
4、配置防火墙规则,开放需要访问的端口。如果需要在外网访问内网计算机上的服务,需要在防火墙上开放相端口。
总结
需要注意的是,双网卡的路由转发操作需要谨慎操作,防止数据泄露和安全问题。建议在进行操作前,了解相关知识并备份重要数据,以防操作失误导致数据丢失。