Linux 中ip forward功能是一个比较方便实用的功能,只需要简单配置,添加几条路由,即可实现ip转发。本文基于CentOS 7下采取一台机器充当虚拟路由,来实现Windows环境与Linux环境中相互通信。具体见下文,供大家参考。
一、环境及需求说明

本地测试环境,由于Win7+VMware这台机器网卡太新,无法被VMware EXSi识别,无奈之下就直接装了个Win7,然后再上面基于Vmware workstation 12开启了一些临时测试的虚拟机。其次本地直连网段192.168.1.0 IP有限,而又希望直接从本机(如图Win10) ssh连接到这些虚拟机,因此考虑使用Linux的ip转发功能来实现。
上述图片中已经列出了各个节点的IP信息,红色的虚拟机充当软路由,配置好之后,实现Win10 直接ssh到虚拟机。
二、虚拟路由服务器配置
[root@centos7-router ~]
1: lo: <LOOPBACK,UP,LOWER_UP> 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
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9c:eb:2d brd ff:ff:ff:ff:ff:ff
inet 172.24.8.254/24 brd 172.24.8.255 scope global eno16777728
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe9c:eb2d/64 scope link
valid_lft forever preferred_lft forever
3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:9c:eb:37 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.175/24 brd 192.168.1.255 scope global dynamic eno33554960
valid_lft 82384sec preferred_lft 82384sec
inet6 fe80::20c:29ff:fe9c:eb37/64 scope link
valid_lft forever preferred_lft forever
[root@centos7-router ~]
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eno33554960
172.24.8.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno33554960
[root@centos7-router ~]
default via 192.168.1.1 dev eno33554960 proto static metric 100
172.24.8.0/24 dev eno16777728 proto kernel scope link src 172.24.8.254 metric 100
192.168.1.0/24 dev eno33554960 proto kernel scope link src 192.168.1.175 metric 100
[root@centos7-router ~]
[root@centos7-router ~]
[root@centos7-router ~]
net.ipv4.ip_forward = 1
[root@centos7-router ~]
三、CentOS7-a主机下添加路由
[root@centos7-a ~]
1: lo: <LOOPBACK,UP,LOWER_UP> 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
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:57:26:9d brd ff:ff:ff:ff:ff:ff
inet 172.24.8.131/24 brd 172.24.8.255 scope global dynamic eno16777728
valid_lft 1088sec preferred_lft 1088sec
inet6 fe80::20c:29ff:fe57:269d/64 scope link
valid_lft forever preferred_lft forever
[root@centos7-a ~]
172.24.8.0/24 dev eno16777728 proto kernel scope link src 172.24.8.131 metric 100
[root@centos7-a ~]
[root@centos7-a ~]
[root@centos7-a ~]
[root@centos7-a ~]
default via 172.24.8.254 dev eno16777728
172.24.8.0/24 dev eno16777728 proto kernel scope link src 172.24.8.131 metric 100
[root@centos7-a ~]
PING 172.24.8.254 (172.24.8.254) 56(84) bytes of data.
64 bytes from 172.24.8.254: icmp_seq=1 ttl=64 time=0.268 ms
64 bytes from 172.24.8.254: icmp_seq=2 ttl=64 time=0.302 ms
--- 172.24.8.254 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.268/0.285/0.302/0.017 ms
[root@centos7-a ~]
PING 192.168.1.175 (192.168.1.175) 56(84) bytes of data.
64 bytes from 192.168.1.175: icmp_seq=1 ttl=64 time=0.475 ms
64 bytes from 192.168.1.175: icmp_seq=2 ttl=64 time=0.443 ms
--- 192.168.1.175 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.443/0.459/0.475/0.016 ms
四、Windows 10下配置路由
###当前环境
C:\>systeminfo | findstr Build
OS Version: 10.0.14393 N/A Build 14393
OS Build Type: Multiprocessor Free
###查看当前的路由信息
Interface List
7...54 ab 3a xx b8 ea ......Intel(R) Ethernet Connection I219-V
21...ac 2b 6e 5f 3b 57 ......Microsoft Wi-Fi Direct Virtual Adapter
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.242 35
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
172.24.10.0 255.255.255.0 On-link 172.24.10.1 291
172.24.10.1 255.255.255.255 On-link 172.24.10.1 291
172.24.10.255 255.255.255.255 On-link 172.24.10.1 291
192.168.1.0 255.255.255.0 On-link 192.168.1.242 291
192.168.1.242 255.255.255.255 On-link 192.168.1.242 291
192.168.1.255 255.255.255.255 On-link 192.168.1.242 291
192.168.16.0 255.255.255.0 On-link 192.168.16.1 291
192.168.16.1 255.255.255.255 On-link 192.168.16.1 291
192.168.16.255 255.255.255.255 On-link 192.168.16.1 291
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 192.168.1.242 291
224.0.0.0 240.0.0.0 On-link 192.168.16.1 291
224.0.0.0 240.0.0.0 On-link 172.24.10.1 291
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 192.168.1.242 291
255.255.255.255 255.255.255.255 On-link 192.168.16.1 291
Persistent Routes:
None
###添加持久化路由
C:\>route add 172.24.8.0 mask 255.255.255.0 192.168.1.175 -p
OK!
C:\>route print -4
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.242 35
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
172.24.8.0 255.255.255.0 192.168.1.175 192.168.1.242 36
172.24.10.0 255.255.255.0 On-link 172.24.10.1 291
172.24.10.1 255.255.255.255 On-link 172.24.10.1 291
172.24.10.255 255.255.255.255 On-link 172.24.10.1 291
192.168.1.0 255.255.255.0 On-link 192.168.1.242 291
192.168.1.242 255.255.255.255 On-link 192.168.1.242 291
192.168.1.255 255.255.255.255 On-link 192.168.1.242 291
192.168.16.0 255.255.255.0 On-link 192.168.16.1 291
192.168.16.1 255.255.255.255 On-link 192.168.16.1 291
192.168.16.255 255.255.255.255 On-link 192.168.16.1 291
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 192.168.1.242 291
224.0.0.0 240.0.0.0 On-link 192.168.16.1 291
224.0.0.0 240.0.0.0 On-link 172.24.10.1 291
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 192.168.1.242 291
255.255.255.255 255.255.255.255 On-link 192.168.16.1 291
Persistent Routes: ###以下为添加的持久化路由记录
Network Address Netmask Gateway Address Metric
五、验证两边连通性
[root@centos7-a ~]
PING 192.168.1.242 (192.168.1.242) 56(84) bytes of data.
64 bytes from 192.168.1.242: icmp_seq=1 ttl=63 time=1.70 ms
64 bytes from 192.168.1.242: icmp_seq=2 ttl=63 time=1.10 ms
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.101/1.404/1.707/0.303 ms
C:\>ping 172.24.8.131 -t
Pinging 172.24.8.131 with 32 bytes of data:
Reply from 172.24.8.131: bytes=32 time=1ms TTL=63
Reply from 172.24.8.131: bytes=32 time=1ms TTL=63
注,如果测试有问题,请考虑是否被防火墙拦住。

