LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1005|回复: 4

改MAC,修改配置文件实现

[复制链接]
发表于 2007-5-22 20:03:51 | 显示全部楼层 |阅读模式
在网上看到的更改MAC都是用命令行下的参数,
但是我总觉得应该能够通过修改配置文件实现,应该是 ifconfig.eth0 不知道该添加什么变量,
顺便说一下,感觉Linux的好多设置都要用命令行来设置,还要添加到开机脚本中,正规的设置不是应该修改配置文件么,关于怎么配置,修改什么文件,也没有一个权威性质的手册,网上又是众说纷纭,实在迷茫,还望大侠指点一二,谢谢
发表于 2007-5-22 22:11:54 | 显示全部楼层
Redhat
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.3
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
HWADDR=31:32:33:34:35:36

Debian/Ubuntu
# cat /etc/network/interfaces
auto eth0
iface eth0 inet static
     address 192.168.0.42
     network 192.168.0.0
     netmask 255.255.255.0
     broadcast 192.168.0.255
     gateway 192.168.0.1
     hwaddress ether xx:xx:xx:xx:xx:xx


> 正规的设置不是应该修改配置文件么
Linux下的各种设置最终都是为了把你的选择告诉内核。告诉内核得通过命令行。设置文件不过记住了你的一些默认选择而已。每次启动,这些选择都通过开机脚本重新告诉给内核。
回复 支持 反对

使用道具 举报

发表于 2007-5-26 13:19:14 | 显示全部楼层
Post by xinglp
在网上看到的更改MAC都是用命令行下的参数,
但是我总觉得应该能够通过修改配置文件实现,应该是 ifconfig.eth0 不知道该添加什么变量,
顺便说一下,感觉Linux的好多设置都要用命令行来设置,还要添加到开机脚本中,正规的设置不是应该修改配置文件么,关于怎么配置,修改什么文件,也没有一个权威性质的手册,网上又是众说纷纭,实在迷茫,还望大侠指点一二,谢谢


若是你是使用 RHEL/Fedora 这类版本的话,请考虑先看一下 /etc/sysconfig/network-scripts/ifup 看一下:


  1. # this isn't the same as the MAC in the configuration filename.  It is
  2. # available as a configuration option in the config file, forcing the kernel
  3. # to think an ethernet card has a different MAC address than it really has.
  4. if [ -n "${MACADDR}" ]; then
  5.    ip link set dev ${DEVICE} address ${MACADDR}
  6. fi
  7. if [ -n "${MTU}" ]; then
  8.    ip link set dev ${DEVICE} mtu ${MTU}
  9. fi
复制代码


可以发现到目前都是流行使用 ip 程式,已经逐渐不使用 ifconfig 程式了。

而你网路卡配置 /etc/sysconfig/network-scripts/ifcfg-eth0 应该就会使用像是:


  1. DEVICE=eth0
  2. IPADDR=192.168.1.1
  3. NETMASK=255.255.255.0
  4. MACADDR=00:11:22:33:44:55
复制代码


其中 MACADDR 应该就是你预期要改的的项目。把预期的网路卡卡号放进去就可以。

改好执行 /etc/init.d/network stop ; /etc/init.d/network start

若是您是使用 SUSE Linux 的话,SuSE 本身就已经给您一个很明确清楚的样板档案,档案名称为 /etc/sysconfig/network/ifcfg.template,该档案里面有提到配置说明。

比方你目前使用中的网路卡的 mac addr 是  00:11:22:33:44:55,那您的系统应该就会有 /etc/sysconfig/network/ifcfg-eth-id-00:11:22:33:44:55 档案,该档案内容会像是:


  1. IPADDR=192.168.1.1
  2. NETMASK=255.255.255.0
复制代码


你要换网路卡卡号的话,就是多 LLADDR 该叙述。

  1. IPADDR=192.168.1.1
  2. NETMASK=255.255.255.0
  3. LLADDR=00:48:54:11:22:33
复制代码


改好后执行 rcnetwork stop ; rcnetwork start 应该就可以了 (用 ifup/ifdown 也可以)。

另外补充的是,使用 ip 程式配置网路介面 mac 组态的话,该配置设定实际底层会是:

  1. ip link set eth0 address 00:48:54:11:22:33
复制代码


提供给你参考。

--
回复 支持 反对

使用道具 举报

发表于 2007-5-26 13:19:21 | 显示全部楼层
Post by xinglp
在网上看到的更改MAC都是用命令行下的参数,
但是我总觉得应该能够通过修改配置文件实现,应该是 ifconfig.eth0 不知道该添加什么变量,
顺便说一下,感觉Linux的好多设置都要用命令行来设置,还要添加到开机脚本中,正规的设置不是应该修改配置文件么,关于怎么配置,修改什么文件,也没有一个权威性质的手册,网上又是众说纷纭,实在迷茫,还望大侠指点一二,谢谢


若是你是使用 RHEL/Fedora 这类版本的话,请考虑先看一下 /etc/sysconfig/network-scripts/ifup 看一下:


  1. # this isn't the same as the MAC in the configuration filename.  It is
  2. # available as a configuration option in the config file, forcing the kernel
  3. # to think an ethernet card has a different MAC address than it really has.
  4. if [ -n "${MACADDR}" ]; then
  5.    ip link set dev ${DEVICE} address ${MACADDR}
  6. fi
  7. if [ -n "${MTU}" ]; then
  8.    ip link set dev ${DEVICE} mtu ${MTU}
  9. fi
复制代码


可以发现到目前都是流行使用 ip 程式,已经逐渐不使用 ifconfig 程式了。

而你网路卡配置 /etc/sysconfig/network-scripts/ifcfg-eth0 应该就会使用像是:


  1. DEVICE=eth0
  2. IPADDR=192.168.1.1
  3. NETMASK=255.255.255.0
  4. MACADDR=00:11:22:33:44:55
复制代码


其中 MACADDR 应该就是你预期要改的的项目。把预期的网路卡卡号放进去就可以。

改好执行 /etc/init.d/network stop ; /etc/init.d/network start

若是您是使用 SUSE Linux 的话,SuSE 本身就已经给您一个很明确清楚的样板档案,档案名称为 /etc/sysconfig/network/ifcfg.template,该档案里面有提到配置说明。

比方你目前使用中的网路卡的 mac addr 是  00:11:22:33:44:55,那您的系统应该就会有 /etc/sysconfig/network/ifcfg-eth-id-00:11:22:33:44:55 档案,该档案内容会像是:


  1. IPADDR=192.168.1.1
  2. NETMASK=255.255.255.0
复制代码


你要换网路卡卡号的话,就是多 LLADDR 该叙述。

  1. IPADDR=192.168.1.1
  2. NETMASK=255.255.255.0
  3. LLADDR=00:48:54:11:22:33
复制代码


改好后执行 rcnetwork stop ; rcnetwork start 应该就可以了 (用 ifup/ifdown 也可以)。

另外补充的是,使用 ip 程式配置网路介面 mac 组态的话,该配置设定实际底层会是:

  1. ip link set eth0 address 00:48:54:11:22:33
复制代码


提供给你参考。

--
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-27 12:26:26 | 显示全部楼层
十分感谢   
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表