ping 命令能干些啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ping 命令能干些啥?相关的知识,希望对你有一定的参考价值。
Ping是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP配置就是正确的,你必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。简单的说,Ping就是一个测试程序,如果Ping运行正确,你大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping也被某些别有用心的人作为DDOS(拒绝服务攻击)的工具,曾经Yahoo就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping数据包而瘫痪的。
按照缺省设置,Windows上运行的Ping命令发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切正常,你应能得到4个回送应答。
Ping能够以毫秒为单位显示发送回送请求到返回回送应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络连接速度比较快。Ping还能显示TTL(Time
To
Live存在时间)值,你可以通过TTL值推算一下数据包已经通过了多少个路由器:源地点TTL起始值(就是比返回TTL略大的一个2的乘方数)-返回时TTL值。例如,返回TTL值为119,那么可以推算数据报离开源地址的TTL起始值为128,而源地点到目标地点要通过9个路由器网段(128-119);如果返回TTL值为246,TTL起始值就是256,源地点到目标地点要通过9个路由器网段。
通过Ping检测网络故障的典型次序
正常情况下,当你使用Ping命令来查找问题所在或检验网络运行情况时,你需要使用许多Ping命令,如果所有都运行正确,你就可以相信基本的连通性和配置参数没有问题;如果某些Ping命令出现运行故障,它也可以指明到何处去查找问题。下面就给出一个典型的检测次序及对应的可能故障:
ping
127.0.0.1--这个Ping命令被送到本地计算机的IP软件,该命令永不退出该计算机。如果没有做到这一点,就表示TCP/IP的安装或运行存在某些最基本的问题。
ping
本机IP--这个命令被送到你计算机所配置的IP地址,你的计算机始终都应该对该Ping命令作出应答,如果没有,则表示本地配置或安装存在问题。出现此问题时,局域网用户请断开网络电缆,然后重新发送该命令。如果网线断开后本命令正确,则表示另一台计算机可能配置了相同的IP地址。
ping
局域网内其他IP--这个命令应该离开你的计算机,经过网卡及网络电缆到达其他计算机,再返回。收到回送应答表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码(进行子网分割时,将IP地址的网络部分与主机部分分开的代码)不正确或网卡配置错误或电缆系统有问题。
ping
网关IP--这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够作出应答。
ping
远程IP--如果收到4个应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。
ping
localhost--localhost是个作系统的网络保留名,它是127.0.0.1的别名,每太计算机都应该能够将该名字转换成该地址。如果没有做到这一带内,则表示主机文件(/Windows/host)中存在问题。
ping
www.yahoo.com--
对这个域名执行Ping命...是通过DNS服务器
如果这里出现故障,则表示DNS服务器的IP地址配置不正确或DNS服务器有故障(对于拨号上网用户,某些ISP已经不需要设置DNS服务器了)。顺便说一句:你也可以利用该命令实现域名对IP地址的转换功能。
如果上面所列出的所有Ping命令都能正常运行,那么你对你的计算机进行本地和远程通信的功能基本上就可以放心了。但是,这些命令的成功并不表示你所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到。
Ping命令的常用参数选项
ping
IP
-t--连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断。
ping
IP
-l
2000--指定Ping命令中的数据长度为2000字节,而不是缺省的32字节。
ping
IP
-n--执行特定次数的Ping命令
参考资料:
http://zhidao.baidu.com/question/213445.html 参考技术A 它能告诉你现在哪些机器可用。ping 可能是最基本的 UNIX 网络命令,它仅仅向你提供的地址发送一个小包,然后侦
听这台机器是否有“回答”。你可使用机器的 Internet 地址,如 192.78.222.81,或者也可使用机器名:ping therehost。
该名字可以是局部的主机(host)文件中的名字或由域名服务器(DNS)解析的名字,但在任何情况下都应是网络可以用来找出特定
机器的名称。如果机器对 ping 没有响应,它也不会对其他什么有反应,因为在网络上“看”不见它。在这种情况下,除非问
题非常简单和明显,诸如机器被别人关掉了等,否则,去问问系统管理员。不管在哪种情况下都要涉及到系统管理员,因为重
启 UNIX 系统并不像 DOS 机器一样简单。7本回答被提问者采纳 参考技术B 测试连通性
但是如果对方开启了防火墙
虽然链路是通的,但是也是没有响应 参考技术C 检查网络是否畅通,检查对方主机的名称等
我能做些啥来解决“1 次提交落后于主人”?
【中文标题】我能做些啥来解决“1 次提交落后于主人”?【英文标题】:What I can do to resolve "1 commit behind master"?我能做些什么来解决“1 次提交落后于主人”? 【发布时间】:2016-03-11 03:51:08 【问题描述】:推送后,我在远程存储库中看到了这条消息:
1 次提交落后于 master。
此合并存在必须在提交之前解决的冲突。
要将这些更改手动合并到 TA20footerLast 中,请运行以下命令:
git checkout 7c891f50c557
注意:这将创建一个分离的头部!
git merge remotes/origin/master
【问题讨论】:
如果您想查看 master 上的 1 个新提交是什么,请运行git log -1 -p origin/master
【参考方案1】:
在开始之前,如果您对命令行不满意,可以使用 SourceTree、GitExtensions、GitHub 桌面 执行以下所有步骤>,或您最喜欢的工具。
要解决此问题,您可能有两种情况:
1。仅修复提交后的远程存储库分支
示例:两个分支都在远程端
提前 === 主分支
后面 === 开发分支
解决方案:
将存储库克隆到本地工作区:这将为您提供 Master 分支,该分支在提交之前
git clone repositoryUrl
使用 Develop 名称创建一个分支并在本地结帐到该分支
git checkout -b DevelopBranchName // this command creates and checkout the branch
从远程开发分支中拉取。 冲突可能会发生。如果是这样,修复 冲突并提交更改。
git pull origin DevelopBranchName
将本地 Develop 分支与远程 Develop 分支合并
git merge origin develop
将合并后的分支推送到远程开发分支
git push origin develop
2。本地 Master 分支在远程 Master 分支之后
这意味着每个本地创建的分支都落后了。
在此之前,您必须提交或存储您在提交后的分支上所做的所有更改。
解决方案:
查看您当地的 Master 分支
git checkout master
从远程主分支拉取
git pull origin master
现在您的本地 Master 与远程分支同步。由于上述命令,从先前本地 Master 分支分支的其他本地分支不同步。要解决这个问题:
检查本地 Master 分支后面的分支
git checkout BranchNameBehindCommit
与本地 Master 分支合并
git merge master // Now your branch is in sync with the local Master branch
如果此分支在远程存储库上,您必须推送您的更改。
git push origin branchBehindCommit
【讨论】:
在 1) -> 3) 给出错误:自动合并失败;修复冲突,然后提交结果。【参考方案2】:克隆你的叉子:
git clone git@github.com:YOUR-USERNAME/YOUR-FORKED-REPO.git
在您的分叉存储库中从原始存储库添加远程:
cd into/cloned/fork-repo
git remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
git fetch upstream
从原始 repo 更新你的 fork 以跟上他们的变化:
git pull upstream master
git push
【讨论】:
非常感谢,这正是我所需要的。像魅力一样工作。 工作得很好,解释得很好!【参考方案3】:如果你的分支落后于 master 然后做:
git checkout master (you are switching your branch to master)
git pull
git checkout yourBranch (switch back to your branch)
git merge master
合并后检查是否有冲突。 如果没有冲突,那么:
git push
如果存在冲突,请修复您的文件,然后:
git add yourFile(s)
git commit -m 'updating my branch'
git push
【讨论】:
一般情况下,开发者无权push到master。在这种情况下,这个解决方案会更好:***.com/a/59064413/8872674【参考方案4】:如果消息是“n 次提交落后于 master”。
您需要使用 master 重新设置您的 dev 分支。 您收到上述消息是因为在从 master 签出 dev 分支后,master 分支获得了新的提交并继续前进。 您需要将这些新提交提交到您的开发分支。
步骤:
git checkout master
git pull #this will update your local master
git checkout yourDevBranch
git rebase master
可能存在一些您必须解决的合并冲突。
【讨论】:
只是想补充一点,变基只能用于私有分支:blog.axosoft.com/golden-rule-of-rebasing-in-git 应谨慎应用 Rebase,因为它会重写提交哈希并可能导致一些问题。【参考方案5】:假设你目前在你的分支myBranch
执行以下操作:-
git status
如果所有更改都已提交
git pull origin master
如果没有提交更改
git add .
git commit -m"commit changes"
git pull origin master
检查是否有任何冲突,然后解决并提交更改
git add .
git commit -m"resolved conflicts message"
然后推
git push origin myBranch
【讨论】:
【参考方案6】:查看您在 GitHub 中的存储库...
想象一下这样一种场景,其中 main 或 master 是您的主分支,并且您还有另一个分支作为 dev,并且您的 dev 分支在 main 或 master 之后有 N 次提交,而在您的本地计算机中没有任何事情。
如何进行...
首先你必须从 Github 存储库克隆到你的机器,但是,首先,你的本地 git 不必知道你的辅助分支状态,只需要从主分支或主分支,所以 Git 只获取你的远程标签分支已更新,您的本地还没有提交。
因此,您需要至少 1 次提交,1 次推送到主服务器或主服务器,1 次拉回本地。
不要为你的 dev 分支推送任何东西,否则你会提前 1 次提交,在 main 或 master 后面有 N 次提交(所以,冲突)......
因此,您需要一个辅助分支来向远程主分支或主分支发送拉取请求。
事不宜迟。在这种情况下如何进行:
克隆存储库后...
git checkout -b aux-branch
-> 它将创建并签出分支
现在,您必须至少进行一次更改才能在本地 Git 中记录第一次提交,假设您目前没有任何要实现的内容...拿 README.md 文件来更改一个字母,一个空格,一个空行 更多...
git status
-> 你会看到你的 README 文件被修改了git add README.md
-> 将它添加到暂存区,准备好提交git commit -m "modified readme file"
git push -u origin aux-branch
->它应该会生成一个链接,将您带到您的存储库以打开并接受订购的拉取请求。
我使用 Rebase 和 Merge 接受它(下拉菜单中绿色按钮的最后一个选项),接受之后 GitHub 会询问您是否要删除 aux-branch... 是的,您想要,所以删除,因为您的main 或 master 现在具有 aux-branch 带来的最新功能。 现在回到你的本地(Git),按照以下方式进行:
git checkout main
或 mastergit branch -D aux-branch
-> 在您的本地也删除\git remote update --prune
-> 它可以获取和更新到您的远程。git pull
-> 到从远程 GHub 接收最新更新。git checkout dev
git rebase dev main
或 master ->(变基或合并)git push -u origin dev
-> 将更新爬到远程分支
现在去你的 GitHub 重新加载页面,下拉到你的 dev 分支,你会看到你的 dev 分支和你的 main/master 分支一样...
就是这样。希望对大家有帮助...
【讨论】:
【参考方案7】:使用
git cherry-pick <commit-hash>
因此,这将选择您对 git 位置的后面提交。
【讨论】:
【参考方案8】:如果分支在master之后,则删除远程分支。然后去本地分支运行:
git pull origin master --rebase
然后,再次将分支推送到原点:
git push -u origin <branch-name>
【讨论】:
请考虑保留提交历史。删除任何提交习惯的作品。不是一个好方法。以上是关于ping 命令能干些啥?的主要内容,如果未能解决你的问题,请参考以下文章