虚拟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
![](https://img-blog.csdnimg.cn/20190507211356770.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=,size_16,color_FFFFFF,t_70)
(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://img-blog.csdnimg.cn/20190507211821377.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190507211846402.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=,size_16,color_FFFFFF,t_70)
参考: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三个步骤和线程开启
![](https://img-blog.csdnimg.cn/2019050721322778.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20190507213728150.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=,size_16,color_FFFFFF,t_70)
(2)线程
![](https://img-blog.csdnimg.cn/20190507213914810.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/2019050721401555.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=,size_16,color_FFFFFF,t_70)
发送也要相应修改~
![](https://img-blog.csdnimg.cn/20190507214310458.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=,size_16,color_FFFFFF,t_70)
依据需求,可以动态修改IP;
测试结果!
![](https://img-blog.csdnimg.cn/2019050721440878.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=,size_16,color_FFFFFF,t_70)
TCP 基本通讯无误!(下方有一个发送失败,是因为物理ip的tcp的端口没有打开,所以发送失败了!)
![](https://img-blog.csdnimg.cn/20190507214604759.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW94aWxhbmc=,size_16,color_FFFFFF,t_70)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)