不知道你有否在 Linux 設定過兩張或多張同一型號網卡的經驗嗎?
若有,或許有時會搞不清楚哪張是 eth0 哪張是 eth1 ?
又,你是否有想到過用網卡的 MAC 地址來設定呢?
若以上問題(尤其是最後一個)你感興趣的話,那,我這裡教你一個法子試試看:
1) 編寫一個 renameif 的 script 並存於 /usr/local/sbin/renameif ,
其內容如下:
[code:1:babf3cfadf]#!/bin/bash
PROG=/sbin/nameif
P_ARG="-s"
MACTAB=/etc/mactab
IF_LIST=$(sed 's/#.*$//' $MACTAB)
stop_if () {
while [ "$2" ]; do
/sbin/ifconfig -a | grep -q "$1" && /sbin/ifconfig $1 down
shift 2
done
}
rn_myif () {
while [ "$2" ]; do
$PROG $P_ARG ${1//eth/my} $2
shift 2
done
}
rn_eth () {
while [ "$2" ]; do
$PROG $P_ARG $1 $2
shift 2
done
}
stop_if $IF_LIST
rn_myif $IF_LIST
rn_eth $IF_LIST[/code:1:babf3cfadf]
並加上 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 ,
找到如下這行:
[code:1:babf3cfadf]/sbin/nameif "${REALDEVICE}" "${HWADDR}" || {[/code:1:babf3cfadf]
在該行前面加 renameif 的路逕,使之變成如下:
[code:1:babf3cfadf] RNIF_SH=/usr/local/sbin/renameif
test -x ${RNIF_SH} && ${RNIF_SH} &>/dev/null
/sbin/nameif "${REALDEVICE}" "${HWADDR}" || {[/code:1:babf3cfadf]
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:41 |
尽管不懂,但还是顶!谢谢分享 |
bb8848 回复于:2003-11-04 10:36:29 |
老兄,來點bsd的吧,你的網和鳥哥的做得非常好, |
海之钺 回复于:2003-11-04 11:32:44 |
靠近鼠标的那个一般是e0 并且依此是e1、e2、e3..... |
frankzh 回复于:2003-11-04 11:54:22 |
[quote:799918b9cb="網中人"] 5) 重新啟動 network 服務: # service network stop # service network start 若改不過來,那就先用 rmmod 將 module 拔掉再跑 network serice 。 要是還不行,那就給他 reboot 一下吧﹗呵~~~ ^_^ 注意之..........[/quote:799918b9cb] 多谢 分享 以后 多 发表文章 我们受益不少 呵呵 |
tsgx 回复于:2003-11-04 12:39:33 |
[quote:3dd939bf1e="bb8848"]老兄,來點bsd的吧,你的網和鳥哥的做得非常好,[/quote:3dd939bf1e]原来网中人就是http://www.study-area.org ======= 的主人啊。敬仰敬仰。。。真有幸在此看网中人的贴子。 |
sky-walker 回复于:2003-11-04 15:27:12 |
跟上网中人大哥一帖,虽然不太一样,但也是关于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绑定连用,那么....) javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)"> 不过最好不要把自己的机子变成服务器的MAC, 不然会很难受的 |
網中人 回复于:2003-11-04 15:46:21 |
不錯不錯~~~ ^_^ 總算拋磚引玉了... 大家一起加油! |
双眼皮的猪 回复于:2003-11-04 21:23:53 |
帮您顶一下啊...好东东 ... 不过改MAC,一般是用来 ***的啊.... |
sky-walker 回复于:2003-11-04 22:49:39 |
[quote:c0ec635d98="双眼皮的猪"]帮您顶一下啊...好东东 ... 不过改MAC,一般是用来 ***的啊....[/quote:c0ec635d98] hehe,我可是老实人,其实也可用来防犯的 |
platinum 回复于:2003-11-05 09:17:58 |
这样是真的改了硬件,还是修改了LINUX中的某些CACHE? 如果是改硬件的,不是所有网卡都可以了吧? |
網中人 回复于:2003-11-05 11:37:02 |
所謂的 hardware ,最終都是被 os 控制的。 ifconfig 的設定不是要改掉網卡的 MAC (跟燒 ROM 不一樣), 只是從 os level 動手腳,將只定 MAC 的 ethernet frame 讀進交給上層協定處理而已。 |
platinum 回复于:2003-11-05 14:28:22 |
下次重新启动,是不是就恢复成原来那样了? 如果没恢复,是不是系统里有记录了已经? 如果系统里有记录了,是不是当系统崩溃后再重新装,又恢复了? |
網中人 回复于:2003-11-05 14:43:46 |
若下次 reboot ,就要再輸入一次囉。 假如你對開機流程就 daemon 起動熟悉,應可找到不少方法加以設定。 要不然,最簡單就是將命令寫進 /etc/rc.d/rc.local 了... ^_^ |
platinum 回复于:2003-11-05 14:59:43 |
恩,我认为这是找不到配置文件的最好的办法了,起初网卡我都是在这里设置的 ^_^ |
網中人 回复于:2003-11-05 15:50:54 |
嗯... 越便利使用的系統,其設定通常都越複雜... 同時也增加了設定難度(若不用工具的話)。 我認識不少朋友都喜歡使用 slackware ,其中很大的程度是喜歡他的簡單直接... ^_^ |
sky-walker 回复于:2003-11-05 15:59:05 |
理论化一下: ARP缓存中有映射远程IP--->MAC的列表。 其实是一个TSR的数据结构,由本地的内核来管理的。 用保护态下软件改写保护态的HW,也只是对其中的regs flag进行暂时性的修改,即针 对工作态,就象超频软件对CPU所作的 CIH是由于HW商的大意,造成其可通过改写CMOS中的regs,使BIOS中的写引脚获得 足够的电压,.....现在的新款BIOS都是采用mPGA而非DIP,所以不会再害怕 至于BIOS升级,这本身就是HW的写入接口,而且应工作于RM下,一般软件在这种环境 下都无法运行了 ...呵呵,接着蹭帖子 |
網中人 回复于:2003-11-05 16:08:22 |
不過.... 針對本機的 MAC ,應該不用寫進 ARP Table 中。 因為 ARP Table 只有當有 IP 封包要送往 Ethernet 時才會參考... 也就是 destination 為其它機器才需用到。 要是送給本機,by default,應會送到 loop back 去吧? 嗯,提出來給大家參考參考... ^_^ |
platinum 回复于:2003-11-06 13:26:49 |
问个题外话,我做了DHCPD服务,我在哪能看到现在有几台计算机被DHCP服务批准了IP,IP地址各是多少? |
網中人 回复于:2003-11-06 13:35:57 |
find /var -name 'dhcpd.leases' |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/