歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 雙網卡PC+Ubuntu系統實現路由器

雙網卡PC+Ubuntu系統實現路由器

日期:2017/2/28 15:55:02   编辑:Linux教程

為了實現路由器功能,這裡需要使用NAT技術,詳細流程如下:

STEP 1

為機器裝好兩塊網卡。集成的或是獨立的無所謂。編輯/etc/network/interface,如下

auto eth0

iface eth0 inet static

address 192.168.X.XX

netmask 255.255.255.0

auto eth1

iface eth1 inet static

address 202.XX.XX.XXX

gateway 202.XX.XX.XXX

netmask 255.255.255.0

dns-nameservers XX.XX.XX.XX XXX.XX.XX.XX

其中我配置eth0為內網的網關,eth1為外網的接口。注意到內網不用設置gateway。還有外網的設定要由實際情況來設,如DHCP等,實際的DNS服務器等。我這裡的情況上靜態的IP,還要與MAC綁定,之前MAC沒有設好,卡了我很久。

STEP 2

讓機器實現簡單的轉發功能。

首先先讓它知道什麼包要給哪個網卡發出去,添加兩條路由表項:

#route add -net 192.168.X.0 netmask 255.255.255.0 eth0

#route add -net 202.XX.XX.0 netmask 255.255.255.0 eth1

意思是192.等等開頭的從eth0發出去,202.等等開頭的從eth1發出去。

其次要讓從一個網卡進來的包可以forward到另一個網卡上去,鍵入以下命令:

#echo 1 > /proc/sys/net/ipv4/ip_forward

同時修改/etc/sysctl.conf, 將net.ipv4.ip_forward=1的注釋去掉

這幾個命令可能寫成一個shell script開機運行,當然也可以手工操作。

STEP 3

到上面一步只是實現了路由器的功能,還沒有到NAT的實現。linux主機實現NAT是通過iptables命令實現的。

一般添加 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE即可;

當連接外網時,可以再添加 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Trouble Shooting

開始的時候,碰到好多問題。硬件搭好後就是上不了網,以下是我的排錯經驗:

網關上來回ping,看是否可以ping通內網與處網的IP地址,如果不通,檢查物理連接和基本設置,如MAC地址等,DNSserver是否寫對

如果可以,則問題出在網間轉發上,轉到上述STEP2檢查是否正確設置

Summary

1、雖然NAT路由功能實現,但是該路由的自適應性有待進一步研究;

2、為了更好地管理和配置該路由器,需要開發後台管理界面���目前的工作的基於eybuild實現。但是後期有

非常多的配置,所以仍需加油哦!

Copyright © Linux教程網 All Rights Reserved