需求: 当我们的实施人员出去实施时,好多客户因没有外网环境,此时 实施人员出现问题后不方便求助外援,此时可以使用手机当作热点,此时若不做操作,会出现两个网关,会出现问题,所所以我们来解决下这个问题。我用linux模拟路由, 用win来做内外网双向

环境:
centos7 两台
[root@bogon ~]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: eno33554992: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:82:0b:73 brd ff:ff:ff:ff:ff:ff
inet 192.168.40.128/24 brd 192.168.40.255 scope global dynamic eno33554992
valid_lft 1409sec preferred_lft 1409sec
inet6 fe80::20c:29ff:fe82:b73/64 scope link
valid_lft forever preferred_lft forever
[root@bogon ~]#

#
[root@erick ~]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: eno33554992: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:3d:dc:de brd ff:ff:ff:ff:ff:ff
inet 192.168.41.1/24 brd 192.168.41.255 scope global eno33554992
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe3d:dcde/64 scope link
valid_lft forever preferred_lft forever
[root@erick ~]#

win7 一台
ip:192.168.1.2
ip2: 192.168.40.100

拓扑图如下:
linux 软路由+ win 实现内网双向路由_第1张图片

下面我们来操作,众所周知,不同网段默认是无法通讯的,所以我们要做路由;
首先查看此时的路由表
[root@bogon ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.40.2 0.0.0.0 UG 0 0 0 eno33554992
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eno16777736
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eno33554992
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777736
192.168.40.0 0.0.0.0 255.255.255.0 U 0 0 0 eno33554992
[root@bogon ~]#
新加一条到192.168.41.0的路由
[root@bogon ~]# route add -net 192.168.41.0 netmask 255.255.255.0 dev eno33554992
[root@bogon ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.40.2 0.0.0.0 UG 0 0 0 eno33554992
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eno16777736
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eno33554992
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777736
192.168.40.0 0.0.0.0 255.255.255.0 U 0 0 0 eno33554992
192.168.41.0 0.0.0.0 255.255.255.0 U 0 0 0 eno33554992
[root@bogon ~]#
相信做过硬件路由器的同学都知道,路由是双向的,有来有回才可以工作,下面我们在另外一台机器上添加路由
[root@erick ~]# route add -net 192.168.40.0 netmask 255.255.255.0 dev eno33554992
[root@erick ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eno16777736
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eno33554992
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777736
192.168.40.0 0.0.0.0 255.255.255.0 U 0 0 0 eno33554992

此时测试下是否可以通讯:
[root@bogon ~]# !ping
ping 192.168.41.1
PING 192.168.41.1 (192.168.41.1) 56(84) bytes of data.
64 bytes from 192.168.41.1: icmp_seq=1 ttl=64 time=0.323 ms
64 bytes from 192.168.41.1: icmp_seq=2 ttl=64 time=0.727 ms
64 bytes from 192.168.41.1: icmp_seq=3 ttl=64 time=1.07 ms
好了,现在已经解决了,不同网段的通讯问题,下面我们在win上操作,让windows可以实现内外网同时上网
第一步:删除默认路由
route delete 0.0.0.0
注:删除所有0.0.0.0的路由,这个是默认访问外网的路由

第二步:添加静态路由
(假设内网网段为192.168.40.x,我们此时把网关设置为centos 的ip网关为192.168.40.128;)
外网网段为192.168.1.2,网关为192.168.1.1)
先配置内网静态路由:
route add 192.168.41.0 mask 255.255.255.0 192.168.40.128 if xx -p
(xx 代表该网卡在系统中的编号,通过route print 命令可显示每个网卡的编号,如下图中红色箭头指示)
linux 软路由+ win 实现内网双向路由_第2张图片

所以此时我们要写成对应的网卡的ID号:
route add 192.168.41.0 mask 255.255.255.0 192.168.40.128 if 11 -p
在配置外网静态路由:
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 if 18 -p (xx 代表该网卡在系统中的编号)
注:它表示你可以上外网,访问所有数据都要经过外网网关192.168.1.1,-p表示永久添加,重启后依然有效。
第三步:设置完了以后,还要再看一下路由表是否都修改过来了。在命令窗口输入route print ,就可以显示本机的路由表了。

此时可能你只能上外网,内网还没有办法上?
在centos上查看路由转发是否转发是否打开

[root@erick ~]# cat /proc/sys/net/ipv4/ip_forward
0 ## 0代表为开启,此时我们开启来
[root@erick ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
此时,查看win是否可以访问到 41 网段的ip!