2019年11月24日,GitHub使用的亚马逊服务器由于绕路日本ntt,而ntt线路的突然崩溃导致大陆无法访问GitHub。因此我搭了个临时的解决方案。
GITHUB重新走163直连新加坡,线路已恢复,因此服务器现在关闭
在本机/服务器host文件新增:
129.146.185.41 github.com
129.146.185.41 api.github.com
129.146.185.41 collector.githubapp.com
129.146.185.41 customer-stories-feed.github.com
129.146.185.41 github.githubassets.com
129.146.185.41 github.io
即可,我是完全封包转发GitHub的数据,因此不可能获取您的GitHub数据包内容,请放心使用,谢谢。
由于该服务器是在美国的服务器,并且也是163线路,挺垃圾的,只能应急使用,如果ntt修好了请自行更换host。
我一下子也找不完整GitHub用到的域名,欢迎大家补充
我一下子也找不完整GitHub用到的域名,欢迎大家补充
我没有监听80端口,请自行增加https前缀
如果你会自建dns服务器那更好,用dns服务器会简单些
使用通配符解析:
github.com
githubusercontent.com
githubassets.com
githubapp.com
github.io
到:129.146.185.41
原理:
github并没有上GFW的名单,只是因为线路故障导致无法访问,因此只需要一个sni proxy搭建的中转服务器即可。
逗逼的教程已过时,请使用新的教程
由于sni proxy很容易出问题并且还没日志,使用dd后的系统安装
我先用萌咖的dd脚本dd好debian系统。修改完root密码和安装bbr后进行下一步。
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get autoremove
apt-get install autotools-dev cdbs debhelper dh-autoreconf dpkg-dev gettext libev-dev libpcre3-dev libudns-dev pkg-config fakeroot devscripts build-essential unzip -y
有一堆的依赖,服务器不好的话就慢慢等吧
开始安装sni proxy
mkdir sniproxy && cd sniproxy
# 新建一个 SNI Proxy文件夹并进入
wget -N --no-check-certificate https://github.com/dlundquist/sniproxy/archive/master.zip
# 下载 SNI Proxy 最新软件包
unzip master.zip && cd sniproxy-master
# 解压 SNI Proxy 软件包并进入解压后的文件夹
./autogen.sh && dpkg-buildpackage
# 开始构建 deb 包
sniproxy_deb=$(ls ..|grep "sniproxy_.*.deb") && echo ${sniproxy_deb}
# 获取构建后的 deb 包的文件名,正常情况下会返回一个类似于 sniproxy_0.X.X_amd64.deb 这样的文件名
[[ ! -z ${sniproxy_deb} ]] && dpkg -i ../${sniproxy_deb}
# 判断获取的文件名是否为空,如果不为空就 安装 deb 包。
最后安装完毕,我们可以用 sniproxy -V
来查看是否安装成功,正常情况下会返回版本号。
自定义规则:
# 清空配置文件
echo "" > /etc/sniproxy.conf
# 导入规则
echo -e "user daemon
pidfile /var/run/sniproxy.pid
listen 443 {
proto tls
table https_hosts
access_log {
filename /var/log/sniproxy/https_access.log
priority notice
}
}
table https_hosts {
.* *:443
}
table https_hosts {
(.*.|)github.com$ *
(.*.|)githubusercontent.com$ *
(.*.|)githubassets.com$ *
(.*.|)github.io$ *
(.*.|)githubapp.com$ *
}" > /etc/sniproxy.conf
我就记得GitHub用了这四个域名,如果还有欢迎补充
下面是最容易出问题的地方
使用命令:
sniproxy start
# 启动SNI Proxy
sniproxy stop
# 停止SNI Proxy
sniproxy restart
# 重启SNI Proxy
sniproxy status
# 查看状态
如果命令不对会导致sni proxy看起来启动成功了但实际上并没有(查看状态没啥用)
查看网络端口的监听情况:
apt-get install net-tools
netstat -lntp
当出现大概如下所示的信息时,代表正常启动并监听端口443,注意最后的sniproxy。
root@debian:~# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::443 :::* LISTEN 11673/sniproxy
如果sniproxy没有监听443端口,除了有其他软件占用443端口以外,还有可能是上面的启动命令错了。并不一定是配置错了
除了之前安装bbr以外,不用优化什么的,没啥用
本脚本仅限加速github等国内直接访问缓慢的网站使用
参考:
一个逗逼
版权属于:寒夜方舟
本文链接:https://www.wnark.com/archives/31.html
本站所有原创文章采用署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)。 您可以自由地转载和修改,但请注明引用文章来源和不可用于商业目的。声明:本博客完全禁止任何商业类网站转载,包括但不限于CSDN,51CTO,百度文库,360DOC,AcFun,哔哩哔哩等网站。