继续我的Ubuntu之旅 (1)

自从2008年6月心血来潮用上了Ubuntu, 到现在两年时光飞逝. 开始的时候为个输入法焦头烂额了好久(8.04 LTS), 后来又驱动不起我的稀有华硕声卡, 后来不知什么时候”想通了”回去尝鲜Win7, 过了一年多又换回Ubuntu(原因是机子鬼使神差的装不上Win7了, Win也不会给出详细的Log来供你分析错误)…
8.04到10.04, LTS到LTS的跨越, 升级的也绝不仅仅是版本号. 7秒的开机速度(SSD)和插到别的机子上引导, 驱动全部装好, 都是Win很难达到的优势. 某次驱动起了一块难缠的3G网卡, 事后别人问起却忘记了具体方法, 方觉早应该把这样一些细节记录下来.

以下便是这次用Ubuntu数月以来又学到的一部分”新”东西, 已经单独开文说过的这里也不再赘述了.

先给个目录:
1, terminal显示GBK/GB2312等编码的文本
2, nvidia驱动和开源驱动/mesa之间的恩怨情愁
3, 多语言界面
4, 共享网络给别人用
5, 防御arp攻击

1, terminal显示GBK/GB2312等编码的文本

比如telnet登陆白云黄鹤论坛

显示出满屏幕的菱形里面套问号, 让人不禁内牛满面. 解决方法:

这样就很和谐了~~
此外,xrgsu提示的乱码服务器错误信息,也可以用编码GB2312正常显示. 唯有一点不解,GB2312正常显示,而GBK却乱码…

2, nvidia驱动和开源驱动/mesa之间的恩怨情愁…

前面提到, 我把自己硬盘当移动硬盘启动各种杯杯具具的本本, 其中有台n卡机, 开源驱动卡得内牛满面, 于是去NVIDIA官网下了sh格式的驱动来安装. 安装倒是成功了, 但是再把电脑插在其他本本上时, low-graphics mode的讨厌对话框就那么不请自来了…
nvidia新版驱动的sh文件有提供nvidia-uninstaller命令,可惜用了之后重启,照样 low-graphics. 围观了一下/etc/X11, 发现装载nvidia模块的xorg.conf仍然在世, 于是:

重启进入了正常graphics mode, 然而glx插件就那么杯具掉了(运行glxgears出现错误: Error: couldn’t get an RGB, Double-buffered visual, 以及不能加载glx插件之类的), 纠结许久, 在各位大牛(@BOYPT @liangsuilong 等)的提醒下, 找到了罪魁恶首: /usr/lib/xorg/modules/extensions/libglx.so 是到 /usr/lib/xorg/modules/extensions/libglx.so.195.36.24 的软链接, 而后者是n卡驱动的内容…
察看 /var/log/Xorg.0.log 可以找到装载”glx”插件失败的记录…
于是, reinstall/reconfigure数个包, 算是找到了需要处理的内容, 结合后来在国外论坛上查到的回答, 我最终做了这么个脚本:
/usr/local/bin/nvremove:

需要卸载n卡官方驱动时, 运行此脚本, 方能使xorg自己的各功能和谐工作…

3, 多语言界面

早先用Ubuntu 8.04/8.10时, 如果系统语言是zh_CN.UTF-8(中文简体), 只需要运行下面的命令即可打开英文的gedit:

然后在Ubuntu 10.04里, 这个命令失效了…
经过很长时间的纠结, 最后偶然发现原来是环境变量的处理发生了变化, 使用这个命令即可达到效果:

不过openoffice.org仍然用以前的环境变量决定界面语言, 修改环境变量LC_ALL也可以起到同样的作用.

4, 共享网络给别人用

Win下的”Internet 连接共享”总是病秧秧的, 某些时候莫名其妙就要双方设置IP地址, 和对方指定网关/DNS才能正常使用NAT上网.
不想Linux下的类似操作更加复杂(一开始这么觉得), 还要写好长的iptables. 后来写了个脚本, 一切都和谐了
首先要安装dnsmasq提供DHCP/DNS服务:

然后修改它的配置文件: /etc/dnsmasq.conf
我的配置文件有效行(去除注释之后)如下:

其中 192.168.2.1 是我自己在NetworkManager里设置的一个ad-hoc网络的IPv4固定地址.
修改完成后重启dnsmasq服务:

然后新建脚本 /usr/local/bin/proxy:

使用示例:

效果就是把eth0的网络连接分享到wlan0网络, 这样ad-hoc方式连接到此计算机的用户就直接可以正常访问网路啦!

5, 防御arp攻击

校园网里各种arp欺骗满天飞, 让整个网络呈现一种支离破碎感… 所幸找到了如下的方法来”以毒攻毒”:
在此之前先安装libnet:

然后编译安装 arpoison(下载: http://www.arpoison.net/ 进入后下载 For libnet 1.1.x的版本)

然后新建脚本: /etc/arpd

各mac地址可以在网路正常的时候使用下面的命令找到:

参考资料: http://hi.baidu.com/yk103/blog/item/f39e253f9d6aeeed55e72361.html
还有一些参考资料因为时间过久已经忘记,因此没有列出,在此表示非常抱歉.

15 thoughts on “继续我的Ubuntu之旅 (1)”

        1. 这不废话=.= 我的意思是这两个配合着用,明显我是为了临时把自己某种网分给另一个网,然后直接用.包括可以netboot引导别人

        2. 至于School和Home, 我不这么用我早疯了… 我现在一会3G分享给eth0, 一会eth0分享给wlan 一会3G分享给Wlan 您就慢慢建立profile吧….

  1. LC_CTYPE影响的不是语言而是编码,如果你设置成ISO8859,但是语言是zh_CN就杯具了;但是如果你的系统只有UTF8编码(默认如此),那是怎么改都没用,libc给出警告说fallback to xxx。

    1. 囧,PT牛的评论被自动当spam了…
      话说我也找到这里了,但是不太对,因为我LC_CTYPE修改也不影响界面语言..

Leave a Reply

Your email address will not be published.