Linux下使用netpas
Number
|
1#
Number 发表于 2007-09-23 21:22
Linux下使用netpas
什么是netpas,就是一个网络加速软件,可以使电信、网通、教育网、铁通等等之间的互访速度大大提高;而且对于教育网用户一个特别大的作用是它可以使你访问国际网,真好。注意:netpas是收费的,你也可以选择其他免费的软件替代
1,为什么要在linux下使用netpas,linux这个网络操作系统如果不使用internet等于暴殄天物,而且很多时候linux要连国际网下东西,而教育网用户使用国际网是个麻烦事,总是自己找那个极不稳定的代理也是很累的事情。所以如果能让linux也用上netpas的服务,嘿嘿。其中妙处自己才能体会。简单的说,netpas给我们提供了一个稳定、透明的代理 2,实现思路。当然首先要让netpas运行,而netpas目前只支持windows,所以,你先得有windows环境。一个思路是用wine,一个是用虚拟机。我觉得现在虚拟机发展不错,所以就选择了虚拟机这个思路。用虚拟机跑windows,然后在windows下运行netpas,最后在windows下开启代理服务,让linux走windows的线路出去,就能让linux也“享受”netpas的服务了。 3,虚拟机的选择及上网方式。这个没什么好多说的,看自己的喜好,我用virtualbox 1.4.。至于上网方式,nat是不行的,必须给主机和客户机都分配一个独立的地址,所以我选则了用桥接的方式。 4,虚拟机桥接的实现。这个是难点。大家可以参考一下网上的文章,很惭愧,我并没有搞懂原理,只是照葫芦画瓢,下面讲讲我这个瓢是怎么画出来的: 4.1 去官方 http://www.virtualbox.org 下载对应你机器的包,我下载的是 virtualbox_1.4.0-21864_Debian_etch_i386.deb 装上。会提示缺少包,用 apt-get -f install 即可解决。 4.2 安装编译工具及相关包。在安装过程中,要编译 VirtualBox 所用的内核模块。为此,你需要准备基本的编译工具及包,你可以使用下列指令来安装它们: sudo apt-get install build-essential linux-headers-`uname -r` 实际上我还安装了内核源代码,不知道是否必要? 4.3 现在,转到所保存 VirtualBox 安装包的目录,通过下面的指令来安装它: sudo dpkg -i virtualbox_1.4.0-21864_Debian_etch_i386.deb 在安装的过程中,VirtualBox 会要求你接受许可协议。另外,安装程序也会创建 vboxusers 用户组,并编译所需的内核模块。 4.4 现在,你还不能启动 VirtualBox,因为你的当前用户还不属于 vboxusers 用户组。你可以使用下面的指令来将当前的用户(请使用你的用户名代替指令中的“youruser”)添加到 vboxusers 用户组中: sudo adduser youruser vboxusers 4.5 在基于 Debian 和 Ubuntu 的系统上,首先要安装含有建立虚拟网络设备 ( TAP interfaces ) 的工具 uml-utilities 和桥接工具 bridge-utils: sudo apt-get install uml-utilities sudo apt-get install bridge-utils 为了使你的虚拟机能够访问网络接口,你必须将运行虚拟主机的用户的用户名(通常是你的ubuntu登录用户名)添加到uml-net用户组(请用你的用户名替换其中的“vboxuser”): sudo gpasswd -a vboxuser uml-net 注意:为了使改动生效,请重新启动你的电脑。 4.6 向你的 Debian 或者 ubuntu 操作系统描述你要添加的虚拟网络设备,编辑 /etc/network/interfaces,下面给出我的: # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet manual up ifconfig eth0 0.0.0.0 promisc up auto eth0 auto tap0 iface tap0 inet manual up ifconfig $IFACE 0.0.0.0 up down ifconfig $IFACE down tunctl_user well(这个改成你的用户名) auto br0 iface br0 inet static address 你的ip netmask 255.255.255.0 network 你的ip,最后一组改为0 broadcast 你的ip,最后一组改为255 gateway 你的网关的ip (如果你用的dhcp,上面6行请改为 iface br0 inet dhcp ) bridge_ports all tap0 4.7 首次使用需要激活刚才建立的虚拟网络接口和网络桥: sudo /sbin/ifup tap0 sudo /sbin/ifup br0 这个步骤只需要做一次,下次主机重新启动时,这个接口和桥将自动激活 5,让 virtualbox 使用这个虚拟网络接口。启动 virtualbox,在主界面上选中要使用刚才建立的虚拟网络接口tap0的虚拟机,点“设置”,在弹出的窗口中选“网络”,选中其中一块网卡(通常为 “网络适配器 0”),选中“启用网络适配器”,“连接到”后面选 "Host Interface",选中“接入网线”,然后在“主机网络界面名称”中填入刚才建立的虚拟网络接口的名字 "tap0",确定。 6,配置虚拟机网卡地址。这一步曾经难倒我了,其实很简单,和主机的br0一样的配置,只是ip改一个不重复的即可。子网掩码、网关、DNS 都不变,与br0的设置一样。 7,此时,主机和客户机就可以通讯了。但注意要调整双方的防火墙,使主机和客户机能够互访。(可以关闭客户机的防火墙) 8,关键一步。linux主机必须开启NAT才能让windows guest上网。注意到第7步,windows客户机还只是能和linux主机通讯,并不能上网。要让windows上网,在你的linux主机iptalbes规则中加入: echo -n "Setting up my NAT rules..." INTIF=br0 EXTIF=tap0 echo 1 > /proc/sys/net/ipv4/ip_forward # set forwarding and nat rules ${IPTABLES} -A FORWARD -i $EXTIF -o $INTIF -j ACCEPT ${IPTABLES} -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT ${IPTABLES} -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE echo " done." 这里主要是注意内部网络接口是br0,而外部接口是tap0,重启防火墙,OK 9,至此,我们得到了一个桥接上网的虚拟机。接下来就实现我们的让linux享受netpas服务的梦想。 10,当然首先是在windows下安装netpas软件,然后,掏钱吧,一个月15元,我觉得值。当然你也可以用其他免费的类似软件 11,接下来,在windows下安装一个代理服务软件,我推荐CCProxy。装好后,进行适当配置,让linux主机能享受CCProxy的服务。具体配置一目了然,也可以参考网上文章。 12,最后,在linux主机中设置使用代理,firefox xchat 都有相应的设置。其他软件也基本都有。填入windows客户机的ip和端口(注意是在CCProxy里面设置的端口),就可以使用windows的代理服务了。当然,很多文本软件比如apt gpg wget 等使用代理是通过设置 http_proxy环境变量或者修改自己的配置文件来实现的。给出一个参考: export http_proxy=http://xxx.xxx.xxx.xxx:808 13,终于,看到胜利之光了。在windows下开启netpas和CCProxy,在linux下设置好代理,尽情享受netpas给你带来的快感吧。祝好运。 14,说明。另外还有别的实现方式也可以考虑,比如internet连接共享等。或者用其他的网络拓扑来实现。大家可以进一步补充。eth0在全过程中似乎没什么作用,我把它设置为混杂(promisc)模式,不知道需要否。特别注意防火墙,如果不怕入侵,就关闭主机和客户机双方的防火墙吧! 15,感谢。 |