1.静态路由

通常是双网卡的时候使用到.

win | linux通用

格式:ROUTE [-f] [-p] [ADD|CHANGE|DELETE|PRINT] {ip} MASK {mask} {gateway} [METRIC {metric}] [IF {port}]

-f:清除所有不是主路由(子网掩码为 255.255.255.255 的路由)、环回网络路由(目标为 127.0.0.0,网掩码为 255.255.255.0 的路由)或多播路由(目标为 224.0.0.0,网掩码为 240.0.0.0 的路由)的条目的路由表。如果它与命令之一(例如 add、change 或 delete)结合使用,表会在运行命令之前清除
-p:与 add 命令共同使用时,指定路由被添加到注册表并在启动 TCP/IP 协议的时候初始化 IP 路由表。默认情况下,启动 TCP/IP 协议时不会保存添加的路由。与 print 命令一起使用时,则显示永久路由列表。所有其它的命令都忽略此参数。永久路由存储在注册表中的位置是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes。
ADD|CHANGE|DELETE|PRINT:添加|修改|删除|展示
ip:需要访问的ip网段
mask:子网掩码
gateway:网卡配置的网关
metric:跃点数(范围 1 ~ 9999)
port:指定目标可以到达的接口的接口索引

例如:
# 添加59.206.起始的ip均通过网关10.100.80.1发送(也就是配置该网关的网卡)
route add 59.206.0.0 mask 255.255.0.0 10.100.80.1
# 删除59.206起始ip的静态路由
route add 59.206.0.0 mask 255.255.0.0
# 添加默认网关
route add 0.0.0.0 mask 0.0.0.0 192.168.160.1
# 删除默认网关
route delete 0.0.0.0
# 修改59.206.起始的ip的下一个跃点地址为10.100.81.1
route change 59.206.0.0 mask 255.255.0.0 10.100.81.1
# 删除59.起始的所有路由
route delete 59.*
# 打印所有路由
route print
# 打印59.206.起始的路由
route print 59.206.*
# 设置永久路由
route -p add 59.206.0.0 mask 255.255.0.0 10.100.80.1

2.win自带端口转发

格式:netsh interface portproxy {add|delete|show} {v4tov4|v4tov6|v6tov4|v6tov6} listenport={listenServicename} listenaddress={listenHostname} connectport={connectServicename} connectaddress={connectHostname} 
add|delete|set|show:添加|删除|修改|展示
v4tov4|v4tov6|v6tov4|v6tov6:ipv4和ipv6,正常v4tov4即可
listenServicename:监听的端口或服务名
listenHostname:监听的ip或者域名
connectServicename:被转发的端口或服务名
connectHostname:被转发的ip或者域名

例如:
# 转发 本机445端口 到 8445
netsh interface portproxy add v4tov4 listenport=8445 connectaddress=127.0.0.1 connectport=445
# 转发 远程机器8445端口 到 本机445端口
netsh interface portproxy add v4tov4 listenport=445 connectaddress=192.168.88.110 connectport=8445
# 删除 监听445端口的规则
netsh interface portproxy delete v4tov4 listenport=445
# 修改 本机445端口 到 8446
netsh interface portproxy set v4tov4 listenport=8446 connectaddress=127.0.0.1 connectport=445
# 查看所有转发
netsh interface portproxy show all
# 查看所有v4tov4转发
netsh interface portproxy show v4tov4
# 清除所有转发规则
netsh interface portproxy reset

注意:有可能电脑重启后会不生效。运行 netsh interface portproxy show all,能看到在转发的配置还在,但

netstat -ano | findstr 445 会发现,不在侦听445端口,即电脑重启后,配置没生效。

运行services.msc,重启IP HELPER就可以了。

3.iptables端口转发

查看是否开启允许转发

sysctl net.ipv4.ip_forward 
或者
cat /proc/sys/net/ipv4/ip_forward
# 1为开启,2为关闭

临时开启允许转发

sysctl -w net.ipv4.ip_forward=1
或者
echo 1 >/proc/sys/net/ipv4/ip_forward

永久开启允许转发

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

配置转发规则

# 把访问本机 8091 端口的请求转发到 8090端口
iptables -t nat -A PREROUTING -p tcp --dport 8091 -j REDIRECT --to-ports 8090
# 把访问本机 8093 端口的请求转发到 192.168.1.3 的 8090端口
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8093 -j DNAT --to 192.168.1.3:8090
# 把规则保存到文件中
service iptables save
# 重启iptables
service iptables restart

把规则写到开启启动中

vi /etc/rc.local 

#load iptbales
iptables-restore > /etc/sysconfig/iptables