需求背景:
之前写过一篇博文使用路由器实现三个不同网段局域网内的计算机相互访问,链接如下
https://blog.csdn.net/agang1986/article/details/131862160
当前的需求又发生了变更,有两个独立的局域网,内部的计算机个数和配置的IP地址完全相同,现在需要两个局域网内的计算机可以通信。我们知道软件交互需要指定对端的IP地址+端口号,如果两个互联的局域网里的计算机IP地址冲突,咋知道发送给谁的呢?方案之一是端口映射。
大体思路:
由于两个局域网中的计算机IP地址冲突,假设A局域网中地址为10.10.6.1的计算机发送报文给B局域网中地址为10.10.6.1的计算机,此时程序不能直接发送给10.10.6.1,报文会被它自己接收到。好在当前大多少路由器都支持端口映射功能。我们只要把报文发送到B局域网所在的路由器WAN口,然后通过对此WAN口做端口映射再把报文转发到B局域网下的10.10.6.1 IP的计算机即可。
三点共识:
1、路由器的WAN口主要用于连接外部网络,一般路由器上有1到2个;LAN口主要用于内部局域网,一般路由器有4到5个。
2、一台路由器的LAN口和WAN口的IP地址不能同网段,否则路由器会报冲突。
3、一台路由器的LAN口数据可以直接传输到WAN口,类似于我们在局域网内上网;但WAN口数据不能直接传输到LAN口,需要使用端口映射做转换,也就是常听到的内网穿透。
设置方法:
1、首先准备一根网线连接A路由器的LAN5口和B路由器的WAN0口
2、设置A路由器的LAN5口的IP地址为10.10.100.254
3、设置B路由器的WAN0口如下:
4、再设置B路由器的端口映射,从WAN口+2001端口,映射到内网的192.168.1.100+2001端口
测试方法:
在A路由器所在局域网的192.168.1.100计算机执行:
telnet 10.10.100.2 2001
然后在B路由器所在局域网的192.168.1.100计算机上抓包,确认是否收到telnet报文。
扩展:
同理,如果需要从B路由器所在的局域网反向发送报文到A路由器所在局域网,也需要反向做下配置即可。