共享上网
出自Linux Wiki
家用路由器可以方便地让多台设备共享一个互联网连接上网。而在没有路由器时,用一台可同时接入两个网络的电脑,也可替代路由器实现共享上网。此时该电脑所扮演的角色与路由器相似,主要实现的是网络地址转换(即 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
有线网卡
使用双绞线连上就行(应注意所使用的网线与普通网线不同,接水晶头时两头的线顺序应是相同的)。
路由器
路由本身具备网络共享功能,如果因故不用路由器的该功能(如有时需要共享某台电脑上的 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
接着用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 连接的网卡名
此时,客户机应该已经能上网了。