虚拟IP
即在一个物理IP(比如这个IP为192.168.2.29)的基础上,绑定其他的IP(比如192.168.1.xxx),用windows的话说,就是为一个网卡配置多个ip。那么,什么场合增加ip别名能派上用场?
布网需要、多ip访问测试、特定软件对多ip的需要...and so on.
1.先在终端上测试一下虚拟ip的可行性
(1)第一种方法-直接修改接口文件interfaces--一般在首目录-使用 vim /etc/network/interfaces,就可以打开
也有其他不在这个地方,见如下例子
参照博客:https://blog.csdn.net/zwl18210851801/article/details/81455343
(2)第二种方法-推荐
如下是我在我的开发板如下操作:
设置IP-0:ifconfig enp1s0:0 192.168.2.100 netmask 255.255.255.0 up
(这是多开一个,如果开多个就改动 enp1s0:0/1/2/3/4,IP对应改动)
取消设置IP-0:ifconfig enp1s0:0 192.168.2.100 netmask 255.255.255.0 dowm
参考:https://blog.csdn.net/rejoy_liu/article/details/71254357
2.代码实现
前提:
你要先调通TCP的物理ip的驱动,然后在考虑第二个IP的驱动开发;如果不了解物理IP的驱动开发,可以参考我的前面的博客:https://blog.csdn.net/xiaoxilang/article/details/80839797,linux对驱动很简单,我有总结好的-SBLARWRC
经验:
虚开的第2/3/4..个IP不要与物理IP处在同一个网段(比如物理ip为192.168.2.105,再开一个是192.168.2.100,我上面开的一个就是同网段的IP,导致我虚开的ip无法通讯,废了很大力气才发现该问题-要解决该问题-涉及到底层的改动),否则信息会首先跟物理IP通讯;虚开的ip无法通讯!
(1).初始化-包含tcp-SBL三个步骤和线程开启
(2)线程
发送也要相应修改~
依据需求,可以动态修改IP;
测试结果!
TCP 基本通讯无误!(下方有一个发送失败,是因为物理ip的tcp的端口没有打开,所以发送失败了!)