Chinaunix

标题: [原創][分享]用 MAC 來定網卡編號 [打印本页]

作者: 網中人    时间: 2003-11-04 01:49
标题: [原創][分享]用 MAC 來定網卡編號
不知道你有否在 Linux 設定過兩張或多張同一型號網卡的經驗嗎?
若有,或許有時會搞不清楚哪張是 eth0 哪張是 eth1 ?
又,你是否有想到過用網卡的 MAC 地址來設定呢?

若以上問題(尤其是最後一個)你感興趣的話,那,我這裡教你一個法子試試看:

1) 編寫一個 renameif 的 script 並存於 /usr/local/sbin/renameif ,
其內容如下:
  1. #!/bin/bash
  2. PROG=/sbin/nameif
  3. P_ARG="-s"
  4. MACTAB=/etc/mactab
  5. IF_LIST=$(sed 's/#.*$//' $MACTAB)

  6. stop_if () {
  7.         while [ "$2" ]; do
  8.                 /sbin/ifconfig -a | grep -q "$1" && /sbin/ifconfig $1 down
  9.                 shift 2
  10.         done
  11. }
  12. rn_myif () {
  13.         while [ "$2" ]; do
  14.                 $PROG $P_ARG ${1//eth/my} $2
  15.                 shift 2
  16.         done
  17. }
  18. rn_eth () {
  19.         while [ "$2" ]; do
  20.                 $PROG $P_ARG $1 $2
  21.                 shift 2
  22.         done
  23. }

  24. stop_if $IF_LIST
  25. rn_myif $IF_LIST
  26. rn_eth $IF_LIST
复制代码


並加上 x 權限:
# chmod +x /usr/local/sbin/renameif

2) 編寫 /etc/mactab ,將 interface 跟 MAC address 填好,例如:
eth0   00:00:21:d2:30:da
eth1   00:00:21:d5:1b:b8
且分別於 /etc/sysconfig/network-scripts/ifcfg-eth* 裡設定 HWADDR=
如 HWADDR=00:00:21:d2:30:da

3) 修改  /etc/sysconfig/network-scripts/ifup ,
找到如下這行:
      
  1. /sbin/nameif "${REALDEVICE}" "${HWADDR}" || {
复制代码

在該行前面加 renameif 的路逕,使之變成如下:
  1.         RNIF_SH=/usr/local/sbin/renameif
  2.         test -x ${RNIF_SH} && ${RNIF_SH} &>;/dev/null
  3.         /sbin/nameif "${REALDEVICE}" "${HWADDR}" || {
复制代码


5) 重新啟動 network 服務:
# service network stop
# service network start
若改不過來,那就先用 rmmod 將 module 拔掉再跑 network service 。
要是還不行,那就給他 reboot 一下吧﹗呵~~~  ^_^

注意之處:
1) 以上只在 redhat 8.0 上測試過,不保證適用於其它版本。
2) /etc/modules.conf 還是建議設 alias (可用相同 module,這正是本串重點。)
3) 建議將 MAC 寫在 /etc/mactab 內,
    並同時設定 /etc/sysconfig/network-scripts/ifcfg-eth* 裡的 HWADDR= 句子。
    MAC 只能用小寫,除非你去修改 ifdown 裡的 fgrep 命令參數。
作者: LZG8056    时间: 2003-11-04 09:40
标题: [原創][分享]用 MAC 來定網卡編號
尽管不懂,但还是顶!谢谢分享
作者: bb8848    时间: 2003-11-04 10:36
标题: [原創][分享]用 MAC 來定網卡編號
老兄,來點bsd的吧,你的網和鳥哥的做得非常好,
作者: 海之钺    时间: 2003-11-04 11:32
标题: [原創][分享]用 MAC 來定網卡編號
靠近鼠标的那个一般是e0
并且依此是e1、e2、e3.....
作者: frankzh    时间: 2003-11-04 11:54
标题: [原創][分享]用 MAC 來定網卡編號
原帖由 "網中人" 发表:

5) 重新啟動 network 服務:
# service network stop
# service network start
若改不過來,那就先用 rmmod 將 module 拔掉再跑 network serice 。
要是還不行,那就給他 reboot 一下吧﹗呵~~~  ^_^

注意之..........


多谢 分享  以后 多 发表文章 我们受益不少 呵呵
作者: tsgx    时间: 2003-11-04 12:39
标题: [原創][分享]用 MAC 來定網卡編號
[quote]原帖由 "bb8848"]老兄,來點bsd的吧,你的網和鳥哥的做得非常好,[/quote 发表:
原来网中人就是http://www.study-area.org ======= 的主人啊。敬仰敬仰。。。真有幸在此看网中人的贴子。
作者: sky-walker    时间: 2003-11-04 15:27
标题: [原創][分享]用 MAC 來定網卡編號
跟上网中人大哥一帖,虽然不太一样,但也是关于MAC的

大家都知道,MAC是出厂时网卡的唯一ID,一般改变不了,在Windows下实现较繁琐,
但在Linux下却较易实现

首先关闭网卡
#/sbin/ifconfig  eth0  down

再修改MAC
#/sbin/ifconfig eth0 hw ether 00:AS:YOU:WISH:00
Win下可没这么简单

开启网卡
#/sbin/ifconfig eht0 up

至于这样做的原因和意义,大家自己捉摸吧(如果和IP绑定连用,那么....)  


不过最好不要把自己的机子变成服务器的MAC, 不然会很难受的  
作者: 網中人    时间: 2003-11-04 15:46
标题: [原創][分享]用 MAC 來定網卡編號
不錯不錯~~~  ^_^

總算拋磚引玉了... 大家一起加油!
作者: 双眼皮的猪    时间: 2003-11-04 21:23
标题: [原創][分享]用 MAC 來定網卡編號
帮您顶一下啊...好东东 ...

不过改MAC,一般是用来 ***的啊....
作者: sky-walker    时间: 2003-11-04 22:49
标题: [原創][分享]用 MAC 來定網卡編號
原帖由 "双眼皮的猪" 发表:
帮您顶一下啊...好东东 ...

不过改MAC,一般是用来 ***的啊....


hehe,我可是老实人,其实也可用来防犯的
作者: platinum    时间: 2003-11-05 09:17
标题: [原創][分享]用 MAC 來定網卡編號
这样是真的改了硬件,还是修改了LINUX中的某些CACHE?
如果是改硬件的,不是所有网卡都可以了吧?
作者: 網中人    时间: 2003-11-05 11:37
标题: [原創][分享]用 MAC 來定網卡編號
所謂的 hardware ,最終都是被 os 控制的。
ifconfig 的設定不是要改掉網卡的 MAC (跟燒 ROM 不一樣),
只是從 os level 動手腳,將只定 MAC 的 ethernet frame 讀進交給上層協定處理而已。
作者: platinum    时间: 2003-11-05 14:28
标题: [原創][分享]用 MAC 來定網卡編號
下次重新启动,是不是就恢复成原来那样了?
如果没恢复,是不是系统里有记录了已经?
如果系统里有记录了,是不是当系统崩溃后再重新装,又恢复了?
作者: 網中人    时间: 2003-11-05 14:43
标题: [原創][分享]用 MAC 來定網卡編號
若下次 reboot ,就要再輸入一次囉。

假如你對開機流程就 daemon 起動熟悉,應可找到不少方法加以設定。
要不然,最簡單就是將命令寫進 /etc/rc.d/rc.local 了...  ^_^
作者: platinum    时间: 2003-11-05 14:59
标题: [原創][分享]用 MAC 來定網卡編號
恩,我认为这是找不到配置文件的最好的办法了,起初网卡我都是在这里设置的 ^_^
作者: 網中人    时间: 2003-11-05 15:50
标题: [原創][分享]用 MAC 來定網卡編號
嗯... 越便利使用的系統,其設定通常都越複雜... 同時也增加了設定難度(若不用工具的話)。

我認識不少朋友都喜歡使用 slackware ,其中很大的程度是喜歡他的簡單直接...  ^_^
作者: sky-walker    时间: 2003-11-05 15:59
标题: [原創][分享]用 MAC 來定網卡編號
理论化一下:

ARP缓存中有映射远程IP--->;MAC的列表。

其实是一个TSR的数据结构,由本地的内核来管理的。

用保护态下软件改写保护态的HW,也只是对其中的regs flag进行暂时性的修改,即针

对工作态,就象超频软件对CPU所作的

CIH是由于HW商的大意,造成其可通过改写CMOS中的regs,使BIOS中的写引脚获得

足够的电压,.....现在的新款BIOS都是采用mPGA而非DIP,所以不会再害怕

至于BIOS升级,这本身就是HW的写入接口,而且应工作于RM下,一般软件在这种环境

下都无法运行了


...呵呵,接着蹭帖子
作者: 網中人    时间: 2003-11-05 16:08
标题: [原創][分享]用 MAC 來定網卡編號
不過....

針對本機的 MAC ,應該不用寫進 ARP Table 中。
因為 ARP Table 只有當有 IP 封包要送往 Ethernet 時才會參考...
也就是 destination 為其它機器才需用到。
要是送給本機,by default,應會送到 loop back 去吧?

嗯,提出來給大家參考參考...  ^_^
作者: platinum    时间: 2003-11-06 13:26
标题: [原創][分享]用 MAC 來定網卡編號
问个题外话,我做了DHCPD服务,我在哪能看到现在有几台计算机被DHCP服务批准了IP,IP地址各是多少?
作者: 網中人    时间: 2003-11-06 13:35
标题: [原創][分享]用 MAC 來定網卡編號
find /var -name 'dhcpd.leases'
作者: ulovko    时间: 2012-05-19 17:36
多谢分享,很有用!~




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2