Ubuntu添加虚拟网卡的三种方式
Posted remo0x
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu添加虚拟网卡的三种方式相关的知识,希望对你有一定的参考价值。
1. ifconfig添加
使用ifconfig -a
命令查看已有物理网卡,一般得到如下输出:
eno1 ...(省略)
lo ...
ppp0 ...
然后向物理网卡eno1中添加一块虚拟网卡:
sudo ifconfig eno1:1 192.168.0.10 up
以上命令创建了一个叫eno1:1
的虚拟网卡,地址是192.168.0.10
。
可以使用如下命令删除:
sudo ifconfig eno1:1 down
用这种方式添加的虚拟网卡,重启服务器或网络后就没了。
2. 修改网卡配置文件
在Ubuntu下,网卡的配置文件是/etc/network/interfaces
:
sudo vim /etc/network/interfaces
增加如下内容:
auto eno1:1
iface eno1:1 inet static
address 192.168.0.10
netmask 255.255.255.0
# network 192.168.10.1
# broadcast 192.168.1.255
然后重启网卡(重新加载配置文件):
sudo /etc/init.d/networking restart
这种方式在重启服务器或者网卡后配置不会丢失。
3. 创建TAP
前面两种方式创建的虚拟网卡和物理网卡相比,IP地址不同,但是Mac地址相同:
eno1 Link encap:以太网 硬件地址 da:3d:b0:a0:13:p9
...(省略)
eno1:1 Link encap:以太网 硬件地址 da:3d:b0:a0:13:p9 (相同Mac地址)
inet 地址:192.168.0.10 广播:192.168.0.255 掩码:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
如果需要不同的Mac地址,可以添加虚拟网卡TAP。先安装uml-utilities:
sudo apt-get install uml-utilities
然后使用tunctl
添加虚拟网卡,该命令会生成一个TAP,后缀从0递增:
$ sudo tunctl -b
tap0
$ sudo tunctl -b
tap1
最后激活创建的TAP:
$ sudo ip link set tap0 up
$ sudo ip link set tap1 up
查看网卡信息可以看到TAP有不同的Mac地址:
tap0 Link encap:以太网 硬件地址 be:74:81:f7:27:97
...(省略)
tap1 Link encap:以太网 硬件地址 b2:da:ce:f0:45:5d
...
这种方式创建的虚拟网卡在重启后也会消失,需要编写脚本作为系统服务随系统自动启动创建虚拟网卡,可以根据具体需求修改此脚本(符合chkconfig规范)。脚本如下:
$ cat /etc/init.d/config_tap
#!/bin/bash
#
# config_tap Start up the tun/tap virtual nic
#
# chkconfig: 2345 55 25
USER="root"
TAP_NETWORK="192.168.0.1"
TAP_DEV_NUM=0
DESC="TAP config"
do_start()
if [ ! -x /usr/sbin/tunctl ]; then
echo "/usr/sbin/tunctl was NOT found!"
exit 1
fi
tunctl -t tap$TAP_DEV_NUM -u root
ifconfig tap$TAP_DEV_NUM $TAP_NETWORK netmask 255.255.255.0 promisc
ifconfig tap$TAP_DEV_NUM
do_stop()
ifconfig tap$TAP_DEV_NUM down
do_restart()
do_stop
do_start
check_status()
ifconfig tap$TAP_DEV_NUM
case $1 in
start) do_start;;
stop) do_stop;;
restart) do_restart;;
status)
echo "Status of $DESC: "
check_status
exit "$?"
;;
*)
echo "Usage: $0 start|stop|restart|status"
exit 1
esac
然后将脚本加入到系统服务中:
chkconfig --add config_tap
chkconfig --level 345 config_tap on
操作完成后,就可以像其他标准服务一样,通过service config_tap start
来进行创建和启动操作。
参考文章
以上是关于Ubuntu添加虚拟网卡的三种方式的主要内容,如果未能解决你的问题,请参考以下文章