共享上網
從 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 连接的网卡名
此時,客戶機應該已經能上網了。