参考文旦 http://blog.sina.com.cn/s/blog_6ae5bc6d0102vsa6.html
操作系统:Ubuntu14.10
网卡:eth0,eth2(eth0物理连接外网网络,自动获取IP地址,eth2,手动配置IP地址)
(参考文档:http://wenku.baidu.com/link?url=Vu8yCdbOroJ8gNeHMOScraDSQCloIQI2kxaMDRhQ1hxBtLTBjXBRS5TjUHGUqhtFekUIXq-sEeJ5YJfEBHg5to3M-Q4yz8WMjUUPPmwBWvW
基本参照该文档进行配置,中途遇到如下问题:
1、关掉ubuntu系统提供的network-manager,使用命令就是:关闭network-manager命令:/etc/init.d/network-manager stop
3、设置完成之后就重启网络,使设置生效。 重启network-manager命令:/etc/init.d/networking restart
可以百度如何选择
第一步操作完成,第三步操作不生效,而且提示错误,最终重启路由器使能配置的IP。)
一. 配置ubuntu网络接口地址
如下:
更改/etc/network/interfaces
auto lo #auto说明lo接口会在系统启动时被自动配置
iface lo inet loopback
auto eth0 # #auto说明eth0接口会在系统启动时被自动配置
iface eth0 inet dhcp
auto eth2 #auto说明eth2接口会在系统启动时被自动配置
iface eth2 inet static /原文档写错为eth0
address 192.168.10.123
netmask 255.255.255.0
#network 192.168.10.0 /未配置,gateway 也不能配置,配置了后会有干扰,
broadcast 192.168.10.255
二. 配置windows主机地址
另外一台windows主机PC1地址:
192.168.10.2/24 网关:192.168.10.123,dns地址:61.139.2.69
三.测试网络环境
此时:PC1 ping eth2接口IP地址,通 /
网线直接连接,将PC1的网关设置成eth2的IP地址,
重要
PC1 ping eth0接口IP地址,不通
PC1 ping 172.16.127.1地址,不通
四.Ubuntu主机上开启路由转发功能
终端输入:
sudo echo 1 >/proc/sys/net/ipv4/ip_forward
提示无权限,切换到root用户配置成功。
echo 1 >/proc/sys/net/ipv4/ip_forward
五。再次测试网络环境
PC1 ping eth2接口IP地址,通
PC1 ping eth0接口IP地址,通
PC1 ping 172.16.127.1地址,不通
在Eth0接口抓包,可以看到源IP地址为192.168.10.2,网关收到这个报文之后回应的信息会直接发往自己的默认网关,而不会返回到172.16.127.123接口,此时在ubuntu上配置iptables对内网PC1的地址进行转换
六。iptables配置
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
第一条:接受对ubutntu本地的访问
第二条:接受转发
第三条:地址转换
iptable -t nat -L -nv #查看nat表中条目
iptables -L -nv #查看filter表条目
七。网络环境测试
PC1 ping eth2接口IP地址,通
PC1 ping eth0接口IP地址,通
PC1 ping 172.16.127.1地址,通
同时PC1可以通过ubuntu主机实现nat上网,通过ubuntu,他自身地址z在172.16.127.1网关看来被转换为172.16.127.123,所以网关能把回应报文转发到ubuntu。
下面这种应该是带路由器网关的配置方法:(没有验证)
Linux环境下双网卡主机路由配置
一、环境:
三台直接相连的计算机主机如图
PC1<------>PC2<------>PC3
其中PC2上有两块网卡eth0、eth1,分别与PC3、PC1相连
------代表网线
二、需求:
将PC2配置为路由器模式,用来在PC1、PC3之间转发报文
三、方法:
将三台主机按照环境所要求用交叉线直接连网后,为三台主机分配网段并配置IP地址。
网段及IP地址分配如下:
主 机名 所在网段 分配IP 网关
PC1: 192.168.2.0/24 192.168.2.2/24 192.168.2.1
PC2: 192.168.2.0/24 192.168.2.1/24 '与PC1相连的网卡的配置' eth1
192.168.1.0/24 192.168.1.1/24 '与PC3相连的网卡的配置' eth0
PC3: 192.168.1.0/24 192.168.1.2/24 192.168.1.1
按照上表所示分别将主机IP地址配置好,其中要注意的是,要想使PC2具有报文转发功能,在PC2
上检查/proc/sys/net/ipv4/ip_forward中的值是否为1
命令:
#more /proc/sys/net/ipv4/ip_forward
如果显示其值不为1而是0 输入以下命令:
#echo '1' > /proc/sys/net/ipv4/ip_forward
打开IP转发功能
PC2中的其它配置:
为PC2添加路由,命令:
#route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
#route add -net 192.168.2.0 netmask 255.255.255.0 dev eth1
四、验证:
PC1:
ping网关
#ping 192.168.2.1
#ping 192.168.1.1
ping PC3:
#ping 192.168.1.2
PC3:
ping网关
#ping 192.168.1.1
#ping 192.168.2.1
pint PC1
#ping 192.168.2.2
五、Bug调试:
出错的原因主要集中在PC2两个地方
1.检查PC2是否允许IP报文转发(/proc/sys/net/ipv4/ip_forward的值是否为1)
2.路由设置是否正确(#route 回车查看)
常用的命令
route add -net 192.168.1.0/24 netmask 255.255.255.0 dev eth1
route add default gw 192.168.1.1 #如果网桥不需要访问其他机器的话,可以不添加网关
echo 1 > /proc/sys/net/ipv4/ip_forward ##开启端口转发功能,临时生效。
永久生效: vim /etc/sysctl.conf ##修改net.ipv4.ip_forward = 1
sysctl -p ##生效配置文件。