刚刚解决了问题,昨天晚上也在Ubuntu官方论坛求助。结果无果,好不容易刚刚搞定,在Ubuntu把帖子完结,然后就来到这里把过程些下来。
求助地址:
http://forum.ubuntu.org.cn/viewtopic.php?f=116&t=186198&p=1151049
简单复述一下:
公司现有一个网络,但是由于网络太慢,另外扯来一条ADSL带着几台电脑上网,现在这两个局域网是分开的。
我想用我的Ubuntu 把他们连接到一起。我的Ubuntu装了两个网卡,并且分别连接到了这个俩个网络。
两个网络 192.168.0.0 和 192.123.1.0
他们内网内的电脑都能上网,但是两个网络不能互相访问,但是192.168.0.X和192.168.123.X都能访问我的Ubuntu主机
Ubuntu有两个网卡:192.168.0.52 和 192.123.1.52,访问两个网络的电脑都没有问题。
我现在两个路由器192.168.0.1和192.123.1.1作了设置了访问对方网络的路由:
192.168.0.1(路由器IP)
any-->192.123.1.0 gateway:192.168.0.52
192.123.1.1(路由器IP)
any-->192.123.1.0 gateway:192.168.0.52
我的ubuntu有两块网卡,可以访问 192.168.0.X 也可以访问192.123.1.X
,但是怎么让他们连接起来呢?
net1 : 192.168.0.0 net2 : 192.123.1.0
||||| ||||
||||||||||||||||||||||||||||||||||||||||||||||||||||||
||||
Ubuntu (双网卡,192.168.0.52 和 192.123.1.52)
基本是这个样子的。net1中的电脑主机 192.168.0.X和net2中的192.123.1.X既能访问 internet 也能访问到 Ubuntu。
由于在路由器192.168.0.1上配置路由,这样 net1 中访问 net2 的请求都会被转向到 Ubuntu 的网卡 192.168.0.52上,
net2由于也是相同的配置,也是相同的结果。都被转向到了192.123.1.52上。
这样的还net1中的主机192.168.0.X 能 tracert 192.123.1.X 到192.168.0.52上了。但是不能进一步
首先让Ubuntu的两个网卡能相互转发
echo 1 > /proc/sys/net/ipv4/ip_forward
或者
sudo vim /proc/sys/net/ipv4/ip_forward
这样,net1中的主机就能ping到 192.123.0.52了,net2也可以。
但是数据包过去了,对方主机也受到了,但是返回不了。所以:
iptables -t nat -I POSTROUTING -j MASQUERADE
完全搞定了。
由于先前以为是路由的问题查了很多资料。把我懂的讲讲,会的就不用看下去了。^_^
1.添加默认路由,这个一般都是有的:
sudo route add default gw 192.168.0.1(网关IP)
2。在某个网卡上添加,只要加一个dev就OK了
dev eth0 指定网卡,想我这样有双网卡的就用上了。
如:sudo route add default gw 192.168.0.1 dev eth0
3。添加一条路由:
sudo route add -net 192.123.1.0 netmask 255.255.255.0 gw 192.123.1.1
route add 是添加操作
-net 是指添加的是一个网络 如-net 192.123.1.0 netmask 255.255.255.0。也可以直接这样写:-net 192.123.1.0/24。
gw 网关IP
4。删除一条路由。
开始这个难住了我,但是,很简单的,只要把上面的完完全全的抄写一遍,然后把 add 换成 del 就OK了,比如:
sudo route del -net 192.123.1.0 netmask 255.255.255.0 gw 192.123.1.1
5。某个网卡上的默认路由不能删除。否则连局域网都ping不同。
如:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
不能删除的。
6。列出说有的路由。
开始我用route。发现很慢。。。 后来发现他有个小弟-n ,列表路由的时候,加一个参数,如:
route -n