共享上網

此頁由 Linux Wiki用戶Chenxing 於 2012年7月10日 (星期二) 04:49 的最後更改。

出自Linux Wiki

提示:此文已超过 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共享上網

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

反馈与讨论

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