精华内容
下载资源
问答
  • 比如:到2.2.2.2网段,掩码是255.255.255.0,下一跳是1.1.1.1C:/>route add 2.2.2.2 mask 255.255.255.0 1.1.1.1 在添加路由的命令后加 -P参数,可以在电脑重新启动后不丢失。

    比如:到2.2.2.2网段,掩码是255.255.255.0,下一跳是1.1.1.1
    C:/>route add 2.2.2.2 mask 255.255.255.0  1.1.1.1 

    在添加路由的命令后加 -P参数,可以在电脑重新启动后不丢失。
    展开全文
  • 一、静态路由含义说明 说明: 个人感觉静态路由就类似一个桥,可以...本身主机A和主机C是无法相互访问的,为了实现主机A、C的连通,于是需要引入主机B要求主机B有双网卡,需要进行相应的IP配置使得两张网卡可分别与

    一、静态路由含义说明

    è¿éåå¾çæè¿°

    说明:
    个人感觉静态路由就类似一个桥,可以让数据包按照固定的规则走。
    第一行表示:
    所有到达192.168网段的都转送到192.268.242.65网关
    第三行表示:
    所有到达本机的数据包都被转送到x.x.213.1网关
    第四行表示:
    所有到达10.243网段的数据包都被传送到192.168.242.65网关

    二、如何设置静态路由

    å¨è¿éæå¥å¾çæè¿°

    本身主机A和主机C是无法相互访问的,为了实现主机A、C的连通,于是需要引入主机B要求主机B有双网卡,需要进行相应的IP配置使得两张网卡可分别与主机A、C连通。假设经过相应的ip配置后网卡1与主机A连通,网卡2与主机C连通
    现在要实现主机A和主机C的连通,则需要在主机B上配置静态路由。
    静态路由需要用到主机B的网卡1的网关,使得所有到达主机A的数据包都被传递到网卡1的网关,因为网卡1肯定是可以与网卡1的网关联通的,故经过这样设置后可实现,到A的数据包自动被转发到B网卡1的网关,再路由到主机B再路由到C进而实现主机AC的连通
    简单来说,就是下图
    å¨è¿éæå¥å¾çæè¿°

    添加示例:route add 10.10.10.1 mask 255.255.255.255 10.10.10.2

    添加路由的方法如下:

    • 需要以管理员权限运行
      route add 10.1.0.0 mask 255.255.0.0 192.165.3.54 -p
    • 至于路由跳数和经过哪个网卡不必特殊设置。

    子网掩码如何设置:看目的地址有几个网段,子网掩码就有几个255

    • -p表示持久化处理,重启系统后路由仍有效
    • 删除路由: route delete 10.1.0.0
    • 显示路由表: route print
      注意:对于双网卡的机器,路由的作用是打通双网卡之间的通道,不要随便删除路由。

    解决nat虚拟机不能本机通讯

    现象:虚拟机192.168.78.4不能与本机ping通

    排查步骤:

    1、虚拟网络编辑器重置未解决

    2、编辑nat8添加网卡、网关、掩码未解决

    3、跟踪路由失败

    4、解决方法:添加静态路由:

    route add 192.168.78.4 mask 255.255.255.255 192.168.78.2

    但是网关还是不能与本机通讯

    三、详细信息如下

    打开控制台,然后输入route,回车,可以看到相关的帮助信息。
    添加路由:

    C:\Windows\system32>route
    
    操作网络路由表。
    
    ROUTE [-f] [-p] [-4|-6] command [destination]
                      [MASK netmask]  [gateway] [METRIC metric]  [IF interface]
    
      -f           清除所有网关项的路由表。如果与某个
                   命令结合使用,在运行该命令前,
                   应清除路由表。
    
      -p           与 ADD 命令结合使用时,将路由设置为
                   在系统引导期间保持不变。默认情况下,重新启动系统时,
                   不保存路由。忽略所有其他命令,
                   这始终会影响相应的永久路由。
    
      -4           强制使用 IPv4。
    
      -6           强制使用 IPv6。
    
      command      其中之一:
                     PRINT     打印路由
                     ADD       添加路由
                     DELETE    删除路由
                     CHANGE    修改现有路由
      destination  指定主机。
      MASK         指定下一个参数为“netmask”值。
      netmask      指定此路由项的子网掩码值。
                   如果未指定,其默认设置为 255.255.255.255。
      gateway      指定网关。
      interface    指定路由的接口号码。
      METRIC       指定跃点数,例如目标的成本。
    
    用于目标的所有符号名都可以在网络数据库
    文件 NETWORKS 中进行查找。用于网关的符号名称都可以在主机名称
    数据库文件 HOSTS 中进行查找。
    
    如果命令为 PRINT 或 DELETE。目标或网关可以为通配符,
    (通配符指定为星号“*”),否则可能会忽略网关参数。
    
    如果 Dest 包含一个 * 或 ?,则会将其视为 Shell 模式,并且只
    打印匹配目标路由。“*”匹配任意字符串,
    而“?”匹配任意一个字符。示例: 157.*.1、157.*、127.*、*224*。
    
    只有在 PRINT 命令中才允许模式匹配。
    诊断信息注释:
        无效的 MASK 产生错误,即当 (DEST & MASK) != DEST 时。
        示例: > route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1
                 路由添加失败: 指定的掩码参数无效。
                 (Destination & Mask) != Destination。
    
    示例:
    
        > route PRINT
        > route PRINT -4
        > route PRINT -6
        > route PRINT 157*          .... 只打印那些匹配  157* 的项
    
        > route ADD 157.0.0.0 MASK 255.0.0.0  157.55.80.1 METRIC 3 IF 2
                 destination^      ^mask      ^gateway     metric^    ^
                                                             Interface^
          如果未给出 IF,它将尝试查找给定网关的最佳
          接口。
        > route ADD 3ffe::/32 3ffe::1
    
        > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2
    
          CHANGE 只用于修改网关和/或跃点数。
    
        > route DELETE 157.0.0.0
        > route DELETE 3ffe::/32
    

     

    展开全文
  • 场景:windows需要添加大量的主机路由时,使用route add命令执行会很慢,于是考虑使用windows系统接口进行路由添加。 接口函数: CreateIpForwardEntry #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_...

    场景:windows需要添加大量的主机路由时,使用route add命令执行会很慢,于是考虑使用windows系统接口进行路由添加。

    接口函数:

    CreateIpForwardEntry

    #ifndef WIN32_LEAN_AND_MEAN
    #define WIN32_LEAN_AND_MEAN
    #endif
    
    #include <windows.h>
    #include <winsock2.h>
    #include <iphlpapi.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    #pragma comment(lib, "iphlpapi.lib")
    #pragma comment(lib,"ws2_32.lib")
    
    /*
    获取接口对应的十六进制的序号
    */
    ULONG getindex(const char* ip)
    {
    
    	PIP_ADAPTER_INFO pinfo = NULL;
    	unsigned long len = 0;
    	unsigned long nError;
    	nError = GetAdaptersInfo(pinfo, &len); //这里nError肯定是ERROR_BUFFER_OVERFLOW,但是                  //我们得到了要用多少长的字节来存它。
    	pinfo = (PIP_ADAPTER_INFO)malloc(len);
    	nError = GetAdaptersInfo(pinfo, &len);
    
    	//char *ip="172.31.12.213";
    	if (nError == 0)
    	{
    		PIP_ADAPTER_INFO adapterPointer = pinfo;
    		while (adapterPointer != NULL)
    		{
    			PIP_ADDR_STRING ipAddressListPointer = &(adapterPointer->IpAddressList);
    			while (ipAddressListPointer != NULL) {
    				if (strcmp((char*)(ipAddressListPointer->IpAddress).String, ip) == 0)
    				{
    					return(adapterPointer->Index);
    				}
    				else {
    					ipAddressListPointer = ipAddressListPointer->Next;
    				}
    				adapterPointer = adapterPointer->Next;
    			}
    		}
    		//做相关的操作
    	}
    	else
    	{
    		if (nError == ERROR_NO_DATA) printf("请检查您的计算机是否安装了网卡");
    		if (nError == ERROR_NOT_SUPPORTED) printf("请更新你的操作系统为Win98/Me/2000/XP/2003");
    	}
    	free(pinfo);
    }
    
    /*
    添加路由函数
    入参:主机IP,子网掩码,接口IP
    主体逻辑:先获取路由表中默认路由的信息,
    再将其中的主机IP、子网掩码、接口等替换成自己需要的,
    再使用CreateIpForwardEntry函数进行添加。
    注意,struct _MIB_IPFORWARDROW 这个结构体是路由信息的结构体
    */
    void addRoute(const char* dst_ip, const char* net_mask, 
    const char* interface_ip)
    {
    	PMIB_IPFORWARDTABLE pIpForwardTable = NULL;
    	PMIB_IPFORWARDROW pRow = NULL;
    	DWORD dwSize = 0;
    	BOOL bOrder = FALSE;
    	DWORD dwStatus = 0;
    
    	unsigned int i;
    
    	// Find out how big our buffer needs to be.
    	dwStatus = GetIpForwardTable(pIpForwardTable, &dwSize, bOrder);
    	if (dwStatus == ERROR_INSUFFICIENT_BUFFER) {
    		// Allocate the memory for the table
    		if (!(pIpForwardTable = (PMIB_IPFORWARDTABLE)malloc(dwSize))) {
    			printf("Malloc failed. Out of memory.\n");
    			return;
    		}
    		// Now get the table.
    		dwStatus = GetIpForwardTable(pIpForwardTable, &dwSize, bOrder);
    	}
    
    	if (dwStatus != ERROR_SUCCESS) {
    		printf("getIpForwardTable failed.\n");
    		if (pIpForwardTable)
    			free(pIpForwardTable);
    		return;
    	}
    
    	for (i = 0; i < pIpForwardTable->dwNumEntries; i++)
    	{
    		if (pIpForwardTable->table[i].dwForwardDest == 0)
    		{
    			if (!pRow)
    			{
    				pRow = (PMIB_IPFORWARDROW)malloc(sizeof(MIB_IPFORWARDROW));
    				if (!pRow) 
    				{
    					printf("Malloc failed. Out of memory.\n");
    					return;
    				}
    				// Copy the row
    				memcpy(pRow, &(pIpForwardTable->table[i]), sizeof(MIB_IPFORWARDROW));
    			}
    		}
    	}
    	/*printf("dwForwardDest:%0x dwForwardMask:%0x dwForwardNextHop:%0x, dwForwardIfIndex:%0x\n",
    		pIpForwardTable->table[1].dwForwardDest,
    		pIpForwardTable->table[1].dwForwardMask,
    		pIpForwardTable->table[1].dwForwardNextHop,
    		pIpForwardTable->table[1].dwForwardIfIndex);*/
    
    	pRow->dwForwardNextHop = inet_addr(interface_ip);
    	pRow->dwForwardDest = inet_addr(dst_ip);
    	pRow->dwForwardMask = inet_addr(net_mask);
    	pRow->dwForwardIfIndex = getindex(interface_ip);
    
    	// Create a new route entry for the default gateway.
    	dwStatus = CreateIpForwardEntry(pRow);
    
    	if (dwStatus == NO_ERROR)
    		printf("Gateway changed successfully\n");
    	else if (dwStatus == ERROR_INVALID_PARAMETER)
    		printf("Invalid parameter.\n");
    	else if (ERROR_ACCESS_DENIED == dwStatus)
    	{
    		printf("ERROR_ACCESS_DENIED\n");
    	}
    	else
    		printf("Error: %d\n", dwStatus);
    
    	// Free resources
    	if (pIpForwardTable)
    		free(pIpForwardTable);
    	if (pRow)
    		free(pRow);
    
    	return;
    }
    int main()
    {
    	addRoute("1.1.1.1", "255.255.255.255", "192.168.100.10");
    	return 0;
    }

    注意,程序执行时,需要使用管理员权限执行,否则执行可能不生效。

    参考:

    https://docs.microsoft.com/zh-cn/windows/win32/api/iphlpapi/nf-iphlpapi-createipforwardentry

    https://docs.microsoft.com/zh-cn/windows/win32/api/ipmib/ns-ipmib-mib_ipforwardrow

    https://bbs.csdn.net/topics/360168672?list=lz

    https://bbs.csdn.net/topics/390169429#post-392113140

    https://bbs.csdn.net/topics/390321525?page=1

     

     

    展开全文
  • Windows 10上开启路由转发及添加路由

    千次阅读 2020-11-11 13:20:12
    WIN10上开启转发及添加静态路由 注意:实验环境下主机B两个接口没有网关 B为华为的CT6200 操作步骤 一、主机B 开启 win10 转发功能 1、进入CMD 2、执行命令 reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip...

    WIN10上开启路由转发及添加静态路由

    在这里插入图片描述
    注意:实验环境下主机B两个接口没有网关

    操作步骤
    一、主机B 开启 win10 转发功能
    1、进入CMD
    在这里插入图片描述
    2、执行命令
    reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /D 1 /f
    在这里插入图片描述
    3、进入注册表
    将 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRoute设为1
    在这里插入图片描述
    4、启动Routing服务
    将 Routing and Remote Access 服务的启动类型更改为自动并启动服务
    在这里插入图片描述
    5、进入CMD执行命令
    sc config RemoteAccess start= auto
    sc start RemoteAccess
    在这里插入图片描述
    6、主机A添加路由
    Route add 192.168.114.0 mask 255.255.255.0 192.168.49.99

    完成之后,ping测试即可。

    展开全文
  • 主机路由配置

    2012-12-13 20:42:48
    添加删除主机路由windows: 主机:route add/delete 192.168.6.6 mask 255.255.255.255 192.168.6.254 -p (-p代表永久) 网段:route add/delete 192.168.6.0 mask 255.255.255.0 192.168.6.254 默认网关:...
  • Windows route命令在dos下添加路由

    千次阅读 2014-10-22 11:48:30
    就是用来显示、人工添加和修改路由表项目的。大多数主机一般都是驻留在只连接一 台路由器的网段上。 由于只有一台路由器, 因此不存在使用哪一台路由器将数据包发表到远 程计算机上去的问题,该路由器的...
  • 终端如何添加永久静态路由方式,包括windows主机和liux主机添加方式
  • windows主机添加路由 #route -p add 172.17.0.0 mask 255.255.0.0 虚拟机地址 route -p add 172.17.0.0 mask 255.255.0.0 192.168.29.129 虚拟机中关闭防火墙 sudo ufw disable 主机访问tomcat容器测试 ping 172....
  • Linux和Windows路由配置

    2016-09-01 11:32:00
    Linux和Windows路由配置 一、配置路由 1- 原则上一台主机只能有一条缺省路由。如果一台主机上有多个网段的话,请配置能够上网的那个网段的网关为缺省路由 Linux配置缺省路由: 添加 route add -...
  • 在win7中,docker容器是运行在docker虚拟机中的,宿主机上没有通往docker容器的路由。需要在宿主机添加前往docker容器的路由
  • linux、windows路由设置

    2014-02-20 11:13:50
    一:使用 route 命令添加 ...//添加主机路由 # route add –host 192.168.1.11 dev eth0 # route add –host 192.168.1.12 gw 192.168.1.1 //添加到网络的路由 # route add –net 192.168.1.11 n
  • 一:简单拓扑图 二:设置步骤 1.查看docker容器内的系统IP ...3.添加宿主机到Docker的路由 以管理员身份运行CMD,添加如下路由 ROUTE add 172.18.0.0 mask 255.255.0.0 10.241.250.0 检查是...
  • 1、拓扑图 2、前提条件 关闭虚拟机中的防火墙 在docker容器中安装并启用ssh服务 ...Windows宿主机与虚拟机CentOS网络互通(可通过Xshell连接) ...3、在Windows添加到docker容器网段的路由 route
  • Route就是用来显示、人工添加和修改路由表项目的。大多数主机一般都是驻留在只连接一台路由器的网段上。由于只有一台路由器,因此不存在使用哪一台路由器将数据包发表到远程计算机上去的问题,该路由器的IP地址可...
  • Route就是用来显示、人工添加和修改路由表项目的。大多数主机一般都是驻留在只连接一台路由器的网段上。由于只有一台路由器,因此不存在使用哪一台路由器将数据包发表到远程计算机上去的问题,该路由器的IP地址可...
  • 最近,公司有人反映拨入×××后,不能通过远程桌面连接内网机器。...而内网机器所在网段为10.10.10.0、 10.10.11.0、 10.10.12.0,随后分别在远程主机添加对应的静态路由: 网络地址 子网掩码 内...
  • 第二步:实施DHCP服务 1.打开服务器的控制面板,选择“添加或删除程序”。...4.现在从网络服务列表中选择“动态主机配置协议(DHCP)”,然后单击“确定”,进行下一步操作。 Windows现在将安装DHCP服务,安...
  • 第二步:实施DHCP服务 1.打开服务器的控制面板,选择“添加或...4.现在从网络服务列表中选择“动态主机配置协议(DHCP)”,然后单击“确定”,进行下一步操作。 Windows现在将安装DHCP服务,安装结束后,你将要创...
  • 本来一直都是在Windows10的Hyper-V中虚拟软路由的,直到有一天突发奇想,手贱在windows10宿主机中安装了个安卓模拟器,由于众所周知的原因,安卓模拟器是不能同时与Hyper-V虚拟机共存的,虽然我在安装后运行安卓...
  • windows上的route print

    2020-07-30 20:55:15
    route print ipv4路由参数解析获取windows主机路由信息概述表头活动路由表详解(序号和图对应)静态路由的添加和删除 获取windows主机路由信息 管理员运行CMD输入route print获取路由信息 概述表头 网络目标:此列...
  • 关于云主机的一些常见问题 远程无法访问:在门户侧查看云...端口不通:云主机查看安全组,路由映射是否添加,系统内查看端口是否开放,windows系统查看所有端口 netstat -ano 查看某个端口netstat -ano|findstr “...
  • Windows Route使用

    2013-01-13 22:46:00
    路由添加 route -p add [目标] [mask <网络掩码>] [网关] [metric <度量值>...目标可以是 IP 地址或子网前缀(又称为网络地址或网络标识符)(其中前缀的主机位设为 0)、主机路由的 IP ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 134
精华内容 53
关键字:

windows添加主机路由