Windows下的共享上网比较简单,选中ADSL连接,右键属性,将共享选上即可。在ubuntu下,也需要设置,但是使用iptables进行IP伪装。或者使用firestarter之类的图形界面的工具。
ubuntu下用ADSL拨号,需要在终端输入sudopppoeconf,然后根据提示,自动检测网卡和ADSL拨号modem,如果找到,则提示输入用户名和密码,注意将用户名前面的username几个英文字母去掉。
以后使用sudopondsl-provider拨号上网,使用sudopoffdsl-provider下线。sudoplog查看拨号日志。
通过系统->系统管理->网络来配置网卡IP,或通过命令行方式。
网卡IP和配置放在/etc/network/interfaces,可以用超级用户进行编辑。
对于无线网卡,配置同上。
下面摘自ubuntu共享上网的帮助。
IP伪装的目的是为了允许您网络上那些有着私有的、不可路由的IP地址的机器可以通过做伪装的机器访问Internet。来自您私有网络并要访问Internet的传输必须是可以操作的,也就是说回复要可以被路由回来以送到发出请求的机器上。要做到这一点,内核必须修改每个包源IP地址以便回复能被路由回它这里,而不是发出请求的私有IP地址,因为它们对于Internet来说是不存在的。Linux使用ConnectionTracking(conntrack)来保持那个连接是属于哪个机器的,并相应地对每个返回包重新做路由。发自您私有网络的流量就这样被伪装成源于您的网关机器。这一过程在Microsoft文档中被称为Internet连接共享。
这可以用单条iptables规则来完成,也许基于您网络配置来说会有一些小的差异:
sudoiptables-tnat-APOSTROUTING-s192.168.0.0/16-oppp0-jMASQUERADE
上述命令假设您的私有地址空间是192.168.0.0/16,您与Internet相连的设备是ppp0。语法分解如下所示:
*-tnat--该规则将进入nat表
*-APOSTROUTING--该规则将被追加(-A)到POSTROUTING链
*-s192.168.0.0/16--该规则将被应用在源自指定地址空间的流量上
*-oppp0--该规则应用于计划通过指定网络设备的流量。
*-jMASQUERADE--匹配该规则的流量将如上所述"跳转"(-j)到MASQUERADE(伪装)目标。
在过滤表(缺省表,在那里有着大多数或全部包过滤指令)中的每条链(chain)都有一个默认的ACCEPT策略,但如果您还在网关设备上设置防火墙,那么您也许还要设置DROP或REJECT策略,这时您被伪装过的流量还需要被FORWARD链(chain)中的规则允许才能正常工作:
sudoiptables-AFORWARD-s192.168.0.0/16-oppp0-jACCEPT
sudoiptables-AFORWARD-d192.168.0.0/16-mstate--stateESTABLISHED,RELATED-ippp0-jACCEPT
上述命令将允许通过从您局域网到Internet的所有连接,这些连接所有的相关流量也都返回到发起它们的机器。
有很多工具可以帮助您构建一个完整的防火墙,而不需要iptables的专业知识。偏好图形界面的,Firestarter非常流行也易于使用,fwbuilder则非常强大而且其界面对于用过诸如CheckpointFireWall-1商业防火墙工具的管理员来说相当熟悉。如果您偏好有着纯文本配置文档的命令行工具,Shorewall是个非常强大的解决方案,可以帮您为任何网络配置一个高级防火墙。如果您的网络相对简单,或如果您没有网络,那么ipkungfu将给您一个无需配置就可以工作的防火墙,也允许您通过编辑简单友好的配置文件来轻松设置更高级的防火墙。另一个感兴趣的工具就是fireflier,被设计成桌面防火墙应用程序。它由一个服务器(fireflier-server)和可选的GUI客户端(GTK或QT)组成,操作就象Windows中许多流行的交互式防火墙应用程序一样。
下载本文示例代码