共享上网

出自Linux Wiki

在2010年8月21日 (六) 05:56由Chenxing (讨论 | 贡献)所做的修订版本
(差异) ←上一修订 | 最新修订 (差异) | 下一修订→ (差异)

本文介绍利用一台可同时接入两个网络的(如局域网和Internet)、装有Linux系统的电脑,让局域网的其它电脑共享上网。较为典型的应用是家中仅一台接入Internet,利用该方法,可使家中的其它电脑/手机通过局域网经过该电脑接入互联网。在Windows XP中,该功能被称为设置家庭或小型办公网络共享Internet连接

实现该功能需要两步:先将有Internet连接的电脑接入两个网络,再设置连接共享。设置方法总得来说比较简单。

准备网络

先要把电脑同时接入两个网络,接入Internet的方法自不必说,而根据硬件条件的不同,接入家庭局域网的方式大概有几种可能:通过路由或交换机连接的家庭局域网、通过无线网卡互联实现的点对点无线局域网、通过有线网卡间的对联实现点对点的有线局域网,各种情况处理的细节略有不同:

通过路由连接的家庭局域网,一般可以直接用路由的共享功能。如果因故不用,就当它做交换机好了,只要接好网线,无需另外设置。

如果要用无线网卡建立点对点无线局域网,可利用网卡的Ad-hoc模式,在Linux中可使用Network-Manager设置。有线网卡点对点无线局域网最好配置,使用双绞线连上就行(应注意所使用的网线与普通网线不同,接水晶头时两头的线顺序应是相同的)。

网络物理连通之后,即可设置IP等,推荐使用Linux的NetworkManager或Windows设置,需要将各机器的IP位一同一区段内,网关设置为接有Internet的计算机的局域网IP,DNS设为接有Internet的计算机所使用的DNS(在/etc/resolv.conf中)。如可利用Network-Manager将有Internet的计算机局域网IP设为192.168.0.1,并在连接的路由设置处勾上“仅将此连接用于相应的网络上的资源“及”忽略自动获取的路由”;其它电脑的则将局域网IP设为192.168.0.x(x只要不一样就行),子网掩码 255.255.255.0,网关设为192.168.0.1,DNS按前述说明配置。

如果不想逐个手动设置IP,或某些移动设备不能手动设置IP,也可在“服务器”电脑上架设dhcp服务器,让dhcp服务器发出的信息与上述说明一致即可。如果是通过路由连接,也可设置路由的DHCP服务器。

物理连接相同,各终端的IP设置好,家庭局域网就建成了,可以彼此ping一下,看看通了没~

设置连接共享

网络建好后再设置连接共享就很容易了,下面介绍一种经实验可行的来自网上的方法,该方法是在服务器电脑上建立了NAT网关[1]

首先在服务器上执行如下命令,打开IP转发:

# echo "1" > /proc/sys.Net/ipv4/ip_forward
Hint.gif
提示:
上面这个命令也可以通过修改/etc/sysctl.conf实现,在文件中加上或修改:net.ipv4.ip_forward=1

接着用iptables设置NAT网关(注意把eth0换成连接到Internet的网卡名称,如ppp0):

iptables -F 
iptables -P INPUT ACCEPT 
iptables -P FORWARD ACCEPT 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #打开NAT

现在到客户机上看看,应该已经能上网了~

个人工具
简体繁体转换