分类: 技术

  • 告别无法访问的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,以检索包的版本。

    1. 创建 Github Access Tokenworkflow 范围需要勾选;
    2. 运行 box config set github.access-token <Your Token> 命令来设置您的 token;
    3. 玩得开心 ~

    设置 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 bin
    • box build-prepare 为 build 和 build-self 命令做好相关环境的准备
    • box build-self 构建 box bin 本身
    • box build <path> 将 Hyperf 应用程序构建成二进制文件
    • box self-update 将 box bin 更新至最新版本
    • 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.1
    • box 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 骨架项目。

  • Swoole-Cli 5.0.1 使用说明

    Swoole-Cli 5.0.1 使用说明

    avatar

    Rango

    Swoole-Cli 介绍

    Swoole-Cli 是一个 PHP 的二进制发行版,集成了 swoolephp 内核php-cliphp-fpm以及多个常用扩展。Swoole-Cli 是全部静态编译打包的,不依赖任何操作系统的so动态链接库,具备非常好的移植性,可以在任意 Linux 系统之间复制,下载即可使用。

    GitHub: https://github.com/swoole/swoole-cli

    操作系统

    Swoole-Cli 会提供LinuxmacOSWindows(Cygwin) 3种操作系统的二进制包的支持。

    Windows环境推荐使用WSL

    主要更新

    1. PHP 同步到 8.1.12 版本
    2. 增加了 mongodb 扩展
    3. 集成了 cli http server 和 php-fpm

    下载安装

    下载地址:

    直接下载后放置到 /usr/bin 目录,并且设置为可运行,chmod +x /usr/bin/swoole-cli 即可。在终端中执行:

    swoole-cli -v
    swoole-cli -m
    

    Shell

    替代 PHP

    将 Swoole-Cli 软链接到 php,替代 PHP

    ln -s /usr/bin/swoole-cli /usr/bin/php
    php -v
    # 安装 composer
    curl -sS https://getcomposer.org/installer | php
    

    Shell

    配置文件

    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 -v
    

    Shell

    启动 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 -R
    

    Shell

    启动 CLI Server

    # 使用 Laravel Artisan 工具
    swoole-cli artisan serve
    # 启动 CLI Server
    swoole-cli -S 127.0.0.1:9001
    

    Shell

    启动 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.php
    

    Shell

    扩展列表

    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

    现在再打开一个终端就可以使用你自定义的命令了
     
     

    笔记

    1. /etc/profile是一个全局文件,会在~/.profile执行之前执行
    2. /etc/profile.d中存放的.sh脚本文件会被/etc/profile中的函数调用
    3. 启动一个终端时会执行/etc/profile文件, 它会执行/etc/profile.d中的.sh脚本文件, 执行时使用的具体命令要么是source /etc/profile.d/your_script.sh要么是./etc/profile.d/your_script.sh
    4. 使用00-作为.sh文件的名字开头是为了先执行该文件
    5. 虽然直接编辑/etc/profile文件也可以实现全局的alias, 但是不推荐这样做
  • Linux查看网络流量

    作为一个非职业运维,不时需要查看Linux服务器上的网络流量状况。本文介绍几个常用的Linux查看网络流量命令,并简要介绍其用法。部分命令系统已经内置,某些命令则需要从软件仓库或者自行编译安装,本文以CentOS系统为例介绍软件安装方法。

    查看总流量

    ip

    ip 命令来自 iproute2util 包,是查看、配置网络/路由的工具。作为 ifconfig 的替代品,ip 命令功能更强大,用法更语义化。

    ip命令在大多数系统上都已经默认安装,也可通过 yum install -y iproute 安装。ip 的 “-s -h” 参数查看各网卡的总流量,下图是 ip -s -h link 的输出结果:

    ip命令输出结果

    nload

    nload 命令可以查看各个网络设备的当前网络速率,也会展示流经设备的总流量。

    nload 来自EPEL软件库,CentOS安装命令为:yum install -y epel-release && yum install -y nload。查看eth0网卡流量 nload eth0命令输出如下:

    nload查看网络流量

    PS:netstat -s 和 ifconfig -s 都可以查看收发的总包(netstat分协议给出),但不会给出字节数据。

    查看实时网速网速

    nload 命令可以输出当前网速,上面已经介绍过,本节不再赘述。

    dstat

    dstat 是一个用来替换vmstatiostatnetstatnfsstatifstat的全能系统信息统计工具,支持数据实时刷新,输出直观易懂。

    dstat 默认没有安装,安装命令为:yum install -y dstatdstat -tnf 1 10 输出接下来10秒内每秒的网络数据:

    dstat输出

    sar

    sar 是System Activity Report的缩写,是一款全面的Linux系统运行状态统计和性能分析工具,可从磁盘IO、CPU负载、内存使用等多个维度对系统活动进行报告。

    sar 命令来自 sysstat 包,可使用这个命令安装:yum install -y sysstatsar -n TCP 1 10可查看接下来10秒内的tcp数据:

    sar查看tcp数据

    查看连接/进程流量

    ss/netstat

    ss 和 netstat 是查看活动链接/监听端口的常用命令。ss 是 netstat 的替代,性能更好,建议使用。

    ss 是 iproute2util 包的一部分,因此在大多数系统上默认安装,也可通过yum install -y iproute安装。netstat 来自 net-tools 包,新版系统上需要自行安装:yum install -y net-tools

    下图是用ss查看tcp连接的输出:

    ss查看tcp连接

    iftop

    iftop 是一款实时流量监控工具,可以查看每个连接的实时速率。

    iftop 来自EPEL软件库,安装命令是:yum install -y epel-release && yum install -y iftopiftop -nN -i eth0实时查看eth0网卡的各个连接和网速:

    iftop查看实时网速

    nethogs

    nethogs 是为了查看单个进程流量而设计的工具,按照进程进行带宽分组。

    nethogs 来自EPEL软件库,安装命令是:yum install -y epel-release && yum install -y nethogsnethogs -d 2 eth0 每2秒刷新流经eth0网卡的进程流量信息:

    nethogs输出

    其他

    tcpdump可以用来抓包,保存的数据可以用wireshark打开和查看。

  • Linux下删除乱码或特殊字符文件

    今天遇到一个问题,一个文件名是“-MXV9.log”,直接用rm删除的时候就报错,如下:

    [localhost]rm -MXV9.log
    rm: illegal option -- M
    rm: illegal option -- X
    rm: illegal option -- V
    rm: illegal option -- 9
    rm: illegal option -- .
    rm: illegal option -- l
    rm: illegal option -- o
    rm: illegal option -- g
    Usage: rm [-Rfir] file ...
    

    通常对这类文件都可以使用引号括起来删除,但是这里带引号删除也一样报illegal option的错。

    找了一些资料后发现这种文件可以这样删除:先ls -i 查到文件的inode,然后用find命令删除

    [localhost]ls -ilrt
    
    100985 -rw-r--r--  1 tbcs      users            0 Apr 18 11:32 -MXV9.log
    

    最前面一列的100985就是文件的inode,在主机上执行如下命令即可删除文件

    [localhost]find ./ -inum 100985 -exec rm {} \;
    或者 
    
    [localhost]find ./ -inum 100985 -delete;

    所以大家以后遇到文件名为乱码或者带有特殊字符的文件需要删除的情况下,可以尝试使用这种方法。

  • TMS、WMS、OMS和FMS,分别指什么呢?

    海外仓系统主要有TMS、WMS、OMS、FMS等功能模块,那么这几个功能分别指的是什么意思呢?跟着易境通的小编一起来了解一下吧!

    TMS:是指运输管理系统,能够通过多种方法和其他相关的操作一起提高物流的管理能力,主要管理物流轨迹、车辆管理,司机管理等,通过接口的方式与WMS系统链接实现数据互传。

    WMS:是指仓库管理系统,一款标准化、智能化过程导向管理的仓库管理软件,它结合了众多知名企业的实际情况和管理经验,能够准确、高效地管理跟踪客户订单、采购订单、以及仓库的综合管理。

    OMS:是指订单管理系统,主要管理物流轨迹、车辆管理,司机管理等,通过接口的方式与WMS系统链接实现数据互传。

    FMS:是指财务管理系统,在海外仓中主要用于费用结算管理。

    对于海外仓企业来说,OMS、WMS、TMS、FMS功能模块都是海外仓运营管理的信息化手段,可以单独使用,也可以协同一起使用。

    易境通海外仓系统包含国内头程发货至海外尾程及退货换标的处理,由WMS操作管理、TMS头程管理、OMS订单管理、FMS财务管理、CRM客户管理、DMS数据管理等各大功能模块融会贯通,以敏锐的信息技术赋能海外仓业务。易境通海外仓系统可以更智能化、流程化的进行仓储管理。能够在短时间内记录商品从运输到入库再到出库的所有信息,助力海外仓企业降本增效。

  • git重命名tag标签

    Git重命名tag标签教程

    在 git 中,我们要重命名一个 tag 标签,我们可以使用 git tag 命令。

    git重命名tag标签详解

    语法

    git tag newTag oldTag
    git tag -d oldTag 
    

    参数

    参数 描述
    newTag 新标签名。
    oldTag 重命名后的标签名。

    说明

    我们使用 git tag 将标签重命名后,我们还需要使用 git tag -d 命令,将旧标签删除,如果我们还需要将修改后的标签投送到远程,我们还需要使用如下命令:

    git push origin :refs/tags/oldTag
    git push --tags 
    

    push 命令中的冒号将标记从远程存储库。如果你不这样做,git 会在你的机器上创建旧的标签。最后,确保其他用户删除已删除的标签。请告诉他们(同事)运行以下命令:

    git pull --prune --tags 
    

    至此,重命名工作就完成了。

    Git重命名tag标签总结

    在 git 中,我们要重命名一个 tag 标签,我们可以使用 git tag 命令。