如何将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.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.com解析为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配置为路由器(二)

 

 

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值