如何将ubuntu配置为路由器

编程知识 更新时间:2023-05-01 06:12:44

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.1

auto 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解析为IP地址,如果后面发现可以通过ip地址访问外网却不能通过域名访问外网,说明DNS服务器设置有问题。

nameserver 10.10.0.21

保存base文件后执行以下语句

resolvconf -u

重启网络使修改生效

sudo /etc/init.d/networking restart

5  启用IP包转发

sudo vim /etc/sysctl.conf

打开文件后将net.ipv4.ip_forward=1前面的注释去掉(vim打开文件后可输入/net.ipv4.ip_forward查找该语句位置)。然后返回terminal,输入以下命令使修改生效

sudo sysctl -p

6  添加路由表

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配置为路由器

本文发布于:2023-04-23 09:42:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/2ae07f773584bec7345eab84f0784de6.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:路由器   如何将   ubuntu

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 98234文章数
  • 25134阅读数
  • 0评论数