V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
azusachino
V2EX  ›  GitHub

目前国内访问 Github 基本上是不可用状态,请问有没有比较合适的解决办法?

  •  
  •   azusachino ·
    azusachino · 2022-12-12 11:53:14 +08:00 · 4893 次点击
    这是一个创建于 743 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. Github 不单单是代码管理,更多的可能是作为社区,或者说,个人简历一样的功能,所以肯定是不能割舍的;
    2. 本地也尝试了使用 socks.proxy 这样的代理模式,但是感觉效果不是很好,git push 还是失效的;

    麻烦大佬指指路,谢谢。

    第 1 条附言  ·  2022-12-12 14:02:06 +08:00
    感谢各位大佬回复,目前,直接改 host 的效果是最好的;因为是公司的电脑,所以软路由就不太合适了;
    随便找了一个 ping 域名找 ip 的工具,这里也贴出来 https://networkappers.com/tools/ping-tool

    [可能是公司这边的 DNS 解析到一个已经死了的 IP 上了?导致 fetch, push 都是 Connection closed]

    至于我本地的 socks 为什么没生效,我再调试调试。🙏
    第 2 条附言  ·  2022-12-12 14:20:51 +08:00
    目前,评论区给出的两款本地代理软件应该是可用的,只是,与我公司的这台电脑有点水土不服吧,不太稳定。

    1. Watt Toolkit - 「 Watt Toolkit 」是一个开源跨平台的多功能 Steam 工具箱。
    地址: https://github.com/BeyondDimension/SteamTools
    2. FastGithub - github 加速神器,解决 github 打不开、用户头像无法加载、releases 无法上传下载、git-clone 、git-pull 、git-push 失败等问题
    地址: https://github.com/dotnetcore/FastGithub
    28 条回复    2022-12-20 14:10:06 +08:00
    kyric
        1
    kyric  
       2022-12-12 12:07:13 +08:00
    在 git config 里面设置本地 socks 的代理就可以了
    cvbnt
        2
    cvbnt  
       2022-12-12 12:12:52 +08:00 via Android   ❤️ 2
    clash tun
    muzihuaner
        3
    muzihuaner  
       2022-12-12 12:13:35 +08:00 via Android
    Steam++
    libook
        4
    libook  
       2022-12-12 12:14:13 +08:00
    我记得 git 好像用的是 curl ,是支持环境变量配置代理的,可以参考我这个工具箱的代码,亲测有效
    https://github.com/libook/IdleBox/blob/master/zshrcs/public/shell-proxy

    根据之前踩过的坑,不同的程序可能对环境变量的大小写敏感,所以我这个里面大小写全都 export 。
    Dvel
        5
    Dvel  
       2022-12-12 12:24:16 +08:00
    我是这么搞的。

    ~/.zshrc 开启 http 代理:
    export https_proxy=http://127.0.0.1:6152
    export http_proxy=http://127.0.0.1:6152
    export all_proxy=socks5://127.0.0.1:6153

    再在 ~/.ssh/config 开启 ssh 代理:
    Host *
    ProxyCommand nc -X 5 -x 127.0.0.1:6153 %h %p


    或者直接增强模式。
    hsfzxjy
        6
    hsfzxjy  
       2022-12-12 12:25:17 +08:00 via Android
    proxychains 一把梭
    Hurriance
        7
    Hurriance  
       2022-12-12 12:27:40 +08:00
    我用过第二种,没有失效的情况,可以检查下是不是其他问题
    bipy
        8
    bipy  
       2022-12-12 12:47:14 +08:00   ❤️ 1
    git 两种模式:SSH 、HTTP
    proxy 两种模式:SOCKS 、HTTP

    两两组合,共 4 种设置,请按需正确配置:

    # 1. git http + proxy http
    git config --global http.proxy "http://127.0.0.1:1080"
    git config --global https.proxy "http://127.0.0.1:1080"

    # 2. git http + proxy socks
    git config --global http.proxy "socks5://127.0.0.1:1080"
    git config --global https.proxy "socks5://127.0.0.1:1080"

    # to unset
    git config --global --unset http.proxy
    git config --global --unset https.proxy

    # 3. git ssh + proxy http
    vim ~/.ssh/config
    Host github.com
    HostName github.com
    User git
    ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=1087

    # 4. git ssh + proxy socks
    vim ~/.ssh/config
    Host github.com
    HostName github.com
    User git
    ProxyCommand nc -v -x 127.0.0.1:1080 %h %p
    arischow
        9
    arischow  
       2022-12-12 12:49:29 +08:00
    0. 能不能路由层翻墙?
    1. 能不能用网关模式 (Surge)? Clash 应该叫 TUN 模式
    yfugibr
        10
    yfugibr  
       2022-12-12 12:58:40 +08:00 via Android   ❤️ 1
    Clash 或 Clash.Meta 的 tun 模式很方便
    另外很多机场会屏蔽 22 端口,可以走 443 端口的 ssh
    官方文档 https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port
    herozzm
        11
    herozzm  
       2022-12-12 13:01:28 +08:00   ❤️ 1
    host 大法?
    52acca
        12
    52acca  
       2022-12-12 13:15:42 +08:00 via Android
    路由器透明代理比较完美
    waiaan
        13
    waiaan  
       2022-12-12 14:06:47 +08:00
    lambdaq
        14
    lambdaq  
       2022-12-12 14:11:19 +08:00
    上一次 github 被封,还是 李开复 在微博上号召大家投诉工信部才解决的。
    20210610204811
        15
    20210610204811  
       2022-12-12 14:32:04 +08:00
    dguge
        16
    dguge  
       2022-12-12 15:04:11 +08:00
    换成 gitee 或 coding
    wdssmq
        17
    wdssmq  
       2022-12-12 15:12:25 +08:00
    Windows 下 SSH 走代理可以这样,socks 协议

    Host github.com
    User git
    ProxyCommand "C:\Program Files\Git\mingw64\bin\connect.exe" -S 127.0.0.1:10808 %h %p
    GeruzoniAnsasu
        18
    GeruzoniAnsasu  
       2022-12-12 15:15:31 +08:00
    proxychains 一把梭 +1
    dzdh
        19
    dzdh  
       2022-12-12 15:16:31 +08:00
    自建 gitea 吧
    yoa1q7y
        20
    yoa1q7y  
       2022-12-12 15:18:24 +08:00
    路由器翻,对墙完全无感
    NuKc
        21
    NuKc  
       2022-12-12 15:20:20 +08:00
    wxxxcxx
        22
    wxxxcxx  
       2022-12-12 15:22:32 +08:00
    装个 gh ,授权后 git 用 https 协议的仓库就不需要每次都登陆了
    Alan3
        23
    Alan3  
       2022-12-12 15:25:13 +08:00
    在多用户的 linux 下,自用,
    1. 安装好 proxychains
    ```
    alias pc=/path/to/proxychains4
    ```

    2. 启动和关闭脚本 naive,这里代理软件以 naiveproxy 为例子
    ```
    #!/usr/bin/sh
    function rand(){
    min=$1
    max=$(($2-$min+1))
    num=$(date +%s%N)
    echo $(($num%$max+$min))
    }

    rndport=$(rand 20000 60000)

    if [ $1 == "-h" -o $1 == "--help" ];then
    echo '
    ##usage:

    *if u wana proxy via proxychains:
    `naive start`
    then, `proxychains4 command_line`
    `naive stop`
    '
    exit
    fi

    naive_path=/path/to/naiveproxy
    mkdir -p ~/.gofree

    if [ $1 == "start" ];then
    cp $naive_path/config.json ~/.gofree/.json
    cp $naive_path/naive ~/.gofree/fhbfcgdx$rndport
    sed -i "s:1080:$rndport:g" ~/.gofree/.json
    cd ~/.gofree

    ./fhbfcgdx$rndport ~/.gofree/.json > ~/.gofree/log.txt 2>&1 &

    mkdir -p ~/.proxychains/
    echo "[ProxyList]
    socks5 127.0.0.1 $rndport
    " > ~/.proxychains/proxychains.conf

    echo "fhbfcgdx$rndport" >> p.txt

    cd - > /dev/null
    echo "start success!!"
    fi

    if [ $1 == "stop" ];then
    cd ~/.gofree
    pkill `cat p.txt | xargs` > /dev/null
    # unset http_proxy
    # unset https_proxy
    # unset ALL_PROXY

    rm -rf .json `cat p.txt | xargs` *.log log.txt p.txt
    rm -rf fhbfcgdx* && echo "stop succes"
    cd - > /dev/null
    fi
    ```

    比如我想要克隆仓库 或者 安装软件的时候,我就
    naive start
    pc git clone http://xxxxxx .
    pc conda install xxxx
    pc curl https://xxx
    naive stop
    uCharles
        24
    uCharles  
       2022-12-12 15:53:19 +08:00
    我比较笨,直接用 fastgithub ,或者直接开梯子
    flyico
        25
    flyico  
       2022-12-12 17:04:51 +08:00
    很奇怪,我这的网络,github 要么连不上,要么速度飞快
    20150517
        26
    20150517  
       2022-12-12 19:12:16 +08:00
    我国内有服务器啊,在腾讯的,我能够用 git clone ,就是速度有点慢
    wdssmq
        27
    wdssmq  
       2022-12-12 21:33:32 +08:00
    @bipy #8

    HOST_IP=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
    cat > ~/.ssh/config <<EOF
    Host github.com
    User git
    ProxyCommand nc -v -x ${HOST_IP}:10810 %h %p
    # ProxyCommand nc -X 5 -x ${HOST_IP}:10810 %h %p
    EOF

    wsl2 内搞不定。
    MrTlyer
        28
    MrTlyer  
       2022-12-20 14:10:06 +08:00
    CF 上搭建 GitHub 代理: https://g.ntnas.top
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1246 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:56 · PVG 01:56 · LAX 09:56 · JFK 12:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.