如何才能知道虚拟机LINUX的IP地址(以能联网,使用host-only)

如何才能知道虚拟机LINUX的IP地址(以能联网,使用host-only),第1张

host-only需要设置共享上网很麻烦。而且现在win7在设置的时候会报错。xp可以。

建议使用nat上网:

注意修改你的网卡模式为nat。

并把你的主机和虚拟机的网卡设置成自动获得ip地址

1、设置虚拟机为nat的网卡模式

2、设置虚拟机的ip为自动获得ip

3、设置主机的vmnet8网卡为自动获得ip

在进行Linux网络编程时,经常用到本机IP地址。本文罗列一下常见方法,以备不时之需。

获取本机IP地址,是一个相当灵活的 *** 作,原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的。比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡设置别名,可以重命名网卡。用户计算机所在网络拓扑结构未知,主机名设置是一个可选项,并且同样可以为一个计算机绑定多个主机名等,这些信息都会有影响。脱离了网络连接,单独的网络地址没有任何意义。编程中遇到必须获取计算机IP的场景,应该考虑将这一选项放到配置文件中,由用户自己来设置。

参考网络和书本,编程获取本机IP地址大约有以下几种方法。

方法一:ioctl()获取本地IP地址

Linux 下 可以使用ioctl()函数以及结构体 struct ifreq和结构体struct ifconf来获取网络接口的各种信息。

具体过程是先通过ictol获取本地的所有接口信息,存放到ifconf结构中,再从其中取出每个ifreq表示的ip信息(一般每个网卡对应一个IP地址,如:”eth0…、eth1…”)。

先了解结构体 struct ifreq和结构体struct ifconf:

//ifconf通常是用来保存所有接口信息的

//ifh

struct ifconf

{

int ifc_len; / size of buffer /

union

{

char ifcu_buf; /input from user->kernel/

struct ifreq ifcu_req; / return from kernel->user/

} ifc_ifcu;

};

#define ifc_buf ifc_ifcuifcu_buf /buffer address /

#define ifc_req ifc_ifcuifcu_req /array of structures/

//ifreq用来保存某个接口的信息

//ifh

struct ifreq {

char ifr_name[IFNAMSIZ];

union {

struct sockaddr ifru_addr;

struct sockaddr ifru_dstaddr;

struct sockaddr ifru_broadaddr;

short ifru_flags;

int ifru_metric;

caddr_t ifru_data;

} ifr_ifru;

};

#define ifr_addr ifr_ifruifru_addr

#define ifr_dstaddr ifr_ifruifru_dstaddr

#define ifr_broadaddr ifr_ifruifru_broadaddr

ifconfig可以查看当前主机的ip地址;如果要手动更改ip地址。可以输入命令cd /etc/sysconfig/network下 在这个目录下会有类似于ifcfg-@@的文件。可以用vi命令来修改ip。

第一步:激活网卡

系统装好后默认的网卡是eth0,用下面的命令将这块网卡激活。

# ifconfig eth0 up

第二步:设置网卡进入系统时启动

想要每次开机就可以自动获取IP地址上网,就要设置网络服务在系统启动时也启动。Linux有一点与windows不同的是很多服务默认是停止的,而且你在某次使用该服务时启动这个服务,但是没设置它为默认启动,则下次进入系统这个服务依然是停止的。下面是设置网络服务在系统启动时也启动的方法。

使用chkconfig命令让网络服务在系统启动级别是2345时默认启动。

# chkconfig --level 2345 network on

第三步:修改网卡文件ifcfg-eth0

修改ifcfg-eth0文件,设置ONBOOT的值为yes,让网络服务启动时使用该网卡。设置BOOTPROTO的值为dhcp,让网卡从DHCP服务器自动获取IP地址。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=yes

BOOTPROTO=dhcp

总结:

通常情况下第三步是最重要的,因为大部分Linux系统默认网络服务是系统启动时也启动的,网卡也是启用的,只要设置好第三步,然后使用下面的命令启动网络服务就OK。

# service network start

配置静态IP地址上网与动态IP地址上网同出一辙,修改ifcfg-eth0,然后用命令service network retart重启网络服务。

DEVICE=eth0

IPADDR=1921681100

NETMASK=2552552550

GATEWAY=19216811

DNS=8888

BOOTPROTO=static

ONBOOT=yes

debian:

编辑/etc/network/interfaces

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

allow-hotplug eth0

auto eth0

iface eth0 inet static

address 192168136

netmask 2552552550

gateway 192168110 #公司的网关是192168110,一般是19216811

保存编辑结果,并重启网络服务

/etc/initd/networking restart

已经可以用新的静态IP访问internet了。

以上就是关于如何才能知道虚拟机LINUX的IP地址(以能联网,使用host-only)全部的内容,包括:如何才能知道虚拟机LINUX的IP地址(以能联网,使用host-only)、linux 下获取本地ip地址后 怎样、linux中怎么查看ip地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10207540.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存