
1.github访问受限
dns污染-域名解析错误/网络限制/防火墙拦截
修改dns服务器/
代理软件clash 订阅
ping 127.0.0.1 测试本地网卡 网卡驱动
ping 网关ip 测试到路由器连通性 网线/wifi
ping 8.8.8.8 dns服务器 外网连通性 运营商
ipconfig 无限局域网 本地连接 虚拟网卡 虚拟机 代理
wlan 物理网卡 wifi
无ip 设置dhcp重启
ping github.com
ping 基于icmp 协议
0-30 局域网 30-100 国内跨城 100-200 跨国 200 延迟拥堵

每经过一个路由器,TTL 减 1,减到 0 时数据包被丢弃。
近似跳数 = 初始TTL值 - 收到的TTL值
系统类型 | 初始 TTL 值 |
|---|---|
Windows | 128 |
Linux/macOS | 64 |
路由器 / 服务器 | 255 |
示例:收到 TTL=119,目标是 Windows 主机 → 跳数≈128-119=9 跳。 |
若收到TTL≈128→ 对面大概率是 Windows 系统;TTL≈64→ 大概率是 Linux/macOS 系统。
服务器禁用icmp应答,ping不成功,但实际可以访问https/ftp
curl xxx.com
设置了代理但是ping不走代理,而是本机到目标ip
curl走代理
ping 8.8.8.8 → 通 → 外网基础连通;ping github.com → 超时 → 尝试 nslookup github.com → 若能解析到 IP → 说明 GitHub 禁用了 ICMP;测试dns返回
nslookup github.com
nslookup github.com 8.8.8.8 google dns
nslookup github.com 223.5.5.5 阿里云dns
ipconfig /flushdns 清除dns本地缓存
/etc/hosts 绑定dns
网络路由跟踪,找到中断路由器 /运营商路由/防火墙拦截/地区限制
tracert github.com linux traceroute
tracert(Windows 命令)的核心是发送递增 TTL 的 ICMP 数据包,通过每个跃点(路由器)的响应 / 超时,来追踪从本地主机到目标服务器的路由路径。
跃点序号 | 节点 IP / 域名 | 响应时间 | 节点类型与状态分析 |
|---|---|---|---|
1 | 192.168.2.1 | <1ms | 本地局域网网关(你的路由器内网 IP),响应极快,说明本地局域网连接正常,无延迟 / 丢包 |
2 | 10.60.83.254 | 5-7ms | 运营商内网网关(10.x.x.x 属于 A 类私网 IP 段),响应时间正常,说明本地路由器到运营商内网的转发无问题 |
3 | * | 请求超时 | 运营商内部中转路由器,禁用了 ICMP 响应,属于常规操作 |
4 | 10.0.1.6 | 1-4ms | 运营商内网的另一中转节点,响应快,运营商内部转发链路通畅 |
5 | 202.103.243.97 | 3-8ms | 国内公网骨干网节点(可通过 IP 库查询归属电信 / 联通等运营商),成功进入公网,延迟低 |
6 | 218.65.145.153 | 8ms | 国内公网骨干网的二级中转节点,转发正常 |
7-10 | * | 请求超时 | 国内骨干网到国际出口的过渡节点,这类节点通常会严格屏蔽 ICMP 请求,避免被扫描,属于正常现象 |
11 | 202.97.116.210 | 72-75ms | 运营商国际出口节点,延迟明显升高(从几 ms 跃升至 70+ ms),说明数据开始进入国际链路 |
12 | 203.215.237.42 | 72-90ms | 国际链路的一级中转节点,延迟符合国际传输的正常水平 |
13 | ae28-0.icr01.tyo30.ntwk.msn.net104.44.235.92 | 75-87ms | 从域名 tyo30 可判断是日本东京的微软网络中转节点,说明你的访问流量经过日本节点转发 |
14-16 | * | 请求超时 | 国际链路中的核心中转节点,均禁用 ICMP 响应 |
17 | 51.10.10.86 | 104-132ms | 靠近 GitHub 服务器的国际中转节点,延迟进一步增加 |
18-21 | * | 请求超时 | GitHub 服务器所在网络的边缘节点,禁用 ICMP 响应 |
22 | 20.205.243.166 | 105-107ms | GitHub 目标服务器 IP,响应正常,说明最终成功连通目标服务器 |
跟踪到第 22 跃点成功到达 GitHub 的目标 IP(20.205.243.166),说明你的网络可以正常访问 GitHub 服务器。
访问依旧无法打开,而是 DNS 解析或国际链路临时拥塞导致
端口扫描
tracert 用 ICMP 协议 运营商可能放行 ICMP 但拦截 HTTPS 流量。
telnet github.com 80 http
telnet github.com 443 端口https
telnet github.com 22 ssh
模拟协议
修改hosts
最新github解析
自动配置代理
关闭 Windows 防火墙
2.git的使用
略
3.github page
略
4.github工作流程
个人独立开发:
「不直接在 main 分支写代码」,避免主线混入未完成功能;
创建仓库,初始化远程仓库,克隆到本地
github网页new repository
git clone
避免修改主线main,创建功能分支
git checkout -b feature/xxx 创建并切换分支
修改代码
git add. 缓存区,跟踪变化
git commit -m "" 本地仓库,记录快照
推送到远程分支,同步远程github仓库
git push -u origin feature/xxx
合并到主线
git checkout main
git pull origin main 拉取
git merge feature/xxx 合并分支
git push origin main 推送主线
清理分支,删除无用的分支
本地删除
git brench -d feature/xxx
远程删除
git push origin --delete feature/xxx
① 查看提交记录:git log(找要回滚的 commit-id);
② 软回滚(保留代码):git reset --soft commit-id;
③ 硬回滚(删除代码):git reset --hard commit-id(谨慎使用)
多人协作同一仓库,保证主线(main/develop)稳定,通过「功能分支 + PR 审核」合并代码,避免直接修改主线。
步骤 | 操作目的 | Git/GitHub 命令 / 操作 |
|---|---|---|
1. 克隆团队仓库 | 获取团队远程仓库到本地 | git clone https://github.com/团队账号/团队仓库名.git |
2. 同步上游主线(关键) | 保持本地主线和团队最新同步 | ① 绑定团队上游仓库(首次):git remote add upstream https://github.com/团队账号/团队仓库名.git;② 拉取上游最新主线:git fetch upstream;③ 切回本地 main:git checkout main;④ 合并上游更新:git merge upstream/main |
3. 新建功能分支 | 基于最新主线创建分支 | git checkout -b feature/xxx-你的名字(如 feature/pay-zhangsan,区分开发者) |
4. 开发 & 提交 | 同个人开发(add→commit) | git add . && git commit -m "feat: 新增支付接口" |
5. 推送分支到远程 | 同步到团队仓库的远程分支 | git push origin feature/xxx-你的名字 |
6. 提 PR(合并请求) | 申请合并到团队主线 | GitHub 网页端:进入团队仓库→「Pull requests」→「New pull request」→ 选择「base: main」+「compare: feature/xxx - 你的名字」→ 填写 PR 描述(做了什么、测试情况)→ 提交 PR |
7. 代码审核 & 合并 | 经团队审核后合并 | ① 审核通过:GitHub 网页端点击「Merge pull request」(可选「Squash and merge」压缩提交);② 审核不通过:本地修改代码→git add . && git commit && git push(PR 会自动更新) |
8. 同步 & 清理分支 | 合并后清理 | ① 切回 main:git checkout main;② 拉取合并后的主线:git pull origin main;③ 删除本地分支:git branch -d feature/xxx-你的名字;④ 远程分支(可选):git push origin --delete feature/xxx-你的名字 |
给别人的仓库贡献代码,不直接修改原仓库,通过「Fork(仓库副本)+ PR」完成贡献,核心是「你的副本独立开发,原仓库维护者审核后合并」。
步骤 | 操作目的 | Git/GitHub 命令 / 操作 |
|---|---|---|
1. Fork 原仓库 | 复制原仓库到自己的 GitHub 账号(仓库级副本) | GitHub 网页端:打开原仓库→点击右上角「Fork」→ 选择自己的账号,生成「你的账号 / 原仓库名」副本 |
2. 克隆自己的 Fork 仓库 | 把副本拉到本地开发 | git clone https://github.com/你的账号/原仓库名.git |
3. 绑定原仓库为上游 | 同步原仓库的最新更新(避免开发时原仓库已更新) | git remote add upstream https://github.com/原作者账号/原仓库名.git |
4. 新建功能分支 | 基于原仓库主线创建分支(不修改自己的 main) | ① 拉取原仓库最新主线:git fetch upstream;② 切回自己的 main:git checkout main;③ 合并上游主线:git merge upstream/main;④ 新建分支:git checkout -b fix/xxx(如 fix/修复文档错别字) |
5. 开发 & 提交 | 同前(add→commit) | git add . && git commit -m "docs: 修复README中的错别字" |
6. 推送到自己的 Fork 仓库 | 同步到你账号下的远程分支 | git push origin fix/xxx |
7. 提 PR 到原仓库 | 请求原作者合并你的代码 | GitHub 网页端:① 打开你的 Fork 仓库→「Pull requests」→「New pull request」;② 选择「base repository: 原作者 / 原仓库」+「base: main」,「head repository: 你 / 原仓库」+「compare: fix/xxx」;③ 填写 PR 描述(说明修复内容、测试方式)→ 提交 PR |
8. 等待审核 & 反馈 | 原作者审核后处理 | ① 审核通过:原作者合并到他的主线,你的贡献生效;② 审核要求修改:本地修改→git commit && git push(PR 自动更新);③ 审核拒绝:可关闭 PR,不影响原仓库 |
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。