本文及资源最后更新时间 2021-01-10 by sky995
想在国内VPS上连接Github,但是网络苦不堪言,只有20kb/s。
想要加速访问,有正代和反代两个途径。本文说反代,用sniproxy实现的。
sniproxy项目地址:https://github.com/dlundquist/sniproxy
一、安装sniproxy
Debian/Ubuntu
- apt–get install –y git autotools–dev cdbs debhelper dh–autoreconf dpkg–dev gettext libev–dev libpcre3–dev libudns–dev pkg–config fakeroot devscripts
- git clone https://github.com/dlundquist/sniproxy.git
- cd sniproxy
- ./autogen.sh && dpkg–buildpackage
- dpkg –i ../sniproxy_*_*.deb
- apt–get install –y sniproxy
Redhat/CentOS
- yum install –y git autoconf automake curl gettext–devel libev–devel pcre–devel perl pkgconfig rpm–build udns–devel
- git clone https://github.com/dlundquist/sniproxy.git
- cd sniproxy
- ./autogen.sh && ./configure && make dist
- rpmbuild —define “_sourcedir `pwd`” –ba redhat/sniproxy.spec
- yum install ../sniproxy-*.*.rpm
- yum install –y sniproxy
二、修改sniproxy配置
打开/etc/sniproxy.conf
找到开头就是table https_hosts {
这一行
添加两行,分别是 (.*.|)github.com$ *
和(.*.|)githubusercontent.com$ *
修改好后是下面这个样子
- # named tables are defined with the table directive
- table https_hosts {
- # When proxying to local sockets you should use different tables since the
- # local socket server most likely will not autodetect which protocol is
- # being used
- example.org unix:/var/run/server.sock
- (.*.|)github.com$ *
- (.*.|)githubusercontent.com$ *
- }
三、启动sniproxy
- sniproxy –c /etc/sniproxy.conf
关闭:pkill sniproxy
四、在客户端设置hosts
这里说的客户端也就是我开头说的国内VPS
修改/etc/hosts
如果原本有github的hosts配置了,就删除或者注释掉
添加下面的这些,把1.1.1.1
改为你启动了sniproxy的VPS的IP
- 1.1.1.1 gist.github.com
- 1.1.1.1 github.com
- 1.1.1.1 api.github.com
- 1.1.1.1 www.github.com
- 1.1.1.1 avatars0.githubusercontent.com
- 1.1.1.1 avatars1.githubusercontent.com
- 1.1.1.1 avatars2.githubusercontent.com
- 1.1.1.1 avatars3.githubusercontent.com
- 1.1.1.1 avatars4.githubusercontent.com
- 1.1.1.1 avatars5.githubusercontent.com
- 1.1.1.1 avatars6.githubusercontent.com
- 1.1.1.1 avatars7.githubusercontent.com
- 1.1.1.1 avatars8.githubusercontent.com
- 1.1.1.1 camo.githubusercontent.com
- 1.1.1.1 cloud.githubusercontent.com
- 1.1.1.1 gist.githubusercontent.com
- 1.1.1.1 marketplace–screenshots.githubusercontent.com
- 1.1.1.1 raw.githubusercontent.com
- 1.1.1.1 repository–images.githubusercontent.com
- 1.1.1.1 user–images.githubusercontent.com
其他
我没有更细致研究sniproxy的配置了,我想看看能不能在配置里只让指定的IP可以访问,不过在GitHub看了一下Issues,好像没看到方法,你们可以研究一下。
嗷嗷目前是用iptables来管理443端口指定IP放行
就这些,完成了。