路由

论自己电脑如何搭建服务器

£可爱£侵袭症+ 提交于 2020-03-29 09:00:28
一. 如何实现外网访问本机 1. 运行本机服务,如:NodeJS跑起来 2. 上一步我们只实现了自己访问,但如何让外网能访问到你机子。有两种情况   (1)你上网没有用路由,运营商单独分给你一个外网IP地址,那你直接可以用你的IP让外网的同学来访问你的网站,我这里启动NodeJs用的是3000端口,所以形式为:XX.XX.XX.XX:3000。那我们怎么知道自己的IP地址,只要在百度搜索“IP查询”,第一个就是。   (2)用了路由器,一个路由器带了好几台电脑,这就需要你去路由管理页面去设置一下,端口映射,让别人访问你们的IP地址时,映射到你的电脑,在浏览器中输入192.168.1.1(以你的路由为准),进入路由管理页面,找到端口映射,把(路由的端口)映射到你(本机的ip+端口),这样外网访问(路由的外网ip+端口)就能找到你的本机地址 二. 为什么设置了端口映射但是访问不了 1. 你能搜索到这里,没猜错的话,你已经百度过这些问题了,或许已经找遍了满地的教程。你想实现路由器端口映射,可是总是无法正常连上。可无论如何按部就班地照做,还是无法成功。甚至曾经一度可以,而最近怎么也不行了 因为——你没有了公网IP。 2. 为什么没有了?   无论是电信、联通、还是移动或铁通,从ADSL升级之后,就已经开始支持了共享公网IP的方式,通过一系列的网络框架

使用静态路由连通全网

試著忘記壹切 提交于 2020-03-29 00:30:30
主要特点 手动配置 静态路由需要管理员根据实际需要一条条自己手动配置,路由器不会自动生成所需的静态路由的。静态路由中包括目标节点或目标网络的IP地址,还可以包括下一跳IP地址(通常是下一个路由器与本地路由器连接的接口IP地址),以及在本路由器上使用该静态路由时的数据包出接口等。 路由路径相对固定 因为静态路由是手动配置的,静态的,所以每个配置的静态路由在本地路由器上的路径基本上是不变的,除非由管理员自己修改。另外,当网络的拓扑结构或链路的状态发生变化时,这些静态路由也不能自动修改,需要网络管理员需要手工去修改路由表中相关的静态路由信息。 永久存在 也因为静态路由是由管理员手工创建的,所以一旦创建完成,它会永久在路由表中存在的,除非管理员自己删除了它,或者静态路由中指定的出接口关闭,或者下一跳IP地址不可达。 不可通告性 静态路由信息在默认情况下是私有的,不会通告给其它路由器,也就是当在一个路由器上配置了某条静态路由时,它不会被通告到网络中相连的其它路由器上。但网络管理员还是可以通过重发布静态路由为其它动态路由,使得网络中其它路由器也可获此静态路由。 来源: 51CTO 作者: wx5e7f024811a2d 链接: https://blog.51cto.com/14772677/2482707

MVC5 + EF6 入门完整教程一

假如想象 提交于 2020-03-28 18:14:23
原文:https://www.cnblogs.com/miro/p/4030622.html ASP.NET MVC开发模式和传统的WebForm开发模式相比,增加了很多"约定"。 直接讲这些 "约定" 会让人困惑,而且东西太多容易忘记。 和微软官方教程不同,笔者尽量不用脚手架,从空白框架开始,一步一步添加功能,每次添加的东西刚好够用,让大家能真正能用起来,理解每一个过程。 文章提纲 概述 核心概念介绍 从空白开始,建立一个基本框架详细步骤 概述 本系列文章及文章中的例子主要基于微软官方文档 使用工具 : VS2013 + MS SQL 2012 开始主要讲解MVC + EF搭配使用,后续同样也会提供MVC + ADO.NET的实现方案 核心概念介绍 MVC,Model – View – Controller 的简写 Model 封装业务逻辑相关的数据及对数据的处理方法 View 向用户提供交互界面 Controller 负责控制Model和View 看下面这张图。目前只要理解这一个概念就可以了,下面就开始建一个空框架,从做中学。 从空白开始,建立一个基本框架详细步骤 新建项目 NOTE:模板要选Empty,如果直接选MVC会产生多余代码。 NOTE:上图方框处正好对应于M, V, C 到此为止,就建立了一个最基本的MVC解决方案,基本是空的。

多个子路由器和主路由器怎么设置在同一个网段(变身无线交换机)

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-28 15:19:48
在工作中,为了满足不同的设备联网,我们经常会在办公室部署多个无线路由器 而有时候因为工作需要,我们要求所有设备都处在同一个网段中,保证互访互通 此时,我们需要把无线路由器更改为无线交换机使用了 1、首先登陆无线路由器,进入路由器设置界面 2、在网络参数里,把Lan的ip地址改成和主路由器同一个网段,比如我的主路由器是192.168.1.1,那么我这里就设置为192.168.1.200,然后把DHCP服务设置禁用 3、再然后就重启路由器 4、线路连接,从主路由器的lan口拉线出来,连接到无线路由器的lan口,记住不是连接到wlan口 5、此时,无线路由器已变身为无线交换机功能了,无线设备获取的IP也和主路由器处在同一个网段了 来源: https://www.cnblogs.com/fjping0606/p/6606364.html

Vue-router路由系统介绍

扶醉桌前 提交于 2020-03-28 13:50:02
路由原理 传统开发方式 url改变后 立刻发起请求,响应整个页面,渲染整个页面 SPA 锚点值改变后 不会发起请求,发起ajax请求,局部改变页面数据 页面不跳转 用户体验更好 SPA single page application(单页应用程序) 前端路由 锚点值监视 ajax获取动态数据 核心点是锚点值 前端框架 Vue/angular/react都很适合开发单页应用 基本使用 vue-router 其是vue的核心插件 1:下载 npm i vue-router -S 1.5(重要):安装插件 Vue.use(VueRouter); 2:在main.js中引入vue-router对象 import VueRouter form './x.js'; 3:创建路由对象 var router = new VueRouter(); 4:配置路由规则 router.addRoutes([路由对象]); 路由对象 {path:'锚点值',component:要(填坑)显示的组件} 5:将配置好的路由对象交给Vue 在options中传递-> key叫做 router 6:留坑(使用组件) <router-view></router-view> router-link to <router-link to="/xxx/x">点我</router-link> 帮助我们生成a标签的href

路由选择信息协议

你说的曾经没有我的故事 提交于 2020-03-28 07:11:37
路由信息协议(RIP)是一种在网关与主机之间交换路由选择信息的标准。RIP 是一种内部网关协议。在国家性网络中如当前的因特网,拥有很多用于整个网络的路由选择协议。作为形成网络的每一个自治系统(AS),都有属于自己的路由选择技术,不同的 AS 系统,路由选择技术也不同。 RIP的特点 (1)仅和相邻的路由器交换信息。如果两个路由器之间的通信不经过另外一个路由器,那么这两个路由器是相邻的。RIP协议规定,不相邻的路由器之间不交换信息。 (2)路由器交换的信息是当前本路由器所知道的全部信息。即自己的路由表。 (3)按固定时间交换路由信息,如,每隔30秒,然后路由器根据收到的路由信息更新路由表。(也可进行相应配置使其触发更新) 适用 RIP 和 RIP 2 主要适用于 IPv4网络,而 RIPng 主要适用于 IPv6 网络。本文主要阐述 RIP 及 RIP 2。 RIPng:路由选择信息协议下一代(应用于IPv6) (RIPng:RIP for IPv6)RIPng与RIP 1和 RIP 2 两个版本不兼容。 RIP协议的“距离”其实就是“跳数”(hop count),因为每经过一个路由器,跳数就加1。RIP认为好的路由就是它通过的路由器的数目少,即“距离短”。 应用 RIP(Routing information Protocol)是应用较早、使用较普遍的内部网关协议(Interior

前端优化之 -- 使用 require.context 让项目实现路由自动导入

三世轮回 提交于 2020-03-28 00:41:25
最近接手了公司两个项目,一个PC端后台管理系统,一个app端项目,当然使用的依然是熟悉“Vue全家桶”那套!但是,当我打开项目时,里面的代码是这样的(路由模块): 就是所有路由配置都放到一个index.js中,这多少还是让我有点惊呆的,显然,项目会越做越大,模块会越加越多,那这种不分模块的架构方式明显给以后带来很大维护困难,index.js文件会变得异常庞大... 所以,我便想趁现在代码量还在可控的情况下赶紧优化一下吧!于是,跟领导说明了用意,并很快得到了首肯!所以就开始动起来了~ 1. 分模块:   首先,当然是要把不同模块的路由分离开来了(本来想只把新加入的功能模块做处理,老模块保留现状,因为复制、粘贴也是很耗体力的。但是,想想所幸现在项目还不大,再加上目前虽然不年轻但还算力壮,且还稍微有点强迫症的催动下,所以还是决定将现在有代码拆开...),心里小小斗争一下之后,就开干了!于是,就有了这样的结构: 同时,让index.js的全部代码缩减成了这样: 为啥你module里的文件名会是.routes.js 呢?这个嘛... 其实是个小技巧,并不是便性规定, 1. 为了方便正则匹配,2. 为了标识文件的功能,让人一看就是知道这是路由文件... 啥正则匹配? 2. 自动导入:   为啥能将index.js缩减成这样呢?其实就是代码所示,利用了require

ZeroTier路由分配公网IPV6

江枫思渺然 提交于 2020-03-27 06:44:56
ZeroTier路由分配公网IPV6 ====> VPS 中的操作 给 /64 位的 ipvhenet 分配 /80 ,2001:470:66:233:ffff::/80 rp_filter 对于数据包的来源地址和来源网卡进行检查:0禁用,1严格,2宽松 一定要关闭 Linux 内核的 rp_filter 功能,具体步骤如下: vim /etc/sysctl.conf net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1 net.ipv6.conf.all.proxy_ndp=1 net.ipv6.conf.all.accept_ra=2 net.ipv6.conf.all.mtu = 1500 sysctl -p ip6tables -A FORWARD -i ztyqbqkuhq -s 2001:470:66:233:ffff::/80 -j ACCEPT ip6tables -A FORWARD -i he-ipv6 -d 2001:470:66:233:ffff::/80 -j ACCEPT # 路由后可能导致不能 # ifconfig zt+ up # ifconfig zt+ mtu 1480 # ip -6 route add local [分配给你的/64 地址池]/64 dev lo #

复试专业课知识记录(6)

浪子不回头ぞ 提交于 2020-03-27 06:12:32
2020.3.27学习记录 1.OSI,TCP/IP,五层协议的体系结构  OSI分层(7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。  TCP/IP分层(4层):网络接口层、网际层、运输层、应用层。  五层协议(5层):物理层、数据链路层、网络层、运输层、应用层。  每一层的作用如下:   物理层:激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。 数据链路层:数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。   网络层:网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能。   传输层:第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。   会话层:会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。   表示层:表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。   应用层:为操作系统或网络应用程序提供访问网络服务的接口。  参考博客:

node_egg路由Router

China☆狼群 提交于 2020-03-26 18:35:28
路由(Router) 框架约定了app/router.js文件用于统一所有路由规则。 Router 主要用来描述请求URL和具体承担执行动作的 Controller 的对应关系 定义路由(Router) // app/router.js 里面定义 URL 路由规则 module.exports = app => { const { router, controller } = app; router.get('/user/:id', controller.user.info); // 动态路由传参 }; // app/controller 目录下面实现 Controller // app/controller/user.js class UserController extends Controller { async info() { this.ctx.body = `hello ${ctx.params.id}`, 使用params接收 } } Router详细定义说明,完整路由定义包括5个主要部分 router.verb('path-match', app.controller.action); router.verb('router-name', 'path-match', app.controller.action); router.verb('path-match',