如何将ubuntu配置为路由器
1? 硬件基礎
首先,需要具備的硬件條件是一臺具有兩個或兩個以上網卡的Ubuntu設備,常見的比如一些軟路由設備,常規主機一般只有主板上自帶的一個網卡,筆記本一般有一個無線網卡以及一個有線網卡。如果當前設備網卡不夠,可以購買USB網卡或者PCIe網卡來進行配置。我使用的是一個系統為Ubuntu14.04的六網卡設備。
2? 網絡環境
在配置交換機前需要明確當前網絡環境,最重要的就是需不需要撥號上網。舉個例子,假設我們需要配置的Ubuntu路由器可以通過連到另一臺路由器直接上網,那么就可以省去撥號這一步。我這邊的環境需要通過VPN撥號上網,因此需要先安裝相應的VPN軟件包以及撥號器。
3? Ubuntu路由器聯網
上一步提到如果有其他路由器可以直接上網,那么將ubuntu路由器連接到可以上網的路由器即可。若需要VPN撥號,以浙大VPN為例,它使用xl2tp協議,需要先安裝兩個包。
sudo apt install xl2tpd sudo apt install ppp安裝完成后,下載相應的撥號器,可在網上搜索對應VPN使用的撥號器,我這邊使用了98論壇中的一個Linux VPN撥號器。
sudo vpn-connect -c //設置賬號密碼 sudo vpn-connect //VPN撥號 sudo vpn-connect -d //斷開VPN我連接到了"eth0"網卡,設置好靜態IP、子網掩碼、網關、DNS服務器后(下一步會說),通過VPN撥號器上網,因此我此時連接外網的網卡(作為WAN口)為"eht0"。(通過ifconfig命令可查看當前設備所有網卡,有些名字不一定是ethx這種格式的)
4? 網絡配置
剛剛連接的WAN口以及內網的LAN口需要配置為靜態IP,此處我將eth5設置為內網的網卡。
sudo vim /etc/network/interfaces在該文件中添加
auto eth0 iface eth0 inet static address 10.14.113.234 netmask 255.255.255.0 gateway 10.14.113.1auto eth5 iface eth5 inet static address 192.168.20.1 netmask 255.255.255.0 gateway 192.168.20.1配置好靜態IP、子網掩碼、網關地址后,需要設置DNS服務器地址(普通網絡的DNS服務器可從網上搜索,例如8.8.8.8等)。網上很多設置DNS服務器的方法是在/etc/resolv.conf文件中添加DNS服務器地址,但是直接修改這個文件雖然當時有用,但是重啟后又會被覆蓋掉,搜索了一些資料后發現需要修改/etc/resolvconf/resolv.conf.d/base這個文件,當時我找半天發現根本沒有resolv.conf.d這個文件夾,更別說base這個文件了,這是因為沒有安裝resolvconf軟件包,如果安裝完以后還沒有這個文件以及文件夾,直接手動創建即可
sudo apt install resolvconf sudo vim /etc/resolvconf/resolv.conf.d/base在這個文件中添加DNS服務器(可添加多個),不同區域用的DNS服務器不同,可以通過DNS選優軟件選擇最佳DNS服務器,我這邊用的DNS服務器是固定的。DNS服務器的功能就是解析域名,如將www.baidu.com解析為IP地址,如果后面發現可以通過ip地址訪問外網卻不能通過域名訪問外網,說明DNS服務器設置有問題。
nameserver 10.10.0.21保存base文件后執行以下語句
resolvconf -u重啟網絡使修改生效
sudo /etc/init.d/networking restart5? 啟用IP包轉發
sudo vim /etc/sysctl.conf打開文件后將net.ipv4.ip_forward=1前面的注釋去掉(vim打開文件后可輸入/net.ipv4.ip_forward查找該語句位置)。然后返回terminal,輸入以下命令使修改生效
sudo sysctl -p6? 添加路由表
sudo route add -net 192.168.20.0 netmask 255.255.255.0 dev eth5 sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o eth5 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i eth0 -o eth5 -j ACCEPT第一句話是給eth5添加192.168.20.x網段的路由表,下面兩句話是啟用eth0和ppp的nat功能,因為網上很多教程沒有vpn,所以不需要添加ppp的nat功能,當使用vpn連接時就需要添加,沒添加的話eth5下面帶的主機就沒法上網。最后兩句話是將eth0與eth5關聯起來。
由于系統重啟后上面很多指令可能會失效,因此可以在指令最上方加上VPN連接指令sudo vpn-connect,然后寫成一個.sh腳本文件,并將其設置為開機啟動即可。
7? Ubuntu路由器下的主機
由于上面我沒有在ubuntu路由器中添加DHCP服務器,所以它沒辦法給下面的主機分配IP地址,需要下面的主機設置靜態IP地址,設置為192.168.20.X即可,另外該主機也需要添加DNS服務器,操作都跟第四步一樣。配置完重啟網絡或系統后即可上網。
可能有人會問那eth5不是只有一個網口嗎,怎么給多個主機同時上網呢?可以使用交換機,將eth5與需要上網的主機連接到同交換機上即可供多個主機上網。獨立網卡都只能在各自的網段運作嗎?不是的,可以通過bridge功能將其配置在同一網段,最終達到路由器效果。詳情可參考:?如何將ubuntu配置為路由器(二)
?
?
總結
以上是生活随笔為你收集整理的如何将ubuntu配置为路由器的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Java-Anagram方法
- 下一篇: 【华为OD机试真题 python】竖直四
