目录
动态主机配置协议是一个局域网的网络协议,为网络中计算机自动分配TCP/IP参数的协议。
指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。担任DHCP服务器的计算机需要安装TCP/IP协议,并为其设置静态IP地址、子网掩码、默认网关等内容。
没有DHCP服务器,就没办法自动获取IP。(DHCP服务是简单的服务,一般家庭路由器都自带,难度不高,消耗的资源不大。)
拓展:
FTP是文件传输协议简称,主要用来上传、下载、共享文件,公网、局域网都可以使用。
跟Windows 右键共享文件,相似,但是共享只能在局域网里使用
缺陷
如果在一个局域网内,有两个DHCP服务器,客户端获取时,谁优先回复,就从谁那里优先获取IP,无法控制,可能会影响真实网络连接
1)客户机请求IP (相当于客户机点击自动获取IP操作)
DHCP Discover :客户端对外发起广播,问谁是DHCP服务器
255.255.255.255相当于广播地址,全网段广播
客户机发出请求IP后,站在客户端角度,会有三种可能
A.没有DHCP服务器:
不同版本不一样
Win XP 以前系统:循环询问(每隔一段时间反复询问)
Win 7以后的系统:询问一个完整周期(比如一分半),结束还未有回复,自己给自己分配一个169.开头的是假IP(不能使用、也不能通信,只是相当于一个“闭嘴的安抚奶嘴”目的就是不让继续广播下去)
B.有1个DHCP服务器:
回复你,继续分配
C.有多个DHCP服务器:
谁先回复,就使用谁分配的IP
2)服务器响应
服务器第一次给客户端提供数据时,仅提供IP地址,不是完整的租约信息。
拓展:
需要正常上网(访问公网),IP地址、子网掩码、网关、DNS服务器,缺一不可
仅是局域网访问,只需要有IP地址和子网掩码
3)客户机选择/确认IP地址
客户端拿到IP后,确认IP是否被人占用服务器确认,被占用重新广播会分配新的IP
一般租期:
有线:默认时8天 无线:默认8小时
4)服务器确定租约
服务器确认
客户端使用租约达到50%(租约8天,达到4天),以单播的形式向服务器请求续约
补充:
DHCP分配的IP不会跟用户手动配的IP(先配)相同,因为客户端第一次获取IP后进行确认是否被占用
如果DHCP先自动分配了,用户再手动分配同一个IP,会显示IP冲突
关键点
实验操作步骤:
前提:两个虚拟机都设置为NAT模式连接
1.打开“服务器管理器”

2.点击“角色”,选择“添加角色”

3.选择“下一步”

4.确认自身的IP(没有IP不能进行下一步,Windows会自动显示,Linux是通过配置文件完成的)服务器/server端安装配置DHCP的前提是:本身拥有固定IP地址

5.目前实验的虚拟机里的Windows服务器版没有安装域控,父域随便编一个,首选DNS服务器IPv4地址(R),是给客户端分配的IP,正常填写(8.8.8.8),点击下一步
DNS作用是连接公网的,根本原理是用来把域名翻译成IP,或者把IP翻译成域名(IP和域名转换),也叫域名解析,没有DNS服务器,不能上公网
如果Windows装了域控(AD活动目录),“父域”必须填写域控的父域名称,必须是一致的如果没有装,“父域”这里随便填写,但是需要注意格式规则,例如:test.com
6.选择“不需要”
win S服务 早就淘汰了 看到都可以禁用

7.选择添加,填写分配IP地址范围,确定,下一步


8.选择“禁用”,下一步

9.开始安装

DHCP完成安装,如下操作进入管理系统

地址池:是安装时自定义的可分配IP范围,不可二次调整
地址租用:可以看到已经分配的IP地址
保留:比如给打印机保留一个IP,是固定的

先关闭“适应本地DHCP服务将IP地址分配给虚拟机”

1.右击网络,选择“打开网络和Internet设置”

2.选择“更改适配器设置”

3.双击网络,选择属性

4.选择Internet协议版本4(TCP/IPv4)

5.选择自动获取

6.确认
检测是否生效、实验是否成功?
1.在服务器端的虚拟机,进入DHCP设置,找到地址租用,查看是否有分配的IP
唯一地址就是MAC地址

2.在客户端的虚拟机,搜索栏搜索:CMD,输入 ipconfig /all ,确认IP地址跟唯一地址是否匹配的上

客户端常用命令
ipconfig 查询网络信息(IP等)
ipconfig /? 帮助
ipconfig /renew 重新获取IP地址
ipconfig /release 释放获取的IP地址
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m