共享上网

出自Linux Wiki

在2012年7月10日 (二) 04:49由Chenxing (讨论 | 贡献)所做的修订版本
(差异) ←上一修订 | 最新修订 (差异) | 下一修订→ (差异)
提示:此文已超过 11 年(4279 天)未更新,如发现内容过时或有误,欢迎改进:)

家用路由器可以方便地让多台设备共享一个互联网连接上网。而在没有路由器时,用一台可同时接入两个网络的电脑,也可替代路由器实现共享上网。此时该电脑所扮演的角色与路由器相似,主要实现的是网络地址转换(即 NAT)。这一功能在 Windows XP 中被称为设置家庭或小型办公网络共享Internet连接

用 Linux 系统实现该功能,需要两步:先在本地设备间建立局域网,再通过该局域网连接共享 Internet。

目录

建立本地网络

物理连接

首先设法在设备间建立物理网络连接。依照连接方式的不同,物理连接建立方式也不尽相同:

无线网卡

需要利用无线网卡的 Ad-hoc 或 Master 模式建立无线局域网。

对 Linux 桌面用户来说,直接通过 Network-Manager 的“用作热点”功能即可建立一个无线热点,此时的无线网络为 Ad-hoc 网络。如果想通过命令行操作,可输入:

iwconfig wlan0 mode ad-hoc essid 接入点名称 key 1234567890
# 请修改 wlan0 为无线连接的名称
# 默认使用WEP加密,如无需密码,可去掉 key 1234567890
Note.gif
注意:
点对点的(Ad hoc)无线网络的架设最简单,且可用于多种环境,但目前 Android 设备无法连接到点对点无线网络。必须采用 Master 模式(即将电脑做为一个无线接入点)。
Hint.gif
提示:
如果需要因为种种原因一定要建立一个无线接入点(Access Point),就需要将网卡设为 Master 模式。不幸的是,并非所有网卡的 Linux 驱动都支持该模式。[1]
Note.gif
注意:
WEP网络并非绝对安全,但架设更安全的 WPA 网络则较复杂。[2]

有线网卡

使用双绞线连上就行(应注意所使用的网线与普通网线不同,接水晶头时两头的线顺序应是相同的)。

路由器

路由本身具备网络共享功能,如果因故不用路由器的该功能(如有时需要共享某台电脑上的 3G 网络),也无需对路由做另外设置,只需将各设置连接至路由器的局域网接口即可。

IP

网络物理连通之后,即可设置IP。桌面用户可以使用NetworkManager方便地完成该任务。IP设置的要点是:

对于已有 Internet 连接的计算机:

  • IP 和子网掩码设置无特殊要求(如 IP 可为 192.168.0.1,网络掩码 255.255.255.0)
  • 如通过Network Manager设置,在路由设置处勾上“仅将此连接用于相应的网络上的资源“及”忽略自动获取的路由”

对于想共享上网的设备:

  • 确保IP与有 Internet 的计算机位于同一网段内 (如 192.168.0.2 ,网络掩码 255.255.255.0)
  • 网关设置为接有Internet的计算机的局域网IP(前例中是 192.168.0.1)
  • DNS设为接有Internet的计算机所使用的DNS(在已连接Internet计算机的/etc/resolv.conf中)

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

设置好后,可以彼此ping一下,看看通了没。如果已通,就可设置连接共享了。

设置连接共享

网络建好后再设置连接共享就很容易了,只需在有 Internet 连接的电脑上建立NAT网关[3]

首先在服务器上执行如下命令,打开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
#                                 ^^^^ 将其改为有 Internet 连接的网卡名

此时,客户机应该已经能上网了。

参考资料

  1. Ubuntu WifiDocs/MasterMode
  2. Gentoo Wiki: Wireless/Access point
  3. linux 双网卡 NAT共享上网

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
个人工具
简体繁体转换