作者: houlijiang
-
告别无法访问的github(附解决方案)
大家好,我是一行
最近一行在使用github的时候又登不上去了,挂着NPV都没用
据说是某些不可描述的有关组织机构对该网站的DNS污染或者随机丢包造成的
什么是DNS污染呢?
本来很多域名对应的IP地址都是由上游可信赖的服务器提供的,这样可以降低网络上的流量压力
但是对于有些攻击来说,他就去污染可信赖服务器里数据包,这样我一请求github,都给我登上了错误的服务器或服务器的网址
这样的DNS攻击让我打不开还算好的,一旦让我打开些不可描述的网站,那在公共场合不得社死
github解决办法
但是自己很多项目都存在github,登不上去那不得损失很大
所以一行必须整点儿特殊手段来访问,顺便分享一下
1.加速器
网上很多解决方案都是在分享各种加速器来登陆、像下面这个Pigcha加速器可以登陆github

但大部分都是一些软件商的软文,先体验再收费,但是对于网络登录看完下面的分享就没必要再去付费了
2.修改本地host
既然上游服务器的域名地址被修改了,那我们直接在本地hosts文件了指定好域名对应的IP地址不就好了嘛
hosts 文件在每个系统的位置不一,详情如下:
- Windows 系统:C:\Windows\System32\drivers\etc\hosts
- Linux 系统:/etc/hosts
- Mac(苹果电脑)系统:/etc/hosts
- Android(安卓)系统:/system/etc/hosts
- iPhone(iOS)系统:/etc/hosts
然后将下面这些数据拷贝到自己电脑的hosts文件,再激活生效就可以了
140.82.114.25 alive.github.com 140.82.112.25 live.github.com 185.199.108.154 github.githubassets.com 140.82.112.22 central.github.com 185.199.108.133 desktop.githubusercontent.com 185.199.108.153 assets-cdn.github.com 185.199.108.133 camo.githubusercontent.com 185.199.108.133 github.map.fastly.net 199.232.69.194 github.global.ssl.fastly.net 140.82.112.4 gist.github.com 185.199.108.153 github.io 140.82.114.4 github.com 192.0.66.2 github.blog 140.82.112.6 api.github.com 185.199.108.133 raw.githubusercontent.com 185.199.108.133 user-images.githubusercontent.com 185.199.108.133 favicons.githubusercontent.com 185.199.108.133 avatars5.githubusercontent.com 185.199.108.133 avatars4.githubusercontent.com 185.199.108.133 avatars3.githubusercontent.com 185.199.108.133 avatars2.githubusercontent.com 185.199.108.133 avatars1.githubusercontent.com 185.199.108.133 avatars0.githubusercontent.com 185.199.108.133 avatars.githubusercontent.com 140.82.112.10 codeload.github.com 52.217.223.17 github-cloud.s3.amazonaws.com 52.217.199.41 github-com.s3.amazonaws.com 52.217.93.164 github-production-release-asset-2e65be.s3.amazonaws.com 52.217.174.129 github-production-user-asset-6210df.s3.amazonaws.com 52.217.129.153 github-production-repository-file-5c1aeb.s3.amazonaws.com 185.199.108.153 githubstatus.com 64.71.144.202 github.community 23.100.27.125 github.dev 185.199.108.133 media.githubusercontent.com复制
大部分情况下是直接生效,如未生效可尝试下面的办法,刷新 DNS:
- Windows:在 CMD 窗口输入:ipconfig /flushdns
- Linux 命令:sudo nscd restart,如报错则须安装:sudo apt install nscd 或 sudo /etc/init.d/nscd restart
- Mac 命令:sudo killall -HUP mDNSResponder
如果还没有生效的话,可以尝试重启一下电脑,毕竟这步操作可以解决 95 % 的电脑bug
当然还有一些自动修改hosts文件的软件,但是有一定的风险性,所以如果手动修改hosts也没用的话,建议再参考一下镜像通道
3.镜像通道
如果手动修改hosts还不行的话,可以尝试使用镜像通道
例如原始用法是:
git clone https://github.com/PaddlePaddle/PaddleDetection复制
那加速通道就是:
git clone https://hub.fastgit.org/PaddlePaddle/PaddleDetection.git复制
也就是github clone加速的时候,前面的域名用https://hub.fastgit.org/ 来替换掉https://github.com就行啦!
当然,对于镜像通道也可以使用fastgit的开源软件:https://github.com/xljiulang/FastGithub
最后
其实,如果你发现最近网络不太好(不仅仅是指github),那可能是最近日子比较特殊
如果实在受不了时不时的断网,也可以把项目托管在国内的gitee,那网速体验将会提升一个数量级
好了,这就是今天的分享,技术永不眠,我们下期见~
-
box, by Hyperf
Box 致力于帮助提升 PHP 应用程序的编程体验,尤其有助于 Hyperf 应用,管理 PHP 环境和相关依赖,同时提供将 PHP 应用程序打包为二进制程序的能力,还提供反向代理服务来管理和部署 Swoole/Swow 服务。
目前还是早期实验版本,欢迎试玩 ~
使用
安装 box
Mac
wget https://github.com/hyperf/box/releases/download/v0.5.4/box_x86_64_macos -O box sudo mv ./box /usr/local/bin/box sudo chmod 755 /usr/local/bin/box // 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 `box` 放到你想要的任意 $PATH 路径中
Linux x86_64
wget https://github.com/hyperf/box/releases/download/v0.5.4/box_x86_64_linux -O box sudo mv ./box /usr/local/bin/box sudo chmod 755 /usr/local/bin/box // 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 `box` 放到你想要的任意 $PATH 路径中
Linux aarch64
目前我们缺少 AARCH64 Github Actions Runner,所以无法及时构建 AARCH64 版本的 bin 文件。
wget https://github.com/hyperf/box/releases/download/v0.0.3/box_php8.1_aarch64_linux -O box sudo mv ./box /usr/local/bin/box sudo chmod 755 /usr/local/bin/box // 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 `box` 放到你想要的任意 $PATH 路径中
Windows
curl -o box.exe https://github.com/hyperf/box/releases/download/v0.5.4/box_x64_windows.exe // 将 `box.exe` 放到你想要的任意 Path 环境变量路径中,同时 Windows 版本在执行时需要在命令行中使用 `box.exe` 而不是 `box`
初始化 Github Access Token
Box 需要一个 Github 访问令牌来请求 Github API,以检索包的版本。
- 创建 Github Access Token,
workflow范围需要勾选; - 运行
box config set github.access-token <Your Token>命令来设置您的 token; - 玩得开心 ~
设置 Box Kernel
默认情况下,Box 由 Swow Kernel 提供支持,但是我们也提供了 Swoole Kernel,您可以通过
box config set kernel swoole来切换为 Swoole Kernel,但是需要注意的是,Swoole Kernel 仅支持 PHP 8.1 版本,且不支持构建二进制程序功能和 Windows 系统环境。// 设置为 Swow Kernel [默认] box config set kernel swow // 设置为 Swoole Kernel (不支持 Windows) box config set kernel swoole
命令
box get pkg@version从远程安装包,pkg是包名,version是包的版本,box get pkg表示安装最新版本的 pkg,例如, 运行box get php@8.1安装 PHP 8.1, 运行box get composer安装最新的 composer binbox build-prepare为build和build-self命令做好相关环境的准备box build-self构建boxbin 本身box build <path>将 Hyperf 应用程序构建成二进制文件box self-update将boxbin 更新至最新版本box config list输出 box 配置文件的所有内容box config get <key>从配置文件中按键检索值box config set <key> <value>通过 key 设置 value 到配置文件中box config unset <key>按 key 删除配置值box config set-php-version <version>设置 box 的当前 PHP 版本,可用值:8.0 | 8.1box config get-php-version <version>获取 box 的当前设置的 PHP 版本box reverse-proxy -u <upsteamHost:upstreamPort>启动一个反向代理 HTTP 服务器,用于将 HTTP 请求转发到指定的多个上游服务器box php <argument>通过当前 box 的 PHP 版本运行任何 PHP 命令box composer <argument>通过当前 box 的 PHP 版本运行任何 Composer 命令,composer bin 的版本取决于最后执行的get composer命令box php-cs-fixer <argument>通过当前 box 的 PHP 版本运行任何php-cs-fixer命令,composer bin 的版本取决于最后执行的get php-cs-fixer命令box cs-fix <argument>通过当前 box 的 PHP 版本运行php-cs-fixer fix命令,composer bin 的版本取决于最后执行的get php-cs-fixer命令box phpstan <argument>通过当前 box 的 PHP 版本运行任何phpstan命令,composer bin 的版本取决于最后执行的get phpstan命令,此命令仅在 box v0.3.0 及以上的版本中可用box pint <argument>通过当前 box 的 PHP 版本运行任何pint命令,composer bin 的版本取决于最后执行的get pint命令,此命令仅在 box v0.3.0 及以上的版本中可用box version输出当前 box bin 的版本号
关于 Swow-Skeleton
希望体验 Box 完整功能的朋友,需要通过 Swow Kernel 来运行,因此您需要基于 hyperf/swow-skeleton 来运行您的项目,可通过
box composer create-project hyperf/swow-skeleton:dev-master命令来创建一个基于 Hyperf 3.0 RC 版的 Swow 骨架项目。 - 创建 Github Access Token,
-
Swoole-Cli 5.0.1 使用说明
Swoole-Cli 5.0.1 使用说明

Swoole-Cli 介绍
Swoole-Cli是一个 PHP 的二进制发行版,集成了swoole、php 内核、php-cli、php-fpm以及多个常用扩展。Swoole-Cli是全部静态编译打包的,不依赖任何操作系统的so动态链接库,具备非常好的移植性,可以在任意Linux系统之间复制,下载即可使用。GitHub: https://github.com/swoole/swoole-cli
操作系统
Swoole-Cli会提供Linux、macOS、Windows(Cygwin)3种操作系统的二进制包的支持。Windows环境推荐使用WSL主要更新
PHP同步到8.1.12版本- 增加了
mongodb扩展 - 集成了
cli http server和php-fpm
下载安装
下载地址:
linux x64:http://img.faxian001.com/download/swoole-cli-v5.0.1-linux-x64.tar.xz- windows: http://img.faxian001.com/download/swoole-cli-v5.0.1-cygwin64.zip
直接下载后放置到
/usr/bin目录,并且设置为可运行,chmod +x /usr/bin/swoole-cli即可。在终端中执行:swoole-cli -v swoole-cli -mShell
替代 PHP
将
Swoole-Cli软链接到php,替代PHPln -s /usr/bin/swoole-cli /usr/bin/php php -v # 安装 composer curl -sS https://getcomposer.org/installer | phpShell
配置文件
swoole-cli默认不加载任何php.ini配置文件。可通过
-d参数来设置PHP选项或使用-c参数指定加载的php.ini配置文件。swoole-cli -d swoole.use_shortname=off bin/hyperf.php start swoole-cli -c /tmp/php.ini -vShell
启动 PHP-FPM
swoole-cli集成了PHP-FPM,可使用-P命令来启动fpm。# 查看帮助文件 swoole-cli -P -h # 运行 FPM swoole-cli -P --fpm-config /opt/php-8.1/etc/php-fpm.conf -p /opt/php-8.1/var # 关闭守护进程 swoole-cli -P --fpm-config /opt/php-8.1/etc/php-fpm.conf -p /opt/php-8.1/var -F # 使用 root 账户启动 swoole-cli -P --fpm-config /opt/php-8.1/etc/php-fpm.conf -p /opt/php-8.1/var -F -RShell
启动 CLI Server
# 使用 Laravel Artisan 工具 swoole-cli artisan serve # 启动 CLI Server swoole-cli -S 127.0.0.1:9001Shell
启动 Swoole Server
server.php
$http = new Swoole\Http\Server('127.0.0.1', 9501); $http->on('start', function ($server) { echo "Swoole http server is started at http://127.0.0.1:9501\n"; }); $http->on('request', function ($request, $response) { $response->header('Content-Type', 'text/plain'); $response->end('Hello World'); }); $http->start();PHP
执行
swoole-cli server.phpShell
扩展列表
Swoole-Cli的PHP版本和所加载的扩展是确定的,因此不需要担心缺少某些功能扩展函数。htf@htf-ThinkPad-T470p:~/workspace/cli-swoole$ ./bin/swoole-cli -m [PHP Modules] bcmath bz2 Core ctype curl date dom exif fileinfo filter gd gmp hash iconv imagick intl json libxml mbstring mongodb mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_sqlite Phar posix redis Reflection session SimpleXML soap sockets sodium SPL sqlite3 standard swoole tokenizer xml xmlreader xmlwriter xsl yaml zip zlib [Zend Modules] -
github 加速访问解决方案Ghips.exe
下载地址:http://img.faxian001.com/download/Ghips.exe
-
docker虚拟磁盘文件迁移ext4.vhdx

ext4.vhdx默认在C盘用户下, 会很大, 现在要迁移到其他盘.
(1)打开Windows PowerShell
查看docker状态和版本

docker-desktop-data
需要迁移到其他盘
(2) wsl –shutdown
(3) 导出 docker-desktop-data
wsl –export docker-desktop-data E:\install\docker_data\docker-desktop-data.tar
(4)注销 docker-desktop-data
wsl –unregister docker-desktop-data
(5)重新导入docker-desktop-data
wsl –import docker-desktop-data E:\install\docker_data\data\ E:\install\docker_data\docker-desktop-data.tar –version 2
就转移到E盘下面了

-
Linux alias所有用户 当前用户
自定义alias命令格式
alias gs="git status" --color=auto, –color指定自定义命令的颜色
直接在终端中执行alias命令只对当前终端有效, 不太方便
alias设置对当前用户有效的方法
只需一步, 在
~/.bashrc末尾加入你的alias命令即可, 比如alias gs="git status" --color=auto, 重新打开一个终端就行了alias设置对所有用户有效的方法
只需一步, 在/etc/profile.d/目录下创建一个shell文件00-aliases.sh
执行
sudo vim /etc/profile.d/00-aliases.sh
然后输入你需要的alias命令并保存, 比如alias gs="git status" --color=auto现在再打开一个终端就可以使用你自定义的命令了
笔记
/etc/profile是一个全局文件,会在~/.profile执行之前执行/etc/profile.d中存放的.sh脚本文件会被/etc/profile中的函数调用- 启动一个终端时会执行
/etc/profile文件, 它会执行/etc/profile.d中的.sh脚本文件, 执行时使用的具体命令要么是source /etc/profile.d/your_script.sh要么是./etc/profile.d/your_script.sh - 使用
00-作为.sh文件的名字开头是为了先执行该文件 - 虽然直接编辑
/etc/profile文件也可以实现全局的alias, 但是不推荐这样做