我的问题是,在大学里,每台台式计算机都被赋予了一个“假”/“克隆”的 MAC 地址,该地址可以被我们的网络识别,并且让我们无需进一步的身份验证/VPN 等即可进入(不要问为什么 - 我自己也不再问这个问题了。不幸的是,我是这里唯一使用 Linux 的人,Windows 有 Cisco NAC 代理)。
因此,当通过以太网创建有线连接时(使用 NetworkManager - 适用于 Ubuntu 12.04 和 13.04),我们应该用提供给我们的虚假 MAC 地址填充“克隆 MAC 地址”框(MTU 大小为“自动”)。使用此方法不需要 VPN,因此无需配置 VPN,只需一个简单的以太网连接。
但是这不管用。它一直尝试连接,但始终无法处理所有通知。当我将“克隆的 MAC 地址”框留空时,它连接正常,我看到连接图标正常,但我无法访问互联网(通过 wget 或 Firefox 的命令行),因为我没有经过身份验证(我认为他们有代理或类似的东西,wget www.ibm.com 响应“proxysg1...授权失败”)
因此我所做的就是编辑 /etc/network/interfaces 使其变为:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
# clone mac address so we can get in net as instructed by IT
hwaddress ether XX:XX:XX:XX:XX:XX
然后我意识到(我是 Ubuntu 新手,Linux 老手)这还不够,我必须完全删除网络管理器才能开始使用 ifup/down 等。我就是这么做的。
% apt-get purge network-manager
% ifup eth0
no problem there, dhcp is called and we get ip with no errors and then starts the ssh server.
% ifconfig
results are below:
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:10.10.80.125 Bcast:10.10.80.255 Mask:255.255.255.0
inet6 addr: fe80::200:aff:fe00:40/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2529 errors:0 dropped:0 overruns:0 frame:0
TX packets:419 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:263993 (263.9 KB) TX bytes:58880 (58.8 KB)
Interrupt:16 Memory:d2200000-d2220000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:178 errors:0 dropped:0 overruns:0 frame:0
TX packets:178 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:14420 (14.4 KB) TX bytes:14420 (14.4 KB)
其中 XX:XX:XX:XX:XX:XX 是 IT 部门提供给我们的克隆 MAC 地址 - 所以我认为一切正常。
在这个阶段,我可以远程连接到我的机器(从同一房间的计算机,桌面以太网),但有时它可以工作,然后它就会中断:通常的问题是,我无法访问任何互联网(wget 或 Firefox),而无需进行身份验证。在这个阶段,我重新安装了 ubuntu 12.04,并设法让它再次工作一段时间,直到使用 apt-get 安装了一些软件包之后。
所以我升级到了 Ubuntu 13.04
在从启动光盘安装时,访问存储库(用于检查最新版本)时出现上述问题。它再次使用 NetworkManager,除非我做错了什么,否则它根本无法使用“克隆的 MAC 地址”。在使用安装光盘启动后的某个阶段,在安装之前,我切换到控制台。停止网络管理器(/etc/init.d/networking stop
),然后执行旧的 ifup 操作,它就成功了!但不幸的是,整个安装都崩溃了 - 我在 gnome 中执行 a 时注意到了这一点/etc/init.d/networking restart
- 窗口管理器消失了。
无论如何,我继续安装 13.04,但安装的系统有同样的问题(即 NetowrkManager“克隆的 MAC 地址”无法将我连接到网络)。因此,我再次在安装的系统中移除了 NetworkManager,并执行了上述所有步骤,它成功了!
ubuntu-tweak, gconf-editor, okular, xpdf
然后,在使用 apt-get (仅)安装几个软件包 (最新的是:) 后,问题再次出现 - 我未通过身份验证,但 ifconfig 具有相同的正确输出,/etc/network/interfaces
具有相同的内容,并且这一切都发生在会话中,没有注销或重新启动。我执行了几次 ifdown/ifup/ifconfig,它们都显示相同的正确输出,但无法通过身份验证访问互联网,但奇怪的是,我可以从同一网络/房间中的其他计算机 ssh 进入桌面。哦,我确实检查过了,NetworkManager 并没有在我不知情的情况下重新安装 (我认为)。
除了 NetworkManager 无法处理“克隆的 MAC 地址”或我对其做了一些错误操作的问题之外。最大的问题是,在删除 NetworkManager 并让其与 ifup 脚本一起工作后,某些东西(可能是 apt-get 安装后脚本?也可能是 ubuntu-tweak,我仅用它来配置 gnome 桌面)破坏了它。
问题:
在使用 Ubuntu 13.04 时,除了传统的、老式的 ifup 方法之外,我该怎么做才能 100% 确保没有任何东西干扰我的连接。例如,在安装某些东西时,apt-get 是否会导致我的网络中断?
有人能解释一下为什么具有克隆 Mac 地址的 NetworkManager 不工作,但 ifup 却像上面所说的那样工作(在删除 NetworkManager 之后)。
有人能解释一下为什么无论 NetworkManager 是否安装并运行,
/etc/init.d/networking
重新启动都会终止窗口管理器,而 xterms 仍打开但无法在其中写入任何内容(也许焦点在其他地方)?如果不是因为这款软件超级简单易用,我真想转用 Suse,我一生挚爱:
apt-get
- 有什么建议吗?
谢谢朋友,
我感谢任何帮助、暗示或安慰的话语。
答案1
我使用的是 Ubuntu 12.04.2 内核 3.5,遇到了和你一样的问题。NetworkManager 无法让克隆的 mac 地址“粘”到以太网端口(我还没有在 wlan 上试过)。我可以运行:
ifconfig eth0 down
ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX
ifconfig eth0 up
无需卸载 NetworkManager。一旦我运行这些命令,以太网适配器将坚持使用新的、欺骗性的 MAC 地址,但是一旦我断开以太网、让计算机进入睡眠状态或重新启动,NetworkManager 就会将其恢复为原始地址。
所以基本上,我的解决方法是在连接到网络之前运行这些命令,这对我来说已经足够了。但如果 NetworkManager 能够按照预期运行,那就太好了。
我在这里提交了一个错误报告:https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1116421
答案2
问题已经消失,我现在可以照常访问互联网而无需身份验证。
我认为有帮助的是:
dhclient -r
释放 dhcp 租约删除所有 dhcp 租约文件
/var/lib/dhcp/
编辑
/etc/network/interfaces
以将 hwaddress 行更改为随机内容,重新启动网络并重复几次,最后恢复克隆的 mac 地址并重新启动网络。 这样做了几次,这让我认为网络或 dhcp 服务器中的某个缓存有问题。我相信不相关Ubuntu 弄乱了我的设置。
对于这种为了访问网络而给我们一些蹩脚的克隆 MAC 地址(意思是非常简单的数字)的政策,您有什么看法?他们不能只注册网卡真实 MAC 并用它来进行身份验证吗?
还有一个非常离题的
我建议安装时询问您要为窗口管理器和应用程序分配多少资源,然后安装所需数量的“funkiness”和“pimp-me-up-ness”,如果尝试使用这台计算机进行科学计算,并有大量内存专用于窗口定位或时髦动画,然后尝试禁用这个和那个,最终破坏一切,那就太可惜了。最后,能够在没有 x-server(运行级别 3)的情况下启动也很有用,可以测试 gnome 可能接管的许多东西。我还没能做到这一点。
答案3
在 Kubuntu 15.04 上,克隆的 mac 地址仍然无法通过 Network-Manager gui 工作。不过,它可以通过命令行工作,但上面列出的所有建议都对我不起作用,因为它已经过时了。
我将展示从各种来源和反复试验中发现的两种方法。
方法一
在这个例子中,我将使用“wlan0”作为我想要更改 mac 地址的无线接口,示例 mac 将是“AA:BB:CC:DD:EE:FF”,你只需要更改它以满足你的需要。
打开终端,然后逐行输入以下行:
sudo service network-manager stop
sudo ifconfig wlan0 down
sudo ifconfig wlan0 hw ether AA:BB:CC:DD:EE:FF up
sudo service network-manager start
您应该知道新的 MAC 地址。
方法二
如果您希望自动执行此操作,您可以使用此脚本并将其设置为在启动时自动运行。
首先安装 macchanger。
sudo apt-get install macchanger
在终端中运行此命令来查看 macchanger 的选项:
macchanger -h
现在 macchanger 已经安装完毕,让我们来构建脚本。
创建一个新的文本文件。
将以下代码放入文本文件中:
#!/bin/bash
RED=$(tput setaf 1 && tput bold)
GREEN=$(tput setaf 2 && tput bold)
STAND=$(tput sgr0)
echo $RED -------------------
echo $RED ENTER ROOT PASSWORD
echo $RED -------------------
sudo service network-manager stop
echo
echo $RED ------------------
echo $RED SHUTTING DOWN WIFI
echo $RED ------------------
echo $GREEN
sleep 1
sudo ifconfig wlan0 down
sleep 1
echo $RED --------------------
echo $RED CHANGING MAC ADDRESS
echo $RED --------------------
echo $GREEN
sudo macchanger -e wlan0
sleep 1
echo
echo $RED -------------------------
echo $RED WIFI RESTARTING
echo $RED PLEASE VERIFY THE CHANGES
echo $RED -------------------------
sudo ifconfig wlan0 up
sleep 1
sudo service network-manager start
echo $GREEN
ifconfig wlan0
echo $STAND
sleep 6
exit
将文件保存为 mymacchanger.sh
在文件管理器中右键单击该文件并授予其执行权限。
将此文件添加到您的自动启动程序或创建一个启动器并确保将启动器设置为使用终端窗口。
如果您使用的是 Kubuntu,则可以在上述脚本中的 #!/bin/bash 后添加以下行,以自动启动终端,而无需创建桌面启动器:
tty -s; if [ $? -ne 0 ]; then konsole -e "$0"; exit; fi
如果您没有 konsole 或使用的是不同的 ubuntu 发行版,您可以将行中的“konsole -e”替换为您使用的任何终端包。
平安。
答案4
我以前使用克隆的 MAC 地址时遇到过连接问题。我通过仅更改最后 3 个八位字节解决了该问题。例如,仅更改“AA:BB:CC:DD:EE:FF”中的“DD:EE:FF”。
前 3 个八位字节是制造商标识符其余的是随机生成的。不知何故,我无法更改制造商标识符。