计算机网络探究一之利用双网卡主机共享上网
綜述
大家好,這次我們需要實(shí)現(xiàn)的是實(shí)現(xiàn)雙網(wǎng)卡主機(jī)共享上網(wǎng),就是一臺(tái)主機(jī)通過(guò)連接另一臺(tái)可以訪問(wèn)外網(wǎng)的雙網(wǎng)卡主機(jī)來(lái)正常上網(wǎng)。所以我們需要兩臺(tái)機(jī)器來(lái)進(jìn)行測(cè)試,在這里我們用的是兩臺(tái)Ubuntu 14.04,其中一臺(tái)是單網(wǎng)卡,一臺(tái)是雙網(wǎng)卡。廢話不多說(shuō),行動(dòng)起來(lái)吧。
配置系統(tǒng)
博主使用了Vmware來(lái)安裝了兩臺(tái)Ubuntu主機(jī),一臺(tái)當(dāng)路由機(jī),名稱是Ubuntu Route,另一臺(tái)是客戶機(jī),名稱是Ubuntu Desktop,具體的網(wǎng)絡(luò)配置如下:
Ubuntu Route:
一個(gè)網(wǎng)卡eth0通過(guò)NAT方式來(lái)與外部主機(jī)共享上網(wǎng),這個(gè)網(wǎng)卡也就是VMnet8網(wǎng)卡,網(wǎng)段是192.168.231.0
另一個(gè)網(wǎng)卡eth1連接了一個(gè)自定義的僅主機(jī)模式的網(wǎng)卡VMnet2,網(wǎng)段是192.168.122.0
網(wǎng)絡(luò)適配器設(shè)置如下,eth0開(kāi)啟了DHCP,ech1沒(méi)有開(kāi)啟DHCP
Ubuntu Desktop:
一個(gè)網(wǎng)卡eth0連接剛才那個(gè)自定義的僅主機(jī)模式的網(wǎng)卡VMnet2,網(wǎng)段是192.168.122.0
好了,以上就是基本硬件的配置
設(shè)置IP
接下來(lái)我們?cè)O(shè)置一下Ubuntu Route的IP地址,修改 /etc/network/interfaces
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.122.4 netmask 255.255.255.0| 1 2 3 4 5 6 7 8 | auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.122.4 netmask 255.255.255.0 |
在這里,eth0因?yàn)槲覀冊(cè)赩Mware里面設(shè)置了DHCP,所以這里我們?cè)O(shè)置dhcp即可,eth1需要手動(dòng)配置一下,我們分配了 192.168.122.4 這個(gè)IP地址,當(dāng)然你可以隨意指定,子網(wǎng)掩碼如上,不需要寫(xiě)網(wǎng)關(guān),因?yàn)樗旧碜鳛橐粋€(gè)路由。
可以通過(guò)執(zhí)行如下命令來(lái)使之生效
sudo /etc/init.d/networking restart| 1 | sudo /etc/init.d/networking restart |
如果上述方法不行,則可以嘗試使用關(guān)閉網(wǎng)卡和開(kāi)啟網(wǎng)卡的命令。
sudo ifup eth0 sudo ifdown eth0| 1 2 | sudo ifup eth0 sudo ifdown eth0 |
eth1的開(kāi)啟和關(guān)閉同上
開(kāi)啟路由轉(zhuǎn)發(fā)
修改?/etc/sysctl.conf 文件,將
net.ipv4.ip_forward=1| 1 | net.ipv4.ip_forward=1 |
這一行取消注釋,代表開(kāi)啟了路由轉(zhuǎn)發(fā)功能。
也可以通過(guò)執(zhí)行
echo 1 > /proc/sys/net/ipv4/ip_forward| 1 | echo 1 > /proc/sys/net/ipv4/ip_forward |
命令來(lái)實(shí)現(xiàn)
設(shè)置iptables規(guī)則
iptables是非常重要的一個(gè)環(huán)節(jié),如果大家不熟悉,可以去搜相關(guān)資料了解一下。
執(zhí)行如下命令,來(lái)設(shè)置一下iptables規(guī)則,可以直接在命令行逐條執(zhí)行,也可以寫(xiě)成一個(gè)腳本來(lái)執(zhí)行。
iptables -F iptables -t nat -F iptables -t mangle -F iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE| 1 2 3 4 5 6 | iptables -F iptables -t nat -F iptables -t mangle -F iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
其中最后一條是最重要的,代表將數(shù)據(jù)包通過(guò)eth0網(wǎng)卡來(lái)轉(zhuǎn)發(fā),也是IP偽裝的一個(gè)常用方法,有了這條指令,從eth1網(wǎng)卡流經(jīng)的一些數(shù)據(jù)包可以通過(guò)eth0來(lái)轉(zhuǎn)發(fā),這樣就相當(dāng)于連通了兩個(gè)網(wǎng)卡,這樣與eth1網(wǎng)卡連接的主機(jī)便可以上網(wǎng)了。
客戶主機(jī)設(shè)置
因?yàn)榭蛻魴C(jī)的eth0連接了VMnet2網(wǎng)卡,而VMnet2網(wǎng)卡又與路由主機(jī)的eth1連接,我們只需要簡(jiǎn)單設(shè)置一下IP地址就好了。
修改 /etc/network/interfaces
auto eth0 iface eth0 inet static address 192.168.122.5 netmask 255.255.255.0 gateway 192.168.122.4 dns-nameservers 119.29.29.29| 1 2 3 4 5 6 | auto eth0 iface eth0 inet static address 192.168.122.5 netmask 255.255.255.0 gateway 192.168.122.4 dns-nameservers 119.29.29.29 |
這里很重要的一個(gè)設(shè)置就是網(wǎng)關(guān),設(shè)置成路由主機(jī)的IP地址。
設(shè)置完了同樣重啟一下網(wǎng)卡使其生效。
還可以選擇性設(shè)置下DNS服務(wù)器。
至此,所有配置都完成了,測(cè)試一下吧。
測(cè)試
我們?cè)诳蛻魴C(jī)里打開(kāi)瀏覽器,輸入隨意一個(gè)網(wǎng)頁(yè)測(cè)試一下。
嗯,客戶機(jī)可以正常上網(wǎng)啦,一切都是那么輕松加愉快!
如有問(wèn)題,歡迎留言交流~
轉(zhuǎn)載請(qǐng)注明:靜覓 ? 計(jì)算機(jī)網(wǎng)絡(luò)探究一之利用雙網(wǎng)卡主機(jī)共享上網(wǎng)
總結(jié)
以上是生活随笔為你收集整理的计算机网络探究一之利用双网卡主机共享上网的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android开发之2048安卓版
- 下一篇: 计算机网络探究二之利用PHP实现登录验证