admin管理员组

文章数量:1530517

2024年7月16日发(作者:)

ubuntu双网卡设置内外网上网问题,实现路由转发

ubuntu双网卡设置内外网上网问题,实现路由转发功能

首先,我们要在一台装有ubuntu系统的电脑上再装上一块网卡,

使得可以通过配置ip、子网掩码等实现路由转发。

接下来要做的就是手工设置ip地址之类的了。

1、关掉ubuntu系统提供的network-manager,使用命令就是:

关闭network-manager命令:/etc/init.d/network-manager

stop

关闭之后你就会发现你原来通过编辑连接来配ip的方法不能用了。

2、在终端配置两个网卡的ip、netmask、getway等等。

在这里,我们首先要明白两个网卡的作用。

eth0:该网卡是电脑原装的网卡,我们将它用作连接外网的网卡。

eth1:该网卡是我们新加的网卡,我们将它作为连接内网的网卡。

安装了双网卡的电脑处于一个中间位置,它所装有的两个网卡的

功能就是将内网网段发来的数据包转发到外网网段去,因为内外网不

在一个网段,如果不经过中间的包装修改就无法与外面发起连接。

现在,进入正题,我们就来设置两个网卡的地址。

使用命令:

root@xiaoxiao-Lenovo-G470:~# cd /etc/network

root@xiaoxiao-Lenovo-G470:/etc/network# gedit interfaces

打开interfaces文件以后,

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

address 172.22.112.74 (外网网卡ip地址)

netmask 255.255.255.0 (外网子网掩码)

network 172.22.112.0 (网络)

broadcast 172.22.112.255 (广播地址)

auto eth1

iface eth1 inet static

address 192.168.0.1 (内网网卡ip地址)

netmask 255.255.255.0 (内网子网掩码)

network 192.168.0.0 (网络)

broadcast 192.168.0.255(广播地址)

自己的笔记本电脑也要设置新的ip地址,设置网段应属于内网网

段。

auto eth0

iface eth0 inet static

address 192.168.0.2(网卡ip地址)

netmask 255.255.255.0 (外网子网掩码)

network 192.168.0.0 (网络)

broadcast 192.168.0.255 (广播地址)

getway 192.168.0.1 (网关地址,因为你要将的数据包从192这

个网段发出去到172这个网段,要经过eth1网卡的转发,所以设置

eth1ip地址网关,发出去的数据包就会通过eth1发出去。)

3、设置完成之后就重启网络,使设置生效。

重启network-manager命令:/etc/init.d/networking restart

4、可以输入命令:route -n查看你所配置的是否成功。

5、用交叉线连接网卡eth1和你的笔记本电脑,之后用你的电脑

ping 192.168.0.1看是否ping通。

用双网卡电脑ping 192.168.0.2和172.22.112.1看是否ping 通。

最后,用你的电脑ping 172.22.112.1看是否ping通,如果都成

功了说明实现了转发。

接下来,要做的就是搭建NAT,实现地址转换。

1、首先打开双网卡机器的路由转发功能。

ech"1">/proc/sys/net/ipv4/ip_forward #打开ip转发,1表示

打开,0表示不转发。

也可以进入到ip_forward下查看,若是0则改为1。

2、依次输入下列命令:

root@ubuntu1-Lenovo:~# iptables -F (清除所有ip规则)

root@ubuntu1-Lenovo:~# iptables -P INPUT ACCEPT( 打开

接受功能)

root@ubuntu1-Lenovo:~# iptables -P F ORWARD ACCEPT

(打开发送功能)

root@ubuntu1-Lenovo:~# iptables -t nat -A POSTROUTING

-o eth0 -j MASQUERADE

3、查看当前ip规则:iptables -t nat -L POSTROUTING

iptables -t nat -D POSTROUTING –verbose

你就会看见你添加的ip规则。

这样,内网机器就可以共享上网了,你可以打开红言网校试试

看~~

接下来,我们要做的就是构建网桥了,使内外网建立链接。

1、默认Ubuntu是没有网桥设置工具(brctl)的。你需要安装

bridge-utils。下载好安装包之后,要自行安装。

有线安装软件:sudo apt-get install 软件名

离线安装软件:dpkg -i *.deb

2、其次我们要做的就是删除之前我们设置的ip规则。

删除当前ip规则:iptables -t nat -D POSTROUTING 1

查看当前ip规则:iptables -t nat -D POSTROUTING –verbose

这时,你会发现什么都没有了。

3、输入命令:

root@ubuntu1-Lenovo:/home/ubuntu1# brctl addif br0

eth0(删除原来网卡eth0的配置)

root@ubuntu1-Lenovo:/home/ubuntu1# brctl addif br0

eth1(删除原来网卡eth1的配置)

root@ubuntu1-Lenovo:/home/ubuntu1#

up(给网桥分配ip地址)

ifconfig br0

172.22.112.74 netmask 255.255.255.0 broadcast 172.22.112.255

root@ubuntu1-Lenovo:/home/ubuntu1# ifconfig

br0 Link encap:以太网 硬件地址 10:78:d2:fa:19:13

inet 地址:172.22.112.74 广播:172.22.112.255 掩

码:255.255.255.0

inet6 地址: fe80::1278:d2ff:fefa:1913/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1

接收数据包:45 错误:0 丢弃:0 过载:0 帧数:0

发送数据包:7 错误:0 丢弃:0 过载:0 载波:0

碰撞:0 发送队列长度:0

接收字节:10850 (10.8 KB) 发送字节:578 (578.0 B)

eth0 Link encap:以太网 硬件地址 10:78:d2:fa:19:13

inet6 地址: fe80::1278:d2ff:fefa:1913/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1

接收数据包:23783 错误:0 丢弃:185 过载:0 帧数:0

发送数据包:2360 错误:0 丢弃:0 过载:0 载波:0

碰撞:0 发送队列长度:1000

接收字节:5755235 (5.7 MB) 发送字节:176805 (176.8 KB)

eth1 Link encap:以太网 硬件地址 74:ea:3a:6a:d6:8f

inet6 地址: fe80::76ea:3aff:fe6a:d68f/64 Scope:Link

UP BROADCAST MULTICAST MTU:1500 跃点数:1

接收数据包:11503 错误:0 丢弃:0 过载:0 帧数:0

发送数据包:6199 错误:0 丢弃:0 过载:0 载波:0

碰撞:0 发送队列长度:1000

接收字节:907112 (907.1 KB) 发送字节:619879 (619.8 KB)

lo Link encap:本地环回

inet 地址:127.0.0.1 掩码:255.0.0.0

inet6 地址: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:65536 跃点数:1

接收数据包:10106 错误:0 丢弃:0 过载:0 帧数:0

发送数据包:10106 错误:0 丢弃:0 过载:0 载波:0

碰撞:0 发送队列长度:0

接收字节:717468 (717.4 KB) 发送字节:717468 (717.4 KB)

这里,你会看见eth0和eth1都没有ip地址的,而是多了一个

br0,它就是刚刚我们给他分配的ip地址。这样,网桥就构建好了,

此时,你ping172.22.112.1也是可以ping通的。

补充:(1)如果你想关闭网桥的话,可以使用下面的命令。

root@ubuntu1-Lenovo:/home/ubuntu1# ifconfig br0 down

root@ubuntu1-Lenovo:/home/ubuntu1# ifconfig

eth0 Link encap:以太网 硬件地址 10:78:d2:fa:19:13

inet6 地址: fe80::1278:d2ff:fefa:1913/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1

接收数据包:25332 错误:0 丢弃:189 过载:0 帧数:0

发送数据包:2961 错误:0 丢弃:0 过载:0 载波:0

碰撞:0 发送队列长度:1000

接收字节:6150074 (6.1 MB) 发送字节:235261 (235.2 KB)

eth1 Link encap:以太网 硬件地址 74:ea:3a:6a:d6:8f

inet6 地址: fe80::76ea:3aff:fe6a:d68f/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1

接收数据包:12107 错误:0 丢弃:0 过载:0 帧数:0

发送数据包:7487 错误:0 丢弃:0 过载:4 载波:0

碰撞:0 发送队列长度:1000

接收字节:965806 (965.8 KB) 发送字节:946245 (946.2 KB)

lo Link encap:本地环回

inet 地址:127.0.0.1 掩码:255.0.0.0

inet6 地址: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:65536 跃点数:1

接收数据包:10130 错误:0 丢弃:0 过载:0 帧数:0

发送数据包:10130 错误:0 丢弃:0 过载:0 载波:0

碰撞:0 发送队列长度:0

接收字节:719436 (719.4 KB) 发送字节:719436 (719.4 KB)

你会发现br0不见了。

(2)如果你使用下面的命令,你会发现你可以访问外网,却无法

访问作为网关的双网卡电脑。

root@ubuntu1-Lenovo:/home/ubuntu1# ifconfig br0 0.0.0.0

up

root@ubuntu1-Lenovo:/home/ubuntu1# ifconfig

结果:

root@ubuntu1-Lenovo:/home/ubuntu1# ping 172.22.112.1

connect: Network is unreachable

这是因为作为网关的服务器没有设置ip,所以无法访问其他地址。

本文标签: 设置网卡地址双网卡转发